前面因果图方法中已经用到了判定表。判定表(DECision Table)是分析和表达多逻辑条件下执行不同操作的情况下的工具。在程序设计发展的初期,判定表已被当作编写程序的辅助工具了。由于它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确。

  黑盒测试试图发现以下类型的错误:

  1)功能错误或遗漏;

  2)界面错误;

  3)数据结构或外部数据库访问错误;

  4)性能错误;

  5)初始化和终止错误。

  Q:什么白盒测试?白盒测试方法包括哪些?

  A:白盒测试是对软件的过程性细节做细致的检查。是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。

  白盒测试方法包括:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖等

  1 白盒测试基本技术: 词法分析与语法分析,静态错误分析,程序插桩技术。

  2 白盒测试方法

  2.1 代码检查法:代码检查方式(桌面检查,代码审查,走查),代码检查项目,编码规范,代码检

  查规则,缺陷检查表。

  2.2 静态结构分析法。

  2.3 静态质量试题法。

  2.4 逻辑覆盖法

  语句覆盖:选择足够多的测试数据,使测试程序中每条语句至少执行一次。

  判定覆盖(分支覆盖):设计足够多的测试用例,使用得程序中的每个判定至少都获得一次“真值”或“假值”;或者说使用得程序中的每一个取“真”分支和取“假”分支至少经历一次。

  条件覆盖:构造一组测试用例,使得每一判定语句中每个逻辑条件的可能值至少满足一次。

  条件判定组合覆盖:设计足够的测试用例,使用得判定中每个条件的所有可能(真/假)至少出现一次,并且每个判定本身的判定结果(真/假)也至少出现一次。

  多条件覆盖:设计足够的测试用例,使得每个判定中条件的各种可能组合都至少出现一次。

  2.5 基本路径测试法

  程序的控制流图(学会通过看程序块画出控制流图)。

  程序环路复杂性(即McCabe复杂性度量)环路复杂性V(G)=判断结点数+1.

  基本路径测试法步骤:

  以详细设计或源代码作为基础,导出程序的控制流图;

  计算得到的控制流图G的环路复杂性V(G);

  确定线性无关的路径的基本集;

  生成测试用例,确保基本路径集中每条路径的执行.

  2.6 其他白盒测试方法:域测试,符号测试,Z路径覆盖,程序变异

  Q:什么是软件缺陷?

  A:IEEE 从两方面对软件缺陷进行了定义。从软件内部看,软件缺陷时软件产品开发或维护过程中所存在的错误、毛病等各种问题;从外部来看,软件缺陷是系统需要实现的某种功能失效和违背.