主要谈传统软件测试过程中的测试分工。
集体测试
也许专业测试里讲这种方式,很可能不叫“集体测试”。因为我跟自己理解起了个大概符合意思的名词叫“集体测试”。
这种模式就是,公司里所有的测试人员抱成一团儿,来一个项目,所有测试人员就集中测试一个项目。
先说这种分工方式的优点:
1、因为测试团队中的每个成员都有优缺,人员在工作之中相互取长补短,可以很快的找出软件中的缺陷。三个臭皮匠顶一个诸葛亮,一个经验再丰富的测试不一定有三个水平一般的测试人员发现的问题多。
2、人多的另一个好处是测试项目可以在更快的时间内发现更多的缺陷。总结一下就是更短的时间内发现更多的问题。
再说说这种方式的缺点:
1、一个人员一张嘴,人力成本很高(人员工资,人员平均时间投入,测试机等硬件资源投入)。
2、当同时需要测试多个项目中时,不好意思,按顺序来,请在后面排好队。(并发能力不足)
3、工作重复,同样一个缺陷,很可能同时被所有测试员发现,或者叫重复率很高。
4、人员水平难以区分,在一个项目测试过程中,有的测试人员可能一个缺陷也没找到,有的测试人员却发现了几乎所有的问题。也许这个项目一个缺陷也没找到的测试员在下一个项目中却发现了很多缺陷。(混入南郭先生)
5、发现了漏测现象是整个测试团队的责任。(这也不是明确的缺点,要看团队的氛围是积极的还是消极的。)
好吧!集体测试缺点太多,就像国家成立初期的“吃大锅饭”,肯定是阻碍发展的。那我们来看看几种分工方式。
按测试内容分工
一个项目的测试包括文档测试,易用性测试,逻辑功能测试,界面测试,配置和兼容性等多方面。我们可以根据人员的特点为每个人员分配不同的测试内容。
内容分工方式的优点:
1、分工明确,每位人员都清楚自己的测试内容和重点
2、责任到位,通过漏测的缺陷就可明确是谁的责任
按测试流程划分
我们的项目测试流程一般需要,制定测试计划,编写测试用例,执行测试用例,输出测试报告等工作,我们可以根据流程中的各个阶段来进行划分。
不同的测试人员负责不同测试阶段的工作。
优点:
1、流程清晰,就像瀑布式项目开发流程,不同阶段的工作由不同的人员担任。
2、划分流程的每个阶段难易程度和所需要的技能。
编写测试计划人员需要对整个项目的工作时间、资源分配、测试内容,实施过程有整体的把控能力。
用例辨析人员,需要对项目需求,测试方法,测试点有深入的了解。
用例执行人员需要细心,使用缺陷系统、沟通、协助研发定位缺陷。
输出测试报告人员需要对项目的测试过程,缺陷数量,类型,分布。用例执行情况等进行统计。也可以由测试执行人员担任。
按项目模块划分:
对大中型的项目,这种划分就非常必要了,项目的模块非常多,功能也非常多。不同的测试人员负责不同模块的功能测试,这样会使测试工作变得更加清晰。
1、人员利用率高,为什么这么说呢?不同的人员负责的功能不一样。工作就不会存在交叉与重复。
2、更容易挖掘深度缺陷,假如A人员今天测试这个功能,明天测试那个功能,他就不可能对被测功能的内部逻辑与业务有深入的了解。找到的也只是很表面的缺陷。那么如果一个人员长期负责一个功能的模块,那么就会更容易发现更有深度的缺陷。而往往深度的缺陷是致命的。
按照测试类型分工
我们知道软件出了功能需要测试以外,软件在编码阶段需要单元测试,接口测完等,在系统测试阶段,为提高功能测试的效率,可能对某些模块进行功能自动化,我们还要考虑软件的性能、安全性等问题。这些类型也是我项目中最常见的分类,我们可以根据这些类型为测试人员分配测试工作。当然,其专业性对测试人员的要求也比较高。
这种分工方式的特点:
1、专业技能要求较高,在这些分类中除了手工测试要求较低外(表面看是这样的),其它分类都需要较高的专业技能。例如,安全性测试需要掌握网络协议,编程技术,脚本公积,SQL注入,漏洞分析等方面的技能。
2、不同分类之间交互性低,正因为不同分类需要的技能不同,虽然同为“测试”工作,但一个做单元测试的人就无法让其去做性能测试。
分类方式的疑问
看了上面的几种分工方式,你是不是每一种测试人员分工方式都似曾相识,但又没有哪个公司是单一的按照上述某种分类工作。
我前公司,是一个长期的互联网产期,产品功能比较多,每位测试人员负责不同的功能模块,测试人员从测试计划到测试报告都基本由一个人来完成。当然对于比较大和紧急的版本迭代,也会多人协作对版本进行测试(协作的方式一般会将版本功能再次细分到每个人员身上)。安全测试由专业的安全人员指导功能测试人员对自己负责的功能进行安全扫描与分析。有独立的性能测试小组,对需要进行性能的产品版本进行性能测试。在独立的功能自动化人员,对于适合自动化的功能进行自动化工作。
我前公司的分工方式几乎包括了上面所有的分工方式。那么,我为什么要进行上面那么单一的分工方式划分呢?这样有助于我们理清对测试工作的各种分工方式。在实际的工作中,有大型项目,有小型项目,有客户端软件,也有互联网产品,有短到几天的项目,也有长期性的项目。有一次开发完成交付的,也有不断迭代更新的。根据项目的情况,我们可以选择合适的分工方式来应付于项目中。
更对精彩详见 “”