如何进行单元测试(下) 单元测试工具
二、基本路径法
基本路径测试法是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。设计出的测试用例要保证在测试中程序的每个可执行语句至少执行一次。基本路径测试法包括以下5个方面:
1. 程序的控制流图:描述程序控制流的一种图示方法。
2. 程序环境复杂性:McCabe复杂性度量;从程序的环路复杂性可导出程序基本路径集合中的独立路径条数,这是确定程序中每个可执行语句至少执行依次所必须的测试用例数目的上界。
3. 导出测试用例。
4. 准备测试用例,确保基本路径集中的每一条路径的执行。
5. 图形矩阵:是在基本路径测试中起辅助作用的软件工具,利用它可以实现自动地确定一个基本路径集。
另外,对于测试用例的选择除了满足所选择的覆盖程度(或覆盖标准)外还需要尽可能的采用边界值分析法、错误推测法等常用地设计方法。采用边界值分析法设计 合理的输入条件与不合理的输入条件;条件边界测试用例应该包括输入参数的边界与条件边界(if,while,for,switch ,SQL Where子句等)。错误推测法,列举出程序中所有可能的错误和容易发生错误的特殊情况,根据它们选择测试用例;在编码、单元测试阶段可以发现很多常见的 错误和疑似错误,对于这些错误应该作重点测试,并设计相应的测试用例。
4.1.3 单元测试计划表格
在设计测试用例时可以参考如下表格,拟定对每个类(或模块或包)的测试计划。表1,是对每个类(或模块或包)作测试计划的表头,它指明本测试计划是针对那个模块及相关文件的。表2是针对表1指定模块测试用例而对应的子表,每个测试用例可以拥有一个子表;单元测试结果子表留作执行测试用例时根据实际结果填写。
子系统名. PackageName. JavaClassName
单元测试计划 | |
标识 | 格式: “子系统名. jsp_filename(含目录中间用\分开即可)” 或者 “子系统名. PackageName. JavaClassName” |
组件功能项 | 如:组件完成 “新增贴子”的功能 |
针对概要/详细设计文件名 | 如:1.1版本公告部分详细设计说明书 |
物理文件名 | jsp_filename(含目录); packageName. JavaClassName |
表1
单元测试子项001
下面表格为针对上面表格“子系统名. PackageName. JavaClassName”而对应的子表,每个测试用例用一张子表:
编号 | .001 注:“. 编号” 部分要从001编号开始一直到999,个人自行编号 |
程序设计人员 | 如:XXX |
测试人员 | 如:XXX |
测试目的 | 如:对错误逻辑输入检验 |
测试内容描述 | 如:对于public int fun3(String p1, int p2 )的输入检验,如果 p1 == null,程序中检验到,应该记录到系统 logfile, return –1; |
输入期望 | P1 == null |
功能处理期望描述 | Logfile 多一条历史记录,方法return -1; |
输出期望 | Return –1 |
单元测试结果 | |
实际输入数据 | P1 = null |
实际处理情况描述 | 程序没有进行p1 == null 的验证,没有及时return –1,而是运行到 p1.aaa( ) 方法时出现 null pointer 异常。 |
实际输出 | 没有写 logfile 文件; |
测试结论 | 正常 / 异常 |
表2
文章来源于领测软件测试网 https://www.ltesting.net/