软件测试精要-物理试题精解与模拟测试
白盒测试方法逻辑覆盖法测试用例?测试用例由测试输入数据以及与之对应的输出结果组成。?测试用例设计的好坏直接决定了测试的效果和结果。所以说在软件测试活动中最关键的步骤就是设计有效的测试用例。?测试用例可以针对黑盒测试设计用例,也可以针对白盒测试设计用例,我们今天开始讲针对白盒测试的用例设计方法。白盒测试方法?为什么要进行白盒测试? 如果所有软件错误的根源都可以追溯到某个唯一原因软件测试精要,那么问题就简单了。然而软件测试精要,事实上一个 bug 常常是由多个因素共同导致的, 如下图所示。假设此时开发工作已结束,程序假设此时开发工作已结束,程序送交到测试组,没有人知道代码中有送交到测试组,没有人知道代码中有一个潜在的被一个潜在的被 0 0 除的错误。若测试组除的错误。若测试组采用的测试用例的执行路径没有同时采用的测试用例的执行路径没有同时经过经过 x=0 x=0 和和 y=5/x y=5/x 进行测试,显然测试进行测试,显然测试工作似乎非常完善,测试用例覆盖了工作似乎非常完善,测试用例覆盖了所有执行语句,也没有被所有执行语句,也没有被 0 0 除的错误除的错误发生。发生。白盒测试方法(续) ?程序结构分析; ?逻辑覆盖; ?基本路径测试; 白盒测试根据程序的控制结构设计导出测试用例, 主要用于软件程序的验证。
需要全面了解程序内部的逻辑结构,对所有逻辑路径进行测试,是一种穷举路径的测试方法。穷举路径仍然存在遗憾?穷举路径测试法无法检查出程序本身是否违反了设计规范,即程序是否是一个错误的程序; ?穷举路径测试不可能查出程序因为遗漏路径而出错; ?穷举路径测试发现不了一些与数据相关的错误; 白盒测试原则?保证一个模块中的所有独立路径至少被测试一次; ?所有逻辑值均需测试真( True )和假( False )两种情况; ?检查程序的内部数据结构,保证其结构的有效性; ?在取值上、下边界,即可操作范围内运行所有循环. 白盒测试方法(续) ?白盒测试主要是检查程序的内部结构、逻辑、循环和路径。常用测试用例设计方法有: ?逻辑覆盖法(逻辑驱动测试) ?基本路径测试方法覆盖测试主要是测试覆盖率,以程序内在逻辑结构为基础的测试。包括以下 6种类型: ?语句覆盖?判定覆盖?条件覆盖?判定-条件覆盖?条件组合覆盖?修正-判定条件覆盖逻辑覆盖法 int function1(int a,int b,int c) { int x; x=0; if(a&&(b||c)) x=1; return x; }