如何把握软件产品的质量
蔡: 蔡为东,热爱测试工作,有超过10年的软件测试和团队管理经验。
郑: 郑文强, 阿尔卡特-朗讯测试架构师
蔡:如何把握软件产品的质量?
郑:不管软件产品规模是大还是小,结构是简单还是复杂,对它们质量的评估都不是一件容易的事情。尽管很难,但是产品质量的评估仍然是必需的,因为它也涉及软件版本是否能够发布。
软件发布之前做评估
根据我和公司内的实践经验,可以从下面两个方面进行评估。
第一,软件产品发布之前的质量评估,具体的度量指标包括:
- 缺陷,包括发现的总的缺陷分布趋势、缺陷在不同功能模块中的分布等。例如,总的缺陷分布趋势图。
- 测试通过率,主要包括计划的测试用例执行进度、通过的测试用例数目、失败的测试用例数目、被阻塞的测试用例数目等。我们项目中定义的测试通过率是95%。
- 测试覆盖率,包括测试对系统需求的覆盖率、对测试类型的覆盖率。例如,我们项目中定义的需求覆盖率必须达到100%,测试类型覆盖率也必须达到100%。
- 信心,负责这个模块的测试人员对质量的主观感受。可能有的人觉得很奇怪,怎么主观感受也可以作为产品质量的评估?因为负责功能模块测试的工程师是最了解他们的测试对象的。
旁观者说:可以设计一个信心指数,例如1~10,然后通过各种数据来支持这个指数。
软件发布之后做评估
第二,软件产品发布之后的质量评估。我们目前采用的度量指标是缺陷检测百分比DDP(Defect Detected Percentage),其计算公式如下:
客户现场发现的缺陷数 /(发布前测试团队发现的缺陷数 +
客户现场发现的缺陷数)*100%
我们一般统计产品发布之后6个月内在客户现场发现的缺陷数。不同的公司与项目,采用的统计时间范围会有所不同。
旁观者说:统计客户发现的bug是有意义的,一是可以据此对客户做一些分析,例如,经常使用的功能、满意度等;二是可以用于反思之前的测试活动,以求改进。
测试团队为软件发布提供质量信息
还有一个问题是测试团队非常关心的:谁来决定软件产品的发布?从我的角度而言,我认为由测试团队决定软件产品是否发布是不合适的。
软 件产品是否可以发布,需要有不同角色的成员参与进来,根据公司定义的判定准则进行评估,同时平衡产品质量、市场机会、产品战略以及成本等多个因素。测试团 队在这个过程中主要的作用是尽量多地提供软件产品的质量信息、风险信息等,以帮助管理层做出是否发布的决定。任何一个单方面做决定都可能是不全面的。例 如,测试人员觉得质量还不够好,发布有风险;但是市场机会要求我们发布,如果再等一段时间就会减弱市场机会,甚至丧失机会,这个时候就需要考虑哪个因素有 更高的优先级。
旁观者说:赞同。软件发布与否应当综合各种因素来考虑,而不仅仅是某个角色说了算。
本文节选自《赢在测试2:中国软件测试专家访谈录》
蔡为东 著
电子工业出版社出版