7-8白盒测试及其用例的设计PPT.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
7-8白盒测试及其用例的设计PPT

教学目标; 白盒测试也称结构测试或逻辑驱动测试,是针对被测单元内部是如何进行工作的测试。白盒法把测试对象看做是一个打开的盒子,允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。 ; 白盒法也不可能进行穷举测试,企图遍历所有的路径,往往是做不到的。 ;; 对于白盒测试,即使每条路径都测试了,程序仍可能有错。再如由于疏忽漏写了路径,白盒测试也发现不了。 所以,白盒法不能使测试达到彻底。为了用有限的测试发现更多的错误,需精心设计测试用例。黑盒法、白盒法是设计测试用例的基本策略,每一种方法对应着多种设计测试用例的技术,每种技术可达到一定的软件质量标准要求。;全部例子均为C语言编制;一个显而易见的问题:一个完整的语句,未必是一行语句;一些更复杂的语句;简单的赋值语句 使赋值号左侧的变量得到一个值 分支语句 使各个分支语句中至少一个被执行 循环语句 使循环体被执行至少一次;给出测试数据,使各语句均被执行; if ((x=0)||(z=0)) y=x*z;; if ((x0)or(x100)) printf(ERROR!); else if(x=60) printf(OK!); else printf(FAIL!);; for(i=0;i10;i++) s=s+a[i]; ;逻辑驱动测试; void DoWork1(int x) 1 { 2 int k=0,j=0; 3 if(x3) //语句1 4 k=x^3-1; 5 j=sqrt(k); //语句2 6 printf(%d,%5.2d\n,k,j); 7 }; void DoWork(int x,int y,int z) 1 { 2 int k=0,j=0; 3 if((x3)(z10)) //语句1 4 { 5 k=x*y-1; 6 j=sqrt(k); 7 } 8 j=j%3; //语句2 9 }; void DoWork2(int x) 1 { 2 int k=0,j=0; 3 if(x3) //语句1 4 k=x-1; 5 else 6 k=sqrt(x); };概 念;各种逻辑覆盖的概念介绍; 判定覆盖(也称为分支覆盖):设计若干个测试用例,运行所测程序,使程序中每个判断的取真分支和取假分支各至少执行一次;;这个分支语句中,判断就是条件,条件就是判断; 条件覆盖:设计足够多的测试用例,运行所测程序,使程序中每个判断的每个条件的每个可能取值至少执行一次;;也只有在判断条件较复杂时,2和3才有区别; 判定-条件覆盖:设计足够多的测试用例,运行所测程序,使程序中每个判断的每个条件的所有可能取值至少执行一次,并且每个可能的判断结果也至少执行一次;;继续对比2、3、4的区别;条件组合覆盖:设计足够多的测试用例,运行所测程序,使程序中每个判断的所有可能的条件取值组合至少执行一次;;继续对比4、5的区别; 路径覆盖:设计足够多的测试用例,运行所测程序,要覆盖程序中所有可能的路径 它是最强的覆盖准则,但只有在程序中有多个复杂分支时,才能看出和之前几种覆盖的区别;void DoWork(int x,int y,int z) { int k=0,j=0; if((x3)(z10)) { k=x*y-1; //语句块1 j=sqrt(k); } if((x= =4)||(y5)) { j=x*y+10; //语句块2 } j=j%3; //语句块3 };语句覆盖;判定覆盖;条件覆盖;可以设计测试用例如下: ; 如果设计了下面的测试用例,则虽然满足了条件覆盖,但只覆盖了第一个条件的取假分支和第二个条件的取真分支,又不满足分支覆盖的要求(be线路未执行);判定-条件覆盖; 判定-条件覆盖从表面来看,测试了所有条件的取值,但实际上,某些条件掩盖了另一些条件,即仍然有遗漏。 例如:对于条件表达式(x3)(z10)来说,必须两个条件都满足才能确定表达式为真。 如果(x3)为假,则一般的编译器将不再判断是否(z10)是否为真。对于第二个表达式(x==4)||(y5)来说,若x==4测试结果为真,就认为表达式的结果为真,这时不再检查(y5)是否为真。 可见,采用判定-条件覆盖,逻辑表达式中的错误不一定都能查出来

文档评论(0)

djdjix + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档