版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、白盒测试白盒测试o理解白盒测试的定义理解白盒测试的定义o掌握白盒测试的常用方法掌握白盒测试的常用方法教学目的:教学目的:教学重点:教学重点:教学难点:教学难点:教学方法:教学方法:多媒体多媒体教学课时:教学课时:6课时课时o白盒测试的覆盖测试法和途径测试法白盒测试的覆盖测试法和途径测试法o白盒测试案例应用白盒测试案例应用白盒测试白盒测试o什么是白盒测试什么是白盒测试o白盒测试的常用方法白盒测试的常用方法o白盒测试案例运用白盒测试案例运用一、什么是白盒测试一、什么是白盒测试 1、白盒测试的定义、白盒测试的定义n白盒测试White-box Testing也称作构造测试或逻辑驱动测试,它是知道产品的
2、内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进展。按照程序内部的构造测试程序,检验程序中的每条通路是否都能按预定要求正确工作,而不顾它的功能。n白盒测试的主要方法有逻辑覆盖、根本途径测试等,主要用于软件验证。一、什么是白盒测试一、什么是白盒测试 2、为什么不采用穷举途径测试法、为什么不采用穷举途径测试法n穷举途径测试法无法检查出程序本身是否违背了设计标准,即程序是否是一个错误的程序。n穷举途径测试不能查出程序因为遗漏途径而出错。n穷举途径测试发现不了一些与数据相关的错误。一、什么是白盒测试一、什么是白盒测试 3、白盒测试方法遵循的原那、白盒测试方法遵循的原那么么n确保
3、一个模块中的所有独立途径至少被测试一次。n所有逻辑值均需测试真true和假false两种情况。n检查程序的内部数据构造,保证其构造的有效性。n在取值上、下边界即可操作范围内运行所有循环。一、什么是白盒测试一、什么是白盒测试 4、控制流图、控制流图n白盒测试是针对软件产品内部逻辑构造进展测试的,测试人员必须对测试中的软件有深化的理解,包括其内部构造、各单元部分及之间的内在联络,还有程序运行原理等等。因此这是一项庞大并且复杂的工作。为了更加突出程序的内部构造,便于测试人员理解源代码,可以对程序流程图进展简化,生成控制流图Control Flow Graph。n简化后的控制流图是由节点和控制边组成的
4、。一、什么是白盒测试一、什么是白盒测试 4、控制流图、控制流图n控制流图的特点:n具有唯一入口节点,即源节点,表示程序段的开场语句;n具有唯一出口节点,即汇节点,表示程序段的完毕语句;n节点由带有标号的圆圈表示,表示一个或多个无分支的源程序语句;n控制边由带箭头的直线或弧表示,代表控制流的方向。n常见的控制流图如图3-1所示。n包含条件的节点被称为判断节点也称谓词结点,由判断节点发出的边必须终止于某一个节点。n由边和结点所限定的范围称为区域。图3-1 常见的控制流图一、什么是白盒测试一、什么是白盒测试4、控制流图、控制流图n将一个典型的程序流程图转换成控制流图一、什么是白盒测试一、什么是白盒测
5、试4、控制流图、控制流图图3-2 控制流图例如n对于复合条件,可将其分解为多个单个条件,并映射成控制流图。一、什么是白盒测试一、什么是白盒测试4、控制流图、控制流图n控制流图的矩阵表示形式,其维数等于流图的结点数,矩阵元素对应于结点的边。n假设矩阵记为M,那么M4,1=“d。一、什么是白盒测试一、什么是白盒测试5、图矩阵、图矩阵流图对应的矩阵图结点12341a2b3c4d二、白盒测试的常用方法二、白盒测试的常用方法1、覆盖率测试、覆盖率测试n白盒测试技术的常见方法之一就是覆盖测试,它是利用程序的逻辑构造设计相应的测试用例。测试人员要深化理解被测程序的逻辑构造特点,完全掌握源代码的流程,才能设计
6、出恰当的用例。n根据不同的测试要求,覆盖测试可以分为语句覆盖、判断覆盖、条件覆盖、判断/条件覆盖、条件组合覆盖和途径覆盖。二、白盒测试的常用方法二、白盒测试的常用方法1、覆盖率测试、覆盖率测试n下面是一段简单的C语言程序,作为公共程序段来说明五种覆盖测试的各自特点。n程序3-1:n1If A1& B=0 thenn2 X=X/An3If A2| X1 thenn4 X=X+1n逻辑运算符“&表示“与的关系,逻辑运算符“|表示“或的关系。其程序控制流图如图3-3所示。二、白盒测试的常用方法二、白盒测试的常用方法1、覆盖率测试、覆盖率测试图3-3 例如程序流程图及流图二、白盒测试的
7、常用方法二、白盒测试的常用方法2、语句覆盖、语句覆盖n语句覆盖Statement Coverage是指设计假设干个测试用例,程序运行时每个可执行语句至少被执行一次。在保证完成要求的情况下,测试用例的数目越少越好。n以下是针对公共程序段设计的测试用例:测试用例A,B,XA1andB=0A=2or X1执行途径Test Case 12,0,3TrueTrueaceBCEF程序按途径a,c,e流图上的途径BCEF或1-2-3-4-5顺序执行,程序中的4个语句都被执行一次,符合语句覆盖的要求。二、白盒测试的常用方法二、白盒测试的常用方法2、语句覆盖、语句覆盖n从外表上看,语句覆盖用例测试了程序中的每一
8、个语句行,好似对程序覆盖得很全面,但实际上语句覆盖测试是最弱的逻辑覆盖方法。例如,第一个判断的逻辑运算符“&错误写成“|,或者第二个判断的逻辑运算符“|错误地写成“&,这时假如仍采用Test Case 1测试用例那么程序仍按流程图上的途径ace执行;当第二个条件语句中X1误写成X0时,上述的测试用例也不能发现这一错误。n根据上述分析可知,语句覆盖测试只是外表上的覆盖程序流程,没有针对源程序各个语句间的内在关系,设计更为细致的测试用例。二、白盒测试的常用方法二、白盒测试的常用方法3、判断覆盖、判断覆盖n判断覆盖Branch Coverage是指设计假设干个测试用例,执行被测试程序
9、时,程序中每个判断条件的真值分支和假值分支至少被执行一遍。在保证完成要求的情况下,测试用例的数目越少越好。判断覆盖又称为分支覆盖。n对上述例如程序段,设计两个测试用例,使它们能通过途径ace和abd或通过途径acd及ade,即可到达“断定覆盖的标准。二、白盒测试的常用方法二、白盒测试的常用方法3、判断覆盖、判断覆盖测试用例A,B,XA1andB=0A=2or X1执行途径Test Case 12,0,3TrueTrueaceTest Case 21,0,1FalseFalseabdn采用这一组测试用例,公共程序段的4个判断分支b,c,d,e都被覆盖到了。二、白盒测试的常用方法二、白盒测试的常用
10、方法3、判断覆盖、判断覆盖测试用例A,B,XA1andB=0A=2or X1执行途径Test Case 33,0,1TrueFalseacdTest Case 42,1,3FalseTrueaben采用这一组测试用例,公共程序段的4个判断分支b,c,d,e也都被覆盖到了。n需要注意的是,上述两组测试用例在满足断定覆盖的同时,还完成了语句覆盖,因此断定覆盖要比语句覆盖更强一些。n但是,此时假如程序段中的第二个断定条件X1误写成X1andB=0包含了两个条件A1和B=0,此时,一个更强的覆盖标准是条件覆盖。n条件覆盖Condition Coverage是指设计假设干个测试用例,执行被测试程序时,程
11、序中每个判断条件中的每个判断式的真值和假值至少被执行一遍。二、白盒测试的常用方法二、白盒测试的常用方法4、条件覆盖、条件覆盖n因此,在第一个断定A1ANDB=0中应考虑到各种条件取值的情况:nA1为true,记为T1;nA1为false,记为-T1;nB=0为true,记为T2;nB=0为false,记为-T2;n同样,对于第二个断定A=2ORX1应考虑到:nA=2为true,记为T3;nA=2为false,记为-T3;nX1为true,记为T4;nX1为false,记为-t4;二、白盒测试的常用方法二、白盒测试的常用方法4、条件覆盖、条件覆盖n这两个测试用例不但覆盖了4个条件的全部8种情况,
12、而且将两个断定的4个分支b、c、d、e也同时覆盖了,即同时到达了条件覆盖和断定覆盖。测试用例A,B,X执行途径覆盖条件Test Case 12,0,3aceT1,T2,T3,T4Test Case 51,1,1abd-T1,-T2,-T3,-T4二、白盒测试的常用方法二、白盒测试的常用方法4、条件覆盖、条件覆盖n但是并不可以说判断覆盖是条件覆盖的子集。n上表中虽然覆盖了4个内部判断式的8种真假值情况。但是这组测试用例的执行途径是abe,仅是覆盖了判断条件的4个真假分支中的2个。n所以,需要设计一种能同时满足判断覆盖和条件覆盖的覆盖测试方法,即判断/条件覆盖测试。测试用例A,B,X执行途径覆盖条
13、件Test Case 61,0,3abe-T1,T2,-T3,T4Test Case 41,1,1abeT1,-T2,T3,-T4二、白盒测试的常用方法二、白盒测试的常用方法5、断定、断定/条件覆盖条件覆盖n判断/条件覆盖是指设计假设干个测试用例,执行被测试程序时,程序中每个判断条件的真假值分支至少被执行一遍,并且每个判断条件的内部判断式的真假值分支也要被执行一遍。n上表虽然满足了判断覆盖和条件覆盖,但是没有对每个判断条件的内部判断式的所有真假值组合进展测试。条件组合判断是必要的,因为条件判断语句中的“与和“或,即“&和“|,会使内部判断式之间产生抑制作用。例如,C=A & B
14、中,假如A为假值,那么C就为假值,测试程序就不检测B了,B的正确与否就无法测试了。同样,C=A | B中,假如A为真值,那么C就为真值,测试程序也不检测B了,B的正确与否也就无法测试了。测试用例A,B,X执行途径覆盖条件A1andB=0A=2or X1Test Case 12,0,3ace-T1,T2,-T3,T4TrueTrueTest Case 51,1,1abdT1,-T2,T3,-T4FalseFalse二、白盒测试的常用方法二、白盒测试的常用方法6、组合覆盖、组合覆盖n条件组合覆盖是指设计假设干个测试用例,执行被测试程序时,程序中每个判断条件的的内部判断式的各种真假组合可能都至少被执
15、行一遍。可见,满足条件组合覆盖的测试用例组一定满足判断覆盖、条件覆盖和判断/条件覆盖。n在上述例如程序段中,每个断定各包含有两个条件,这两个条件在断定中有8种可能的组合:nA1,B=0,记为T1,T2;nA1,B0,记为T1,-T2;nA=1,B=0,记为-T1,T2;nA=1,B0,记为-T1,-T2;nA=2,X1,记为T3,T4;nA=2,X=1,记为T3,-T4;nA2,X1,记为-T3,T4;nA2,X0ifitype=0break;elseifitype=1x=x+10;elsey=y+20;二、白盒测试的常用方法二、白盒测试的常用方法8、根本途径测试方法、根本途径测试方法n第一步
16、:画出控制流图:n图中每一个圆称做流图的结点,代表一条或多条语句。流图中的箭头称作边或连接,代表控制流。二、白盒测试的常用方法二、白盒测试的常用方法8、根本途径测试方法、根本途径测试方法n第二步:求出程序环形复杂度n根据程序环形复杂度的计算公式,求出程序途径集合中的独立途径数目。n公式1:VG=10-8+2,其中10是控制流图G中边的数量,8是控制流图中节点的数目。n公式2:VG=3+1,其中3是控制流图G中判断节点的数目。n公式3:VG=4,其中4是控制流图G中区域的数目。n因此,控制流图G的环形复杂度是4。就是说至少需要4条独立途径组成根本途径集合,并由此得到可以覆盖所有程序语句的测试用例
17、。二、白盒测试的常用方法二、白盒测试的常用方法8、根本途径测试方法、根本途径测试方法n第三步:导出测试用例Test Case n可得出程序的根本途径集中有4条独立途径:n途径1:4-14n途径2:4-6-7-14n途径3:4-6-9-10-13-4-14n途径4:4-6-9-12-13-4-14二、白盒测试的常用方法二、白盒测试的常用方法8、根本途径测试方法、根本途径测试方法n第四步:设计测试用例Test Case n根据第三步中的独立途径,设计测试用例的输入数据和预期输出。测试用例输入数据预期输出Test Case 1Irecordnum=0Itype=0 x=0y=0Test Case 2
18、Irecordnum=1Itype=0 x=0y=0Test Case 3Irecordnum=1Itype=1x=10y=0Test Case 4Irecordnum=1Itype=2x=0y=20例如:程序3-3:1if a or b2then 3 procedure x 4else 5 procedure y; 6 对应的控制流图如图2-12所示,程序行1的a,b都是独立的判断节点,所以共计2个判断节点。图3-4的环形复杂度为VG=2+1,其中2是图3-4中判断节点的数目。二、白盒测试的常用方法二、白盒测试的常用方法8、根本途径测试方法、根本途径测试方法二、白盒测试的常用方法二、白盒测试的常用方法8、根本途径测试方法、根本途径测试方法图3-4 程序3-3的控制流图三、白盒测试案例运用三、白盒测试案例运用 n书P3840作业作业 n1下面是一段简单的C语言程序,请分别用语句覆盖、断定覆盖、条件覆盖、断定/条件覆盖、组合覆盖和途径覆盖方法为其设计测试用例。n1 If x100& y500 thenn2 score=score+1n3 If x=1000| z5000 thenn4 score=score+5作业作业 n2下面通过一个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 26年鼻咽癌NGS检测临床落地细则
- 流程管理优化方法与实践
- 教学设计编写方法与步骤
- 毕业季主题活动策划方案
- 庭院设计流程
- 高校招聘流程标准化实施体系
- 大班科学活动《雨》探究
- 大班时钟教学课件
- 五一健康教育专题要点
- 科学节日礼物设计与实践指南
- 成都市金牛国投人力资源服务有限公司2025年公开招聘编外人员备考题库完整参考答案详解
- 陕北民歌课件
- 腰椎穿刺课件
- 郑州生物会考试题及答案
- GB/T 20801.1-2025压力管道规范第1部分:工业管道
- 加强处罚力度!带你深度剖析《食品安全法》(2025版)变化
- 2025年广东高考历史真题及答案
- 棉籽油混合油精炼工艺流程
- 基于Unity3D的横版平台跳跃游戏设计与实现
- 冶金行业安全题库及答案解析
- 2025年及未来5年中国K12家教辅导行业市场调查研究及投资前景预测报告
评论
0/150
提交评论