单元测试详解
1、定义
单元测试(Unit Testing)/模块测试(Module Testing): 对最小的软件设计单元(模块/源程序单元)的验证工作;
2、意义
1.消除软件单元本身的不确定性; 2.其它测试阶段的必要的基础环节。
3、实施者
软件开发人员
1、1.单元体现了预期的功能;
2.单元的运行能够覆盖预先设定的各种逻辑;
3.单元工作中:内部数据能够保持完整性;
4.可以接受正确数据,也能处理非法数据;
5.在数据边界条件上,单元能正确工作;
6.单元的算法合理,性能良好;
7.扫描单元代码没有发现任何安全性问题;
……
1、白盒测试技术:使用一种或多种白盒测试方法分析模块的逻辑结构;
黑盒测试技术:使用黑盒测试方法对照模块的规格说明以补充测试用例。
步骤:先设计测试用例,然后执行测试 。
1、1、模块功能;
2、内部逻辑处理;
3、数据结构;
4、性能;
5、安全;
1、进入条件:
编码开始:设计测试数据并执行测试。
退出条件:
(1)完成测试计划;
(2)发现并修正了错误;
(3)预算和开发时间。
1、一、模块或构件接口;
二、局部数据结构;
三、边界条件;
四、独立路径;
五、处理错误的路径。
2、一、模块或构件接口
目标:
进出模块/构件的数据流正确。
关注点:
(1)接口名称、参数个数、类型、顺序的匹配;
(2)输出或返回值及其类型是否正确。
3、二、局部数据结构
目标:
数据在模块执行过程中都维持完整性和正确性。
关注点:
(1)数据结构定义和使用过程的正确性;
(2)局部数据结构对全局数据结构的影响;
4、三、边界条件
目标:
保证模块在条件边界上能够正确执行。
关注点:
(1)数据结构中的边界(例如:数组a[n]);
(2)控制流中的边界(例如:循环次数、判断条件);
5、四、独立路径
目标:
保证模块中的每条独立路径(基本路径)都要走一遍,使得所有语句都被执行过一次。
关注点: 对路径的选择性测试(基本路径测试+循环测试)。
6、测试用例应发现的错误
比较在不同数据类型间进行;
不正确的逻辑操作或优先级;
由于精度错误,该相等的地方不能相当;
不正确的变量;
不正常的循环终止;
循环不能退出;
循环变量修改错误。
1、1.只验证单元自身的功能,不能捕获系统范围的错误,
系统错误:集成错误、性能问题等;
2.被测模块现实中可能接收的所有输入情况难以预料。