3 静态测试的意义
4 静态测试可以发现的缺陷
引用一个没有定义值的变量;
从未使用的变量;
模块和组件之间接口不一致;
不可达代码(unreachable code)或死代码(dead code);
违背编程规则;
安全漏洞;
代码和软件模型的语法错误等。
5 一些静态分析工具
[OSS]代表开源软件,[PROPRIETARY]代表付费软件
三、 白盒测试方法
1 单元测试用例的设计方法
白盒测试方法
黑盒测试方法
以白盒测试方法为主,并适当地结合黑盒测试方法
2 白盒测试方法
逻辑覆盖法
语句覆盖
判定覆盖
条件覆盖
判定-条件覆盖
条件组合覆盖
路径覆盖法
路径覆盖法
3 白盒测试方法的 步骤
3.1 获得需求、 获得/ 画出程序流程图/ 算法图
3.2 画出控制流图
根据需求来画
根据算法图/流程图来画
弄清预期结果
3.3 选择覆盖方法 设计测试用例
3.3.1 语句覆盖法 C0
目标
程序中的每个可执行语句至少被执行一次。
度量(覆盖率)
被执行的语句数/所有可能的语句数。
被执行的路径数/所有可能的路径数。
用例
a=2,b=1,c=6
用例对语句的覆盖率:100%
用例对路径的覆盖率:25%
语句覆盖能发现语句错误
语句覆盖不能发现逻辑错误/条件错误
3.3.2 分支/ 判定覆盖 C1
目标
程序中的每个判定的取真分支和取假分支至少执行一次。
用例
a=2,b=1,c=6
a=-1,b=1,c=1
用例对语句的覆盖率:100%
用例对路径的覆盖率:50%
分支/判定覆盖能发现逻辑错误
分支/判定覆盖不能发现组合判断中的条件错误
3.3.3 条件覆盖 C2
目标
程序每个判定中每个条件的可能取值至少满足一次。
未必比 C1 更全面。
不能发现逻辑错误。
用例