软件测试技术04-动态测试-白盒测试



《软件测试技术04-动态测试-白盒测试》由会员分享,可在线阅读,更多相关《软件测试技术04-动态测试-白盒测试(26页珍藏版)》请在装配图网上搜索。
1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2016/3/9,#,/,易禹,2024/11/26,软件测试技术,第,四,讲,:动态测试,-,白盒测试,最基本的白盒测试 插桩法,2,printf,log,System.out.println,在被测程序中插入操作(探测器),实现探查和监控的功能。,功能:检查程序的走向、计数、中间变量、,基本概念,3,通过运行被测试程序,检查运行结果,分析其性能。,组成部分;,构造测试用例;,运行程序;,分析结果。,动态测试分类,4,单元测试:对软件的各个模块进行测试;,集成测试:检查各单元之间的接口是否正确,非渐增和渐增式
2、测试;,组装测试:单元测试的扩展,若干个单元间数据传输测试;,确认测试:对组装测试结果的检验,用户参与或主导的测试过程;,系统测试:测试系统在真实条件下的运行情况(负载、安全、疲劳等等)。,验收测试:购买者对软件的测试。,验收测试,系统测试,确认测试,单元,/,集成测试,手动测试,“,白盒,”,测试,5,与“黑盒”测试对应,在熟悉程序内部逻辑和结构设计的基础上进行的测试。,测试内容:,对程序所有独立执行路径进行一次测试;,对所有逻辑判定的两种情形至少测试一次;,在循环的边界和运行的边界限内执行循环体;,测试内部数据结构的有效性。,“,白盒,”,测试的目标,6,如果要测试下面的函数,需要构造哪些
3、测试用例?,范例程序:,行,1,public int func(int a,int b,int x),行,2,if(a1)&(b=0),行3,x=x/a;,行,4,if(a=2)|(x1),行,5,x=x+1;,行,6,return x;,行,7,范例程序的流程图,7,逻辑覆盖的原则,8,是指在熟悉程序内部的逻辑结构基础上的测试方法,又可以细分为:,语句覆盖,保证每一条语句都至少执行一次;,路径为,ACE,的测试用例(例如:,a,=2,b,=0,x,=3,);,逻辑覆盖的原则,9,缺点:覆盖不完整,,忽略了,IF,语句为假的情况;,没有测试,IF,语句的每一个逻辑表达式。,“白盒”测试之判断覆
4、盖,保证每一个分支至少执行一次;,如两个测试用例(,ACD,和,ABE,),判断覆盖的缺点:覆盖程度不高。,“,白盒,”,测试之条件覆盖,10,每个条件组合获得各种可能的结果;,“,白盒,”,测试之条件覆盖,11,如果选用两个测试用例来覆盖:,a,=2,b,=0,x,=4,路径:,ACE,;,a,=1,b,=1,x,=1,路径:,ABD,;,判断覆盖,vs,.条件覆盖,12,判断覆盖关心判定表达式的结果,而条件覆盖关心每个表达式的取值,不关心整个判定表达式的最终值;,判断覆盖不能涵盖条件覆盖,反之亦然。,例如,下面的用例仅满足条件覆盖,不满足判断覆盖:,a,=2,b,=0,x,=1,路径:,A
5、CE,;,a,=1,b,=1,x,=2,路径:,ABE,;,“,白盒,”,测试之其他覆盖,13,判断,/,条件覆盖:,判断中每个条件的所有取值至少执行一次,同时每个判断的所有结果至少执行一次。例如:路径:,ACE,和,ABD,就满足判断,/,条件覆盖。,条件组合覆盖:,各种条件组合至少出现一次,如判断,(,a,1)&(,b,=0),共有,4,种组合。,路径覆盖:,所有可能的路径至少执行一次,范例程序共,4,条路径。,“,白盒,”,测试练习,14,请说出下面的程序最少需要几个测试用例以满足判断覆盖和条件组合覆盖?,行,1,public int func(int a,int b,int c),行,
6、2,if(ab)&(ac),行,3,a=b+c;,行,4,if(bc),行,5,b=a-c;,行,6,return c;,行,7,参考答案,15,判断覆盖,2,条件组合覆盖,6,动态测试之路径测试,16,是根据程序逻辑所产生的路径设计测试用例的方法,常用的有:,DD,(,Decision-To-Decision,)路径测试:基于路径覆盖的思想,考虑各分支的覆盖情况,压缩串行部分;,DD,路径测试压缩图:用来反映程序的分支情况,方便进行测试用例设计;,DD,路径据称可以发现约,85%,的缺陷!,DD,路径测试压缩图实例,17,其中:数字表示行号,字母表示压缩合并的节点。,基本路径测试,18,现实
7、程序中可能的路径一般是天文数字!,解决办法:压缩覆盖的路径数到一定限度内,如语句覆盖。,McCabe,提出了基本路径测试,保证每条语句至少执行一次,而且判断能取真、假两种值。,McCabe,圈复杂度,V,(,G,),V,(,G,)=,m,n,+2,其中,m,:弧数,n,:节点数,McCabe,圈复杂度示例,19,右图的圈复杂度是多少?,V,(,G,)=17,13+2=6,,,表示有,6,条独立的路径。,独立路径与判定节点,20,独立路径:一条完整的路径,至少包含一条前面路径未包含的边;,圈复杂度决定了独立路径的条数;,决定独立路径的关键:判定节点。,独立路径示例,21,测试用例设计,22,为每
8、一条独立路径设计可强制执行的测试用例;,这些测试用例可以保证:,语句覆盖:每一条语句都被执行了一次;,每个判断条件都分别去过真和假两个值。,23,请画出下面程序的流程图,计算圈复杂度和独立路径,并设计测试范例。,public int func(int a,int b),行,1,int m=1;,行,2,if(ab)/,交换,a,,,b,的值,保证,b=a,行,3,m=a;,行,4,a=b;,行,5,b=m;,行,6,while(m!=0),行,7,m=a%b;,行,8,a=b;,行,9,b=m;,行,10,return a,;,“,白盒,”,测试练习参考答案,24,圈复杂度,3,,独立路径和测
9、试用例为:,1,2,6,10,无,;,1 2 3 4 5 6 7 8 9 10,a=8,b=24;,1 2 6 7 8 9 10,a=3,b=2;,白盒测试应用策略,25,一般策略:,先静态后动态:,覆盖率测试一般使用基本路径测试,重点模块可应用多种覆盖率标准;,单元测试以代码检查、逻辑覆盖为主;,集成测试再增加静态结构分析;,系统测试中黑盒和白盒测试相结合。,覆盖测试工具,EclEmma,26,Eclipse community awards 2008,;,免费、开源的,Eclipse,插件;,EclEmma,工作模式:通过颜色标记代码在运行代码中的语句的覆盖情况,,绿色,表示该行代码被完整的执行;,红色,表示该行代码根本没有被执行;,黄色,表示该行代码部分被执行。,运行,Sudoku,查看代码覆盖情况。,EclEmma,演示,
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。