第09课 白盒测试分支条件测试、循环测试_第1页
第09课 白盒测试分支条件测试、循环测试_第2页
第09课 白盒测试分支条件测试、循环测试_第3页
第09课 白盒测试分支条件测试、循环测试_第4页
第09课 白盒测试分支条件测试、循环测试_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

把程序看成装在一个透明的白盒子里,程序的结构和处理呈现过程完全可见,按照程序的内部逻辑测试程序,以检查程序中的每条通路是否都能按照预先要求正确工作。

第3章白盒测试方法

2路径分析测试3分支条件测试、循环测试4其它测试类型5主要内容综合测试实例

6黑盒测试与白盒测试1逻辑覆盖测试白盒测试的常用方法逻辑覆盖路径分析测试

循环、条件分支…思考如果被误写成if((a<=b+c)&&(b<a+c)&&(c<a+b)),基本路径测试的四个用例(68,68,56),(68,60,56),(68,68,68),(68,8,56)是否可以发现这个问题?3.3分支-条件测试测试思想根据模块中的逻辑条件设计测试用例,使得被测模块中的每一个复合条件以及构成这个复合条件的每一个简单条件的真假情况至少被执行一次。简单条件是一个布尔变量或一个可能带有NOT(“┓”)操作符的关系表达式,关系表达式的形式如:E1<关系操作符>E2,其中E1和E2是算术表达式,而<关系操作符>是下列之一:“<”,“≤”,“=”,“≠”(“┓=”),“>”,或“≥”复合条件由简单条件、布尔操作符和括弧组成。假定可用于复合条件的布尔算子包括OR“|”,AND“&”和NOT“┓”,不含关系表达式的条件称为布尔表达式。分支-条件测试进行分支-条件测试可以发现下列缺陷布尔变量错误布尔括弧错误关系操作符错误算术表达式错误布尔操作符错误遗漏布尔操作符布尔操作符多余布尔操作符不正确案例使用分支-条件方法设计下面逻辑条件的测试用例需被测试的逻辑条件复合条件((a<b+c)&&(b<a+c)&&(c<a+b))简单条件a<b+cb<a+cc<a+b案例((a<b+c)&&(b<a+c)&&(c<a+b))a<b+cb<a+cc<a+b68,68,68TTTT0,0,0FFFF上面的测试用例不推荐大家使用测试用例有效性不高:t&&t=t||t=t同时f&&f=f||f=f((a<b+c)||(b<a+c)&&(c<a+b))((a<b+c)&&(b<a+c)||(c<a+b))((a<b+c)||(b<a+c)||(c<a+b))使用“同真同假”测试用例时,测试用例的有效性不高对分支-条件测试的讨论((a<b+c)&&(b<a+c)&&(c<a+b))a<b+cb<a+cc<a+b68,68,68TTTT68,8,56FFTT8,68,56FTFT8,56,68FTTF这组测试用例的结果又如何?((a<=b+c)&&(b<a+c)&&(c<a+b))?案例((a<b+c)&&(b<a+c)&&(c<a+b))a<b+cb<a+cc<a+b68,68,68TTTT68,8,60FFTT8,68,60FTFT8,60,68FTTF使用上面的测试用例,是否可以发现下面的缺陷((a<=b+c)&&(b<a+c)&&(c<a+b))((a<b+c)||(b<a+c)&&(c<a+b))((a<b+c)&&(b<a+c)||(c<a+b))((a<b+c)||(b<a+c)||(c<a+b))结论分支-条件测试可以发现但并不保证发现所有下列缺陷布尔变量错误布尔括弧错误关系操作符错误算术表达式错误布尔操作符错误遗漏布尔操作符布尔操作符多余布尔操作符不正确因此,实际设计测试用例过程中要结合具体问题选取恰当的测试输入推荐为了最大限度的发现缺陷,在进行分支-条件测试时,推荐参考下面方法设计相应被测逻辑条件的测试用例。对于表达式:A1&&A2&&…An,设计测试用例覆盖下面的情况。a.所有Ai均为真;b.设计n个测试用例,其中仅有一个为F,其余均为T,如对于A&&B&&C,覆盖下面的情况如下表所示

推荐对于表达式:A1||A2||…An,设计测试用例覆盖下面的情况。a.所有Ai均为假;b.设计n个测试用例,其中仅有一个为T,其余均为F,如对于A||B||C,覆盖下面的情况如下表所示

推荐对于表达式中含有两个布尔操作符的情况如下表所示推荐对于表达式中含有三个布尔操作符,其中仅有一个“&&”的情况如何?(略)对于表达式中含有三个布尔操作符,其中含有两个”&&”的情况如何?(略)注意即使依据推荐方法得出的测试用例依然不能发现所有的缺陷!!练习指出下列代码逻辑判断条件中的复合条件和简单条件

If(nMod400==0)Or((nMod4==0)And(nMod100<>0))ThenMsgBoxs+"是闰年!"

EndIf需被测试的逻辑条件复合条件(nMod400==0)Or((nMod4==0)And(nMod100<>0))((nMod4==0)And(nMod100<>0))简单条件(nMod400==0)(nMod4==0)(nMod100<>0)3.4分支结构的路径测试

当程序中判定多于一个时,形成的分支结构可以分为两类,即嵌套型分支结构和连锁型分支结构。对于嵌套型分支结构,若有n个判定语句,则需要n+1个测试用例;但对连锁型分支结构,若有n个判定语句,则需要有2n个测试用例,去覆盖它的2n条路径。当n较大时将无法测试。

为减少测试用例的数目,可采用试验设计法,抽取部分路径进行测试。由于抽样服从均匀分布,因此,在假定各条路径的重要性相同,或暂不明确各条路径的重要性的情况下可以做到均匀抽样。如果明确了各条路径的重要性,还可以采取加权的办法,筛选掉部分路径,再用如下的措施进行抽样。具体步骤如下:①设连锁型分支结构中有n个判定,计算满足关系式n+1≤2m的最小自然数m;

②设t=2m,取正交表Lt,并利用它设计测试数据。

例如,一个耦合型分支结构中有三个判定语句P1,P2,P3。它全部路径是23=8条。先计算3+1≤2m=t的t,得t=4。取正交表L4,如图(a)所示,把每一列当做一个判定,每一行当做可取的测试用例,则正交表L4最多可取三个判定,分别代之以P1,P2,P3。判定P1,P2,P3的取假分支和取真分支分别记作S1、S2;S3、S4;S5、S6,用各个判定的取假分支取代正交表L4中的"0",用取真分支取代正交表中的"1",就建立起一个测试路径矩阵,如图(b)所示。这样,测试路径数目从23=8条减少到3+1=4条。3.5循环结构的路径测试测试思想关注循环体结构的正确性,对循环变量运用类似于边界值测试的方法以验证循环体结构的正确性。四种不同类型的循环结构简单循环嵌套循环连接循环非结构循环循环类型测试简单循环如果n是循环次数,那么测试用例应包括

直接跳过循环体只执行一遍循环体连续执行两遍循环体如果循环次数为n,执行m(m<n)遍循环体如果循环次数为n,那么执行n-1遍循环体如果循环次数为n,那么执行n遍循环体如果循环次数为n,那么执行n+1遍循环体简单循环测试嵌套循环嵌套循环Beizer’s的方法:

从最内层测试开始,其它层的循环变量置为最小值按照简单循环的测试方法测试最内层的循环体,外层循环仍旧取最小值向外扩展循环体,测试下一个循环所有外层循环变量取最小值其余内层嵌套的循环体取典型值继续本步骤直到所有的循环体均测试完毕测试连接循环连接循环如果相连接的循环体互相独立,按照简单循环测试每一个循环体如果相连接的循环体1的循环变量的最终结果是循环体2循环变量的初始值,那么采用嵌套循环的方法来测试(靠前认为是内层循环)测试非结构循环非结构循环测试非结构循环是一件令人头痛的事情最好的方法是重新设计循环体结构案例:求最小值Min(inti,intn){k=i;j=i+1;while(j<=n){if(A[j]<A[k])k=j;j++;}}要求:做到0、1、2次循环k=i;j=i+1;j<=n?A[j]<A[k]?k=jj

++fdcabe测试用例选择练习下面是一段插入排序的程序,将R[k+1]插入到R[1…k]的适当位置。R[0]=R[k+1];

j=k;

while(R[j]>R[0])

{

R[j

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论