测试人员是否应该签署软件版本的发布?不同人对此的回答不尽相同。在早期的测试生涯中,我作为测试人员碰到过这个尴尬的角色。从测试经验而言,测试人员来确定软件版本的发布与否,存在几个严重的问题:
1) 假如测试人员作出版本发布的决定,那么他们将置于项目团队中被抱怨的角色,特别是当发布的软件产品在用户使用现场发现严重问题的时候:“哦,测试人员在这样糟糕的产品质量情况下,也会签署产品的发布!”
2) 假如测试人员作出版本不能发布的决定,那么他们将被置于不受欢迎的地步,因为他们阻止了版本的发布,或者打乱了项目的时间进度计划。此时,测试人员来自其他团队,特别是项目管理团队的压力将是空前的。
3) 测试人员缺乏发布所需要的信息、能力和技能,例如:成本、市场机会、市场竞争等,因此由他们来发布软件版本是不合适的。
假如说测试人员/测试团队不适合作出软件版本是否发布的决定,那么谁应该是更合适做这个工作?目前组织中比较合适的策略是,由产品经理、项目经理、开发经理、测试经理以及其他相关人员组成的委员会,根据组织内定义的产品发布准则,结合被测对象的质量信息、风险、市场机会和成本等各个方面因素,讨论之后得到发布与否的决定。
由专门的委员会负责软件版本是否发布的决定,可以更好的平衡成本、质量、市场机会、市场竞争等因素。接下来我们可以看看在整个过程中测试人员的角色,以及他们在软件版本发布活动中的主要职责:
1) 首先,在测试过程中尽早尽量多的发现测试对象中的问题,并推动开发人员进行及时修复,测试人员进行后续的再测试与回归测试,在有限的时间与成本下不断提高测试对象的质量。
2) 其次,在测试过程中测试人员需要结合客户使用产品的具体场景和运行模式,站在客户的角度验证产品功能是否能够正确工作,并符合客户的期望。即保证发布的软件产品可以在用户环境下正常工作。
3) 第三,测试人员在委员会评审软件产品是否发布的会议上,提供测试对象的所有相关质量信息和剩余风险信息,具体表现在:
(1) 测试过程中哪些功能和场景已经覆盖,并进行了详细的测试?哪些覆盖率不足?它们存在的主要风险是什么?可能会对客户造成什么样的影响?
(2) 测试过程中发现了哪些主要的缺陷?由于各种原因在软件版本发布之前不做修改的缺陷有哪些?假如客户碰都这些问题,应该采用哪些规避措施?这些存在的缺陷,会对客户造成怎样的影响?