为何要进行白盒测试[3]

发表于:2010-06-02来源:作者:点击数: 标签:白盒
为何要进行 白盒测试 [3] 软件测试 我们再来看一个实际案例:有两个产品形态接近的项目,A项目正式实施 单元测试 与 集成测试 ,另一个项目B项目没正式做白盒测试(简单的拿调试当测试)。最后项目结束时对研发全过程的全部问题进行 缺陷分析 ,如下图: A项目

  为何要进行白盒测试[3]  软件测试

  我们再来看一个实际案例:有两个产品形态接近的项目,A项目正式实施单元测试集成测试,另一个项目B项目没正式做白盒测试(简单的拿调试当测试)。最后项目结束时对研发全过程的全部问题进行缺陷分析,如下图:

  A项目的缺陷类型分析

  B项目的缺陷类型分析

  A项目的所有问题中,应该发现问题的阶段是白盒测试(单元测试与集成测试)的占50%,而B项目所有问题中,应在白盒测试阶段发现的仅占33%,另外,A项目发现逻辑错误占13%,而B项目只占8%。由这个统计数据表明,不做白盒测试必然导致大量问题漏测。

  四、白盒测试要做到什么程度才算合适

  既然白盒测试不可或缺,那么,白盒测试应做到什么程度才算合适呢?具体来说,白盒测试与黑盒测试应维持什么样的比例才算合适?

  一般而言,白盒测试做多做少与产品形态有关,如果产品更多的具备软件平台特性,白盒测试应占总测试的80%以上,甚至接近100%,而如果产品具备复杂的业务操作,有大量GUI界面,黑盒测试的份量应该更重些。根据经验,对于大多数嵌入式产品,白盒方式展开测试(包括代码走读)应占总测试投入的一半以上,白盒测试发现的问题数也应超过总问题数的一半。

  由于产品的形态不一样,很难定一个标准说某产品必须做百分之多少白盒测试,但依据历史经验,我们还可以进行定量分析的。比如,收集某产品的某历史版本在开发与维护中发生的所有问题,对这些问题进行正交缺陷分析(Orthogonal Defect Classification,ODC),把“问题根源对象”属于概要设计、详细设计与编码的问题整理出来,这些都是属于白盒测试应发现的问题,统计这些问题占总问题数的比例,大致就是白盒测试应投入的比例。

  通过正交缺陷分析,还能推论历史版本各阶段测试的遗留缺陷率,根据“发现问题的活动”,能统计出与“问题根源对象”不相匹配的问题数,这些各阶段不匹配问题的比例就是该阶段的漏测率。

  参考文献:

  1. IPL, "Why Bother to Unit Test? "

  2. Wayne Chan, 《第4代白盒测试方法介绍》

  3. Yang Gu, from IBM, "Adopting ODC to improve software quality: A case study"

原文转自:http://www.ltesting.net