软件工程-单元测试

单元测试

单元测试概述

单元测试是对软件中的最小可测试单元进行检查和验证
单元测试包括:
模块接口: 对通过所有被测模块的数据流进行测试

局部数据结构: 检查模块中的数据结构是否正确的灵异和使用

边界条件: 检查数据流或控制流中条件或数据处于边界时的出错可能性

独立路径: 检查由于计算错误,判定错误,控制流错误导致的程序错误

**出错处理:**检查可能引发错误处理的路径以及进行错误处理的路径

单元测试原则:

  • 快速的
  • 独立的
  • 可重复的
  • 自我验证的
  • 及时的

黑盒测试

设计良好的测试用例是关键

黑盒测试是将测试对象看做一个黑盒子,完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明
在这里插入图片描述
等价类划分是将输入域划分成尽可能少的若干子域,每个子域两两不相交,每个子域称为一个等价类 不同子域的输入 都应该有相同的输出结果 只需从每个子域中取一个就行

健壮性测试是对边界测试的一个简单补充

白盒测试方法

白盒测试是将测试对象看做一个透明的盒子,允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试

基于控制流的白盒测试

代码覆盖率描述的是代码被测试的比例和程度,通过代码覆盖率可以得知哪些代码没有被覆盖,从而进一步不足测试用例

语句覆盖: 程序中每个可执行语句至少被执行一次 是最弱的逻辑覆盖准则

判断覆盖(分支覆盖) 程序中每个 判断的取真和取假分支至少经历一次

判定条件覆盖 判断中所有条件的可能取值至少执行一次,且所有判断的可能结果至少执行一次

条件组合覆盖 判断中每个条件的所有可能取值组合至少执行一次,并且每个判断本身的结果也至少执行一次

路径覆盖 覆盖程序中所有可能的执行路径

覆盖率数据只能代表测试过哪些代码,并不能够代表是否测试好这些代码

较低的测试覆盖率说明所做的测试还不够,但反之则不成立(即较高的测试覆盖率并不能说明所做的测试已经足够)

路径覆盖>判定覆盖>语句覆盖

不能盲目追求代码覆盖率

测试覆盖率应达到多少需要考虑软件整体的覆盖率情况及测试版本
基本路径测试
基本路径测试是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路劲集合,从而测试用例的方法

绘制控制流图 -> 计算环路复杂度 -> 确定基本路径 -> 设计测试用例

测试题

在单元测试中, 桩模块是用来代替被测模块的子模块的

条件覆盖要求每个判定中每个条件的所有取值至少满足一次


版权声明:本文为weixin_46570942原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。