测试团队的新兴职位:测试设计师

发表于:2009-7-10 14:55

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:天彤    来源:Taobao QA Team

  本文探讨的,主要有:

  1、为什么我们需要“测试设计师”;

  2、测试设计师的岗位职责有哪些;

  3、测试人员需要具备哪些能力,才能胜任这个职位。

  在多数软件企业,测试组在项目中的组织形式一般是1个“测试组长”+多个“功能测试工程师”,测试组长负责管理整个测试过程和测试质量,测试工程师负责编写和执行测试用例;做的比较专业的测试团队,还会配备1~2名“性能测试工程师”,1~2名“自动化测试工程师”。

  这样的团队模型看起来似乎无懈可击,也许很多公司都把这样的模型作为努力的目标,可是在实际工作中,这样的团队真的能够达到最高的效率,能够最大限度的保证项目的质量么?

  闲话少说,下面我就简洁的列出,这样的团队模型存在哪些重要问题:

  1、功能测试工程师不懂技术,自动化测试工程师不懂需求,做出的自动化脚本质量较低,难以维护;或者需要花费极高的代价,才能做出让人满意的脚本;

  2、测试组长的精力主要在测试计划的管理上,同时测试组长大都兼做“测试执行”,因此没有精力思考,如何改进测试策略;

  3、大部分功能测试工程师对开发技术了解较少,对程序的内部结构和处理逻辑了解较少,设计测试用例(TC)一般依靠需求文档,因此测试策略单一,TC大都和真实用户行为一致,很少有一些针对性较强的TC

  4、性能测试和功能测试之间缺乏交流,性能测试工程师难以获得性能的需求,功能测试工程师也不关注性能测试的过程。由于性能测试经常会要求开发组优化代码逻辑,而优化很容易引发功能的bug。这里,就缺少一个人从整体把握功能和性能的质量,衔接两方面的工作。

  一般面临这些问题的,都是人数较多,分工比较细的测试团队。而人口多和分工细,就意味着沟通和管理的复杂度加大。要解决这些问题,就需要增加一个新的角色:“测试设计师”。

  先说一下测试设计师的岗位职责:

  1、首先,测试设计师对项目的质量负责。一旦项目发布以后出现了遗漏bug,测试设计师需要承担首要责任;

  2、负责项目测试方案的设计,确定各种测试需求的测试策略,包括功能、性能、自动化等;

  3、负责研究开发组的架构设计和逻辑设计,熟知程序的结构和运行逻辑,从而制定出更有效的测试方案,参与开发设计评审;

  4、评审测试组的文档产出,全程跟踪测试执行过程,给予其他测试人员指导与支持;

  说到这里,我们对测试设计师的主要工作范围有了一个整体的认识,下面,我再以时间的先后顺序,说明测试设计师在一个项目中,是如何工作的。

  当项目开始做需求开发时,测试设计师就需要介入,熟悉产品需求。这时他可以对比同类软件产品,或者是公司历史上的同类项目,搜集一些必要的技术信息,做好准备。

  开发组做设计时,测试设计师需要同时熟悉开发的设计,尽量指出设计的缺陷,同时,考虑测试策略(功能、性能、自动化),编写《测试计划》中“测试策略”一节。

  由于测试设计师对系统的结构非常了解,所以收集性能测试需求和制定性能测试方案,都由他来做,之后可以交给性能测试工程师,后面的脚本制作,跟踪问题,都由性能测试工程师完成。

  另一方面,测试设计师对需求的把握也比较好,所以他也要确定自动化测试的范围,并且完成自动化测试的设计文档和框架代码,然后交给自动化测试工程师。当自动化工程师和性能工程师在工作中遇到问题时,测试设计师负责解决。

  这里不得不谈到,手工功能测试和自动化功能测试之间的关系,实际上,测试设计师需要为手工测试和自动化测试分别进行设计,但是这两份设计不是完全隔离的,而是有着紧密的联系,具体的内容,我们将在另一篇文章中讨论。

  总之,测试设计师要评估测试的重点和测试的方法,找出系统最容易出问题的地方,制定出完整的测试设计方案,然后,全程参与功能测试工程师、自动化工程师,性能工程师的测试用例、测试脚本的制作过程,评审这些文档的质量,提供建议和支持。

  当开发编码完成,提交测试以后,测试执行开始,测试设计师要密切关注测试执行的进展,并且判断自己的测试设计是否合理,高效,一旦发现问题,快速进行调整。测试设计师必须参与手工用例的执行,自动化脚本、性能脚本的开发,从而了解测试工作的质量。当然,参与的程度,视具体情况而定。总之,他不是一个脱离于项目之外的人,而是当测试出现问题,他比谁都操心。

  测试结束后,测试设计师需要协助测试组长完成测试报告,并对项目质量和测试的效果进行评估和分析。

  在小型项目里(比如测试人员3-5人),测试组长和测试设计师可以由一个人担任;但是,在大型的项目,必须单独指派一名测试设计师,因为那时测试组长整天都会忙于项目进度的控制和与其他组沟通,没有精力来管测试的技术了。形象的说,这是“双塔”组合。

  接下来,我们讨论一下,需要具备何种能力,才能担任测试设计师,我认为以下几点是关键:

  1、两年以上测试工作经验,担任过项目的测试组长,管理和沟通能力出色;

  2、能够独立完成一个项目的性能测试任务,不仅仅是会使用性能测试工具;

  3、能够独立开发一个项目的自动化脚本,不仅仅是会录制回放简单的脚本;

  4、能够大致看懂开发的设计文档,可以和开发工程师讨论设计文档,能提出设计中的缺陷

  5、有较好的创新能力,能够定期在测试团队中进行技术创新,解决工作的问题,提高测试效率。

  6、掌握一些编程技术,会使用公司的主流开发工具和开发语言,并能使用这些工具开发简单的应用程序(和公司的产品类似);

  另外,测试设计师在测试团队中,也必须是一个虚拟的群体,他们要经常的交流,而不是各自为阵。他们需要经常针对测试工作中的问题进行讨论,寻找有效的解决问题的方式。

  测试设计师在测试团队中的比例,应该达到10%,有些测试设计师还需要担任“测试组长”的角色。他们是团队中的技术核心,为团队解决实际问题,不断的进行创新,让测试团队更有活力。

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号