测 试 方 法
1、 什么是白盒测试:
· 白盒测试是依据被测软件分析程序内部构造,并根据内部构造设计用例,来对内部控制流程进行测试,可完全不顾程序的整体共能实现情况;
· 白盒测试是基于程序结构的逻辑驱动测试;
· 白盒测试又可以被称为玻璃盒测试、透明盒测试、开放盒测试、结构化测试、逻辑驱动测试。
2、 为什么进行白盒测试:
· 一般在测试前期进行,通过达到一定的逻辑覆盖率指标,使得软件内部逻辑控制结构上的问难题能基本得到消除;
· 能保证内部逻辑结构达到一定的覆盖程度,能够给予软件代码质量更大的保证;
· 发现问题后解决问题的成本较低。
3、 白盒测试的常用技术:
· 静态分析:控制流分析、数据流分析、信息流分析等;
· 动态分析:逻辑覆盖测试(分支测试、路径测试等)、程序插装等。
4、 *控制流相关概念:程序元素、控制流关系、控制流图、控制流矩阵。(步骤:5)
5、 *控制流分析能发现的问题:转向并不存在的标号;没有用的语句标号;从程序
入口进入后无法达到的语句;不能达到停机语句的
语句。
6、 *数据流相关概念:数据的定义;数据的引用。(步骤:3)
7、 *数据流分析的左右:分析代码中关于数据定义和引用方面的错误;进行代码优
化。(赋值语句运算效率高)
8、 *信息流分析:输入变量和语句关系;语句和输出变量关系;输入和输出变量管
理。(步骤:4)
9、 覆盖率工具的作用:
· 分析被测试代码控制结构,决定插装位置;· 实施插装;· 将插装代
码重新编译;· 执行被测对象,根据插装的监控哨信息统计覆盖率。
10、 白盒测试的特点:
· 测试人员需要了解软件的实现;· 可以检测代码中的每条分支和路
径;· 解释隐藏在代码中的错误;· 对代码的测试比较彻底;· 实现代
码结构上的优化;· 白盒测试投入较大,成本高;· 白盒测试不验证规
格的正确性。
11、 什么是黑盒测试:
· 黑盒测试把被测对象看成一个黑盒,只考虑其整体特性,不考虑其内部具体实现;
· 黑盒测试针对的被测对象可以是一个系统、一个子系统、一个模块、一个子模块、一个函数等。
· 黑盒测试又可以被称为基于规格的测试。
12、 常见的黑盒测试类型:功能性测试;容量测试;负载测试;恢复性测试。
13、 *系统测试的时候,如果没有SRS时,有两类BUG无法发现:需求遗漏;
需求偏差。
14、 黑盒测试的优点:·对于更大的代码单元来说(子系统甚至系统级)比白
盒测试效率要高;· 测试人员不需要了解实现的细节,
包括特定的编程语言;· 从用户的视角进行测试,很容
易被大家理解和接受;· 有助于暴露任何规格不一致或
有歧义的问题。
15、 黑盒测试的缺点:· 没有清晰的和简明的规格,测试用例是很难设计
的;· 不能控制内部执行路径,会有很多内部程序路径
没有被测试到;不能直接针对特定的程序段,这些程序
可能非常复杂(因此可能隐藏更多的问题)。
16、 动态和静态测试的分类依据在于:被测对象是否运行起来。
17、 手工静态分析——同行评审:正规检视;技术评审;走查。评审对象:计
划、需求文档、设计图、代码等。
18、 自动化静态分析:静态验证;语法分析器;符号执行器。
- 自动化测试的限制(板书):
· 自动化测试不具备想象力,不能够检查脚本中给定的观察点之外的错误;
· 自动化测试只能提高测试效率,不能提高测试效果,不能发现比人工测试更多的问题;如被测对象不稳定,存在变动性的话不适合开展自动化测试,否则脚本的编写和维护所耗费的时间可能远大于人工测试;
· 只有手工测试积累到一定程度(提供更多的观察点),才能做好自动化测
试。