文章目录
第十一章 白盒测试
1. 白盒测试概述
1.1 软件人员使用白盒测试方法,主要想对程序模块进行如下的检查:
- 对程序模块的所有独立的执行路径至少测试一次;
- 对所有的逻辑判定,取“真”与取“假”的两种情況都至少测试一次;
- 在循环的边界和运行界限内执行循环体;
- 测试内部数据结构的有效性等。
1.2 白盒测试实施步骤
-
测试计划阶段:根据需求说明书,制定测试进度。
-
测试设计阶段:依据程序设计说明书,按照一定规范化的方法进行软件结构划分和设计测试用例。
-
测试执行阶段:输入测试用例,得到测试结果。
-
测试总结阶段:对比测试的结果和代码的预期结果,分析错误原因,找到井解决错误。
2. 控制流测试
程序的结构主要有三种:顺序结构,分支结构,循环结构
2.1 算法流程
2.2 语句覆盖
在测试时首先设计若干个测试用例,然后运行被测程序,使程序中的每个可执行语句至少执行一次。这里所谓若干个,自然是越少越好。
2.3 判定覆盖
设计若干测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次,即判断的真假值均曾被满足。
2.4 条件覆盖
设计若干测试用例,运行被测程序,使得程序中每个判断的每个条件的可能值至少满足一次。
2.5 判定-条件覆盖
设计若干测试用例,运行被测程序,使得程序中每个判断的每个条件的所有至少满足一次,且每个判断的判定结果也至少出现一次。
2.6 路径覆盖
设计足够多的测试用例要求覆盖程序中所有可能的路径。
2.7 几种逻辑覆盖的比较
2.8 循环测试
3. 基本路径测试
在程序控制流图的基础上通过分析控制结构的环路复杂性导出基本可执行路径集合,从而设计测试用例。
3.1 程序的控制流图
3.2 程序结构的要求
3.3 基本路径测试步骤
3.3.1 画出控制流图
- 程序流程图
- 控制流图
3.3.2 计算圈复杂度
3.3.3 导出测试用例
4. 程序插装
5. 程序变异测试
6.白盒测试工具
有C++Test,Junit,xUnit
7. 软件缺陷分析
7.1 软件缺陷产生的原因
- 软件本身
- 团队工作
- 技术问题
- 项目管理问题
7.2 软件缺陷的种类
- 功能缺陷
- 系统缺陷
- 加工缺陷
- 数据缺陷
- 代码缺陷