③ 按针对性,单元测试应该有以下特性:v 声明测试:检查模块中所有变量是否被声明;v 路径测试:要求模块中所有可能的路径都被执行一遍,属于逻辑覆盖测试;v 循环测试:重点检查循环的条件-判断部分以及边界条件;v 循环测试应该包括测试下面每一个条件的测试用例:a. 循环不执行;b. 执行一次循环;c. 执行两次循环;d. 反映执行典型的循环的执行次数;e. 如果有最大循环次数,最大循环次数减1;f. 最大循环次数;g. 大于最大循环次数。
④ 循环嵌套;⑤ 边界值测试;⑥ 接口测试:检查模块的数据流(输入、输出)是否正确。检查输入的参数和声明的自变量的个数,数据类型和输入顺序是否一致。检查全局变量是否被正确的定义和使用;⑦ 确认测试:是否接受有效输入数据(操作),拒绝无效数据(操作);⑧ 事物测试:输入——>输出,错误处理。测试用例设计时,对输入变量的定义域进行划分。
1.4.2. 测试模块结构化程序的测试原则是每个测试模块由单个功能组成。基于如下考虑:① 可重用性:模块不应该被设计成包含多个功能,这样做主要是模块化的要求。如果模块包含多个功能,它就不太可能被重复使用,因为不太可能有那么多同样的情况来使用这些功能。如果一个模块集中为一个功能,它就有可能被许多模块调用;② 复杂性:多个功能的模块容易变的复杂,复杂的模块代码容易混乱;③ 可维护性:模块需要被修改时,复杂模块要比简单模块难以维护。
1.5. 单元测试中的白盒测试设计1.5.1. 一个程序模块的例子该程序模块有四条不同的路径、四个可执行语句。
L1 (a—>c—>e)简化为:ace L2 (a—>b—>d) 简化为:abd L3 (a—>b—>e) 简化为:abe L4 (a—>c—>d) 简化为:acd(a>1)∧(b=0)
X=X/A(a>1)∨(b=0)
X=X+1四条路径应该满足的逻辑表达式分别为:记M={(a>1)∧(b=0)};N={(a>1)∨(b=0)} L1 (a—>c—>e)=M and N <

