不可到达或冗余代码——正确处理方法是删除这种代码。这种分析容易出错,特别是使用防卫式程序设计技术(Defensive Programming Techniques)时,如有疑义,这些防卫性程序代码不要删除。

  测试用例不足——应该重新提炼测试用例,设计更多的测试用例添加到测试说明中以覆盖没有执行过的路径

  理想情况下,覆盖完善阶段应该在不阅读实际代码的情况下进行。然而,实际上,为达到覆盖率目标,看一下实际代码也是需要的。覆盖完善步骤的重要程度相对小一些。有效的测试来自于分析和说明,而不是来自于试验,依赖覆盖完善步骤补充一份不好的测试设计。

  适合的技术:

  ● 分支测试

  ● 条件测试

  ● 设计定义——试验测试

  ● 状态转换测试

  2.2 用例设计的一般原则

  注意到前面产生测试说明步骤可以用下面的方法完成:

  通常应该避免依赖先前测试用例的输出,测试用例的执行序列早期发现的错误可能导致其他的错误而减少测试执行时实际测试的代码量;

  测试用例设计过程中,包括作为试验执行这些测试用例时,常常可以在软件构建前发现BUG。还有可能在测试设计阶段比测试执行阶段发现更多的BUG。

  在整个单元测试设计中,主要的输入应该是被测单元的设计文档。在某些情况下,

  需要将试验实际代码作为测试设计过程的输入,测试设计者必须意识到不是在测试代码本身。从代码构建出来的测试说明只能证明代码执行代码完成的工作,而不是代码应该完成的工作。

  3、测试用例设计技术

  广义地分为两类:

  黑盒测试:使用单元接口和功能描述,不需了解被测单元的内部结构

  白盒测试:使用被测单元内部如何工作的信息

  灰盒测试:借助于源代码和测试工具等手段,通过黑盒和白盒测试相结合的方法进行测试的技术。

  测试设计重要的因素是经验和常识。测试设计者不应该让某种测试技术阻碍经验和常识的运用。

  白盒测试用例设计:使用程序设计的控制结构导出测试用例。

  采用白盒测试的目的主要是:保证一个模块中的所有独立路径至少被执行一次;对所有的逻辑值均需要测试真、假两个分支;在上下边界及可操作范围内运行所有循环;检查内部数据结构以确保其有效性。

  黑盒测试用例设计:使用详细设计导出测试用例。

  采用黑盒测试的目的主要是:检查功能是否实现或遗漏;检查人机界户是否错误;数据结构或外部数据库访问错误;性能等其它特性要求是否满足;初始化盒终止错误。