白盒测试
白盒测试
白盒测试技术是根据被测对象的结构系统化设计测试用例的一种方法。它所关注的的结构可以是代码的结构(控制流图),数据的结构,菜单的结构,模块间相互调用的结构,业务流程的结构等。白盒测试可以应用于任何测试级别,在不同测试级别,其分析的结构可能有所不同;满足白盒测试的测试覆盖率,意味着被测对象已不需要基于此技术再进行额外的测试,但是可以继续应用其他测试技术。白盒测试通过需要测试工具的支持,一些代码测试工具可以用来获取基于结构的测试覆盖率,主要分为下列几个原理:语句覆盖,判定覆盖,其他白盒测试技术。
(1)语句覆盖:
100%的语句覆盖指的是设计若干测试用例来测试程序,使程序中的每个可执行的语句至少被执行一次。语句覆盖率指的是程序内被执行的语句的语句数与程序内所有的可执行语句数的比值。白盒测试技术的测试期望结果应该是根据需求或规格说明来确定的,而不是代码本身来确定;语句覆盖率分析的观点集中在被测对象的可执行语句上,测试用例的执行可以满足实现定义的语句覆盖率要求。
代码覆盖的步骤:
第一步:源代码转换为控制流图。控制流图可以比较直观而详细地描述需要覆盖的语句;
第二步:分析控制流图,根据测试对象的要求选择需要覆盖的代码;
第三步:根据第二步的结果确定测试数据,生成测试用例;
(2)判定覆盖:
100%的判定覆盖指的是设计若干测试用例来测试程序,使得程序中的每个判定语句中的每个分支至少被执行一次,所以判定覆盖也成为分支覆盖。判定覆盖率指的是程序内遍历到的分支数与程序内所有的分支数的比值。或遍历到的边数与程序内所有的边数的比值。判定覆盖关注的是控制流图中的边,即不仅要考虑连接一般语句的边,更要考虑判定语句的所有分支。
(3)其他白盒测试技术:
除前面提到的语句覆盖和判定覆盖之外,还有一些其他的白盒测试技术,例如条件覆盖,判定-条件覆盖,条件组合覆盖,路径覆盖。