2.1.5 步骤5:覆盖率测试用例设计
应该或已有测试用例所达到的代码覆盖率。应该增加更多的测试用例到单元测试说明中以达到特定测试的覆盖率目标。一旦覆盖测试设计好,就可以构造测试过程和执行测试。覆盖率测试一般要求语句覆盖率和判断覆盖率。
适合的技术:
分支测试
条件测试
数据定义-使用测试
状态转换测试
2.1.6 步骤6:测试执行
使用上述5 个步骤设计的测试说明在大多少情况下可以实现一个比较完整的单元测试。
到这一步,就可以使用测试说明构造实际的测试过程和用于执行测试的测试过程。该测试过程可能是特定测试工具的一个测试脚本。
测试过程的执行可以查出模块单元的错误,然后进行修复和重新测试。在软件测试过程中的动态分析可以产生代码覆盖率测量值,以指示覆盖目标已经达到。因此需要在软件测试设计说明中需要增加一个完善代码覆盖率的步骤。
2.1.7 步骤7:完善代码覆盖
由于模块单元的设计文档规范不一,测试设计中可能引入人为的错误,测试执行后,复杂的决策条件、循环和分支的覆盖率目标可能并没有达到,这时需要进行分析找出原因,导致一些重要执行路径没有被覆盖的可能原因有:
不可行路径或条件 ―― 应该标注测试说明证明该路径或条件没有测试的原因。
不可到达或冗余代码 ―― 正确处理方法是删除这种代码。这种分析容易出错,特别是使用防卫式程序设计技术(Defensive Programming Techniques)时,如有疑义,这些防卫性程序代码就不要删除。
测试用例不足 ―― 应该重新提炼测试用例,设计更多的测试用例添加到测试说明中以覆盖没有执行过的路径
理想情况下,覆盖完善阶段应该在不阅读实际代码的情况下进行。然而,实际上,为达到覆盖率目标,看一下实际代码也是需要的。覆盖完善步骤的重要程度相对小一些。最有效的测试来自于分析和说明,而不是来自于试验,依赖覆盖完善步骤补充一份不好的测试设计。
适合的技术:
分支测试
条件测试
设计定义――试验测试
状态转换测试