白盒测试黑盒测试_第1页
白盒测试黑盒测试_第2页
白盒测试黑盒测试_第3页
白盒测试黑盒测试_第4页
白盒测试黑盒测试_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

暴露问题并不是软件测试的最终目的,发现问题是为了解决问题,测试阶段的根本目标是尽可能多地发现并排除软件中潜藏的错误,最终把一个高质量的软件系统交给用户使用。7.软件测试基础臭名昭著的软件错误1、迪斯尼狮子王游戏(1994年)—未能对平台进行广泛的测试2、奔腾浮点除法缺陷(1994年)—(4195835/3145727)*3145727-41958353、火星极地登录者号探测器(1999年)—数据位被意外置位,机械震动会触发着陆点触点开关4、爱国者导弹(1991年)—海湾战争中失利,系统时钟累计错误,14小时后,跟踪系统不再准确5、千年虫问题(1974年)6、JPEG图片病毒7、1992年6月26日,凤凰城机场停飞一天,原因:当天气温122℉,仪器设定最高温度120℉G.Myers给出了关于测试的一些规则,这些规则也可以看作是测试的目标或定义。(1)测试是为了发现程序中的错误而执行程序的过程;(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;(3)成功的测试是发现了至今为止尚未发现的错误的测试。7.1软件测试的目标下面讲述主要的测试准则。(1)所有测试都应该能追溯到用户需求。(2)应该远在测试开始之前就制定出测试计划。(3)把Pareto原理应用到软件测试中。80-20(4)应该从“小规模”测试开始,并逐步进行“大规模”测试。(5)穷举测试是不可能的。(6)为了达到最佳的测试效果,应该由独立的第三方从事测试工作。7.2软件测试准则7.3测试方法(I)测试技术1、白盒测试(WhiteBoxTesting)2、黑盒测试(BlackBoxTesting)结构测试功能测试也叫玻璃盒测试(GlassBoxTesting)。对软件的过程性细节做细致的检查。这一方法是把测试对象看作一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,来设计或选择测试用例,对程序所有逻辑、路径进行测试。7.4白盒测试技术逻辑覆盖测试的5种标准7.4.1逻辑覆盖发现错误的能力标准含义1(弱)语句覆盖每条语句至少执行一次2判定覆盖每一判定的每个分支至少执行一次3条件覆盖每一判定中的每个条件分支,分别按“真”、“假”至少各执行一次4判定/条件覆盖同时满足判定覆盖和条件覆盖的要求5(强)条件组合覆盖求出判定中所有条件的各种可能组合值,每一可能的条件组合至少执行一次语句覆盖ace(L1)abd(L2)abe(L3)acd(L4)bda输出的:A,B,Xce(A>1)^(B=0)X=X/ATF(A=2)V(X>1)X=X+1TF输入的:A,B,X2,0,42,0,3满足语句覆盖的测试用例如下ace----L1ANDOR判定覆盖(分支覆盖)bdace(A>1)^(B=0)X=X/ATF(A=2)V(X>1)X=X+1TF2,0,42,0,3取“真”分支测试用例如下ace----abd----1,1,11,1,1取“假”分支测试用例如下L1L2Coveronly½program2,1,12,1,2取“真假”分支测试用例如下abe----bdace(A>1)^(B=0)X=X/ATF(A=2)V(X>1)X=X+1TFL33,0,33,0,1取“真假”分支测试用例如下bdace(A>1)^(B=0)X=X/ATF(A=2)V(X>1)X=X+1TFacd----L4条件覆盖bdace(A>1)^(B=0)X=X/ATF(A=2)V(X>1)X=X+1TF判断条件取真值取假值判断(一)A>1T1T1B=0T2T2判断(二)A=2T3T3X>1T4T4设条件的取值标记bdace(A>1)^(B=0)X=X/ATF(A=2)V(X>1)X=X+1TF判断条件取真值取假值判断(一)A>1T1T1B=0T2T2判断(二)A=2T3T3X>1T4T4设条件的取值标记

条件覆盖可选取的(第一组测试用例)如下表测试用例通过路径条件取值覆盖分支

(2,0,4),(2,0,3)ace(L1)T2T3T4c,e(1,1,1),(1,1,0)abd(L2)T1b,dT1T3T4T2bdace(A>1)^(B=0)X=X/ATF(A=2)V(X>1)X=X+1TF判断条件取真值取假值判断(一)A>1T1T1B=0T2T2判断(二)A=2T3T3X>1T4T4设条件的取值标记

条件覆盖可选取的(第二组测试用例)如下表测试用例通过路径条件取值覆盖分支

(1,0,3),(1,0,4)abe(L3)T1T2T3T4b,e(2,1,1),(2,1,2)abe(L3)b,eT1T2T3T4Thesameroad

判定/条件覆盖bdace(A>1)^(B=0)X=X/ATF(A=2)V(X>1)X=X+1TF判断条件取真值取假值判断(一)A>1T1T1B=0T2T2判断(二)A=2T3T3X>1T4T4设条件的取值标记

判定/条件覆盖可选取的测试用例

如下表测试用例通过路径条件取值覆盖分支

(2,0,4),(2,0,3)ace(L1)T1T2T3T4c,e(1,1,1),(1,1,0)abd(L2)b,dT1T2T3T4条件组合覆盖条件标记第一个判断取真假分支

bdace(A>1)^(B=0)X=X/ATF(A=2)V(X>1)X=X+1TFA>1B=0A>1B≠0A≯1B=

0A≯1B≠

0判断条件取真值取假值判断(一)A>1T1T1B=0T2T2判断(二)A=2T3T3X>1T4T4设条件的取值标记T1T2①

取真分支T1T2T1T2②

取假分支③

取假分支④

取假分支T1T2条件标记第二个判断取真假分支

bdace(A>1)^(B=0)X=X/ATF(A=2)V(X>1)X=X+1TFA=2X>1A=2X≯1A≠2X>1A≠2X≯1判断条件取真值取假值判断(一)A>1T1T1B=0T2T2判断(二)A=2T3T3X>1T4T4设条件的取值标记T3T4⑤

取真分支T3T4T3T4⑥

取真分支⑦

取真分支⑧

取假分支T3T4bdace(A>1)^(B=0)X=X/ATF(A=2)V(X>1)X=X+1TF设条件的取值标记测试用例通过路径条件取值覆盖组合号

条件标记第一个判断取真假分支A>1B=0T1T2①取真分支A>1B≠0

T1T2②

取假分支A≯1B=0

T1T2③

取假分支A≯1B≠0

T1T2④

取假分支(2,0,4),(2,0,3)aceL1T1T2T3T4①,⑤(2,1,1),(2,1,2)abeL3T1T2T3T4②,⑥(1,0,3),(1,0,4)abeL3T1T2T3T4③,⑦(1,1,1),(1,1,1)abdL2T1T2T3T4④,⑧全真对全真真假对真假假真对假真全假对全假点覆盖:至少经过流图的每个结点,标准与语句覆盖相同边覆盖:流图中每条边至少经过一次,与判定覆盖一致路径覆盖:每条可能的路径至少执行一次STARTINPUT(A,B,C)IFA>5 THENX=10 ELSEX=1ENDIFIFB>10 THENY=20 ELSEY=2ENDIFIFC>15THENZ=30 ELSEZ=3ENDIFPRINT(X,Y,Z)STOP习题:设计下列伪码程序的语句覆盖和路径覆盖测试用例:注意路径覆盖指把程序的每条路径执行一次,与基本路径测试不同(考虑独立路径)STARTINPUT(A,B,C)IFA>5 THENX=10 ELSEX=1ENDIFIFB>10 THENY=20 ELSEY=2ENDIFIFC>15THENZ=30 ELSEZ=3ENDIFPRINT(X,Y,Z)STOP(1)语句覆盖的测试用例有三个判断表达式,并且每个表达式为真和为假都有语句执行,因此需要两组测试数据,使每个判定的真假各一次,这样才能使每条语句都至少执行一次。第一组,使三个判定全假:输入:A=1,B=1,C=1预期的输出:X=1,Y=2,Z=3第二组,使三个判定全真:输入:A=10,B=20,C=30预期的输出:X=10,Y=20,Z=30STARTINPUT(A,B,C)IFA>5 THENX=10 ELSEX=1ENDIFIFB>10 THENY=20 ELSEY=2ENDIFIFC>15THENZ=30 ELSEZ=3ENDIFPRINT(X,Y,Z)STOP(2)路径覆盖测试用例:该程序共有2*2*2=8条可能的路径,为了能覆盖每条路径,需要8组测试数据,刚才的全真和全假已经有了,只需补充剩余6个:第三组,真真假:输入:A=10,B=20,C=10预期的输出:X=10,Y=20,Z=3第四组,真假假:输入:A=10,B=10,C=10预期的输出:X=10,Y=2,Z=3第五组,真假真:输入:A=10,B=10,C=30预期的输出:X=10,Y=2,Z=30其余的依次类推,不再赘述。习题:设计下列伪码的分支覆盖和条件组合覆盖测试用例STARTINPUT(A,B,C,D)IF(A>0)AND(B>0)

THENX=A+BELSEX=A-BENDIF(C>A)OR(D<B)

THENY=C-DELSEY=C+DENDPRINT(X,Y)STOPSTARTINPUT(A,B,C,D)IF(A>0)AND(B>0)

THENX=A+BELSEX=A-BENDIF(C>A)OR(D<B)

THENY=C-DELSEY=C+DENDPRINT(X,Y)STOP(1)分支覆盖测试用例:分支覆盖即判定覆盖,指的是判定的每个分支都执行一次,本题有两个判定,因此设计两组测试数据:第一组,判定全真输入:A=1,B=1,C=2,D=0预期输出:X=2,Y=2第二组,判定全假输入:A=1,B=0,C=0,D=1预期输出:X=1,Y=1STARTINPUT(A,B,C,D)IF(A>0)AND(B>0)

THENX=A+BELSEX=A-BENDIF(C>A)OR(D<B)

THENY=C-DELSEY=C+DENDPRINT(X,Y)STOP(2)条件组合覆盖测试用例:条件组合要求每个表达式的各种可能组合都至少出现一次。对于第一个表达式有4种组合:对于第二个表达式有4种组合:A>0,B>0C>A,D<BA>0,B<=0C>A,D>=BA<=0,B>0C<=A,D<BA<=0,B<=0C<=A,D>=B对应组合之。具体不再赘述。1.基本路径测试使用基本路径测试技术设计测试用例的步骤如下:第一步,根据过程设计结果画出相应的流图。第二步,计算流图的环形复杂度。第三步,确定线性独立路径的基本集合。第四步,设计可强制执行基本集合中每条路径的测试用例。7.4.2控制结构测试(I)图7.6求平均值过程的流图路径1:1一2一10一11一13路径2:1一2一10一12一13路径3:1一2一3一10一11一13路径4:1一2一3一4一5一8一9一2一10—11—13路径5:1一2一3一4一5一6一8一9一2一10—11—13路径6:1一2一3一4一5一6一7一8一9一2一10—11—13路径1:1一2一10一11一13路径2:1一2一10一12一13路径3:1一2一3一10一11一13路径4:1一2一3一4一5一8一9一2一10—11—13路径5:1一2一3一4一5一6一8一9一2一10—11—13路径6:1一2一3一4一5一6一7一8一9一2一10—11—13习题:使用基本路径测试方法,设计测试下面列出的伪码程序的测试用例:1:STARTINPUT(A,B,C,D)2:IF(A>0)3:AND(B>0)4:THENX=A+B5:ELSEX=A-B6:END7:IF(C>A)8:OR(D<B)9:THENY=C-D10:ELSEY=C+D11:END12:PRINT(X,Y)

STOP1236479111258101:STARTINPUT(A,B,C,D)2:IF(A>0)3:AND(B>0)4:THENX=A+B5:ELSEX=A-B6:END7:IF(C>A)8:OR(D<B)9:THENY=C-D10:ELSEY=C+D11:END12:PRINT(X,Y)

STOP123647911125810用基本路径测试方法设计测试用例有4步:(1)画出流图(2)计算环形复杂度为5(3)确定独立路径的基本集合路径1:1-2-3-4-6-7-9-11-12路径2:1-2-3-4-6-7-8-9-11-12路径3:1-2-3-4-6-7-8-10-11-12路径4:1-2-5-6-7-9-11-12路径5:1-2-3-5-6-7-9-11-12(4)设计测试用例,不再赘述黑盒测试着重测试软件功能。它很可能发现白盒测试不易发现的其他类型的错误。黑盒测试力图发现下述类型的错误:

①功能不正确或遗漏了功能;

②界面错误;

③数据结构错误或外部数据库访问错误;

④性能错误;

⑤初始化和终止错误。7.5黑盒测试技术7.6黑盒测试技术1、等价划分2、边界值分析3、错误推测等价划分是一种黑盒测试技术,这种技术把程序的输入域划分成若干个数据类,据此导出测试用例。划分等价类的启发式规则如下:(1)如果规定了输入值的范围,则可划分出一个有效的等价类(输入值在此范围内),两个无效的等价类(输入值小于最小值或大于最大值);7.6.1等价划分例如:规定输入值的范围1~999,则可划分一个有效等价类(大于1小于999的数)和两个无效的等价类(小于1和大于999的数)(2)如果规定了输入数据的个数,则类似地也可以划分出一个有效的等价类和两个无效的等价类;例如:每名学生一学期只能选修1~3门课程,则可划分一个有效等价类(选修1~3门)和两个无效等价类(不选修和选修超过3门)(3)如果规定了输入数据的一组值,而且程序对不同输入值做不同处理,则每个允许的输入值是一个有效的等价类,此外还有一个无效的等价类(任一个不允许的输入值);例如:交通工具的类型必须是火车、汽车或轮船,那么为每一组确定一个有效等价类,同时确定一个无效等价类(飞机)(4)如果规定了输入数据必须遵循的规则,则可以划分出一个有效的等价类(符合规则)和若干个无效的等价类(从各种不同角度违反规则);例如:规定标识符第一个字符必须是字母,则可划分一个有效等价类(第一个字符是字母)和一个无效等价类(第一个字符不是字母)

某工厂公开招工,规定报名者年龄应在16~35周岁之间(到1995年6月30日为止),即出生年月不早于1960年7月,不晚于1979年6月。报名程序具有自动检验输入数据的功能。如出生年月不在上述范围内,将拒绝接受,并显示“年龄不合格”等出错信息。请试用等价分类法,设计出生年月的等价分类表。习题、请利用等价分类法为以下提供的内容设计测试用例1、划分出生年月等价分类表

假定已知出生年月是由6位数字字符表示,前4位代表年,后2位代表月,则可以划分为3个有效等价类和7个无效等价类。输入数据有效等价类无效等价类出生年月①6位有效数字字符②有非数字字符③少于6个数字字符④多于6个数字字符对应数值⑤196007-197906

⑥<196007⑦>197906月份对应数值⑧在1-12之间⑨等于“0”⑩>122、设计有效等价类需要的测试用例输入数据有效等价类无效等价类出生年月①6位有效数字字符②有非数字字符③少于6个数字字符④多于6个数字字符对应数值⑤196007-197906

⑥<196007⑦>197906月份对应数值⑧在1-12之间⑨等于“0”⑩>12测试数据期望结果测试范围

197011输入有效①、⑤、⑧输入数据有效等价类无效等价类出生年月①6位有效数字字符②有非数字字符③少于6个数字字符④多于6个数字字符对应数值⑤196007-197906

⑥<196007⑦>197906月份对应数值⑧在1-12之间⑨等于“0”

⑩>12测试数据期望结果测试范围

MAY,70输入无效②有非数字字符19705输入无效输入无效③

少于6个数字

温馨提示

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

评论

0/150

提交评论