书签 分享 收藏 举报 版权申诉 / 72
上传文档赚钱

类型白盒测试PPT课件.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:2205182
  • 上传时间:2022-03-21
  • 格式:PPT
  • 页数:72
  • 大小:2.44MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《白盒测试PPT课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    测试 PPT 课件
    资源描述:

    1、2022-3-19单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高效- -2 2/XX-/XX-引言引言n 静态测试和动态测试 静态测试是指不运行程序进行的测试-只是检查和审阅。n 白盒测试和黑盒测试 测试用例的设计中,通常会把白盒测试和黑盒测试结合起来使用 单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高效- -3 3/XX-/XX-本章主要内容本章主要内容4.1静态测试技术4.2白盒测试技术 单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高效- -4 4/XX-/XX-4.1静态测试技术静态测试技术 n 4.1.1 代码检查n 4

    2、.1.2 静态结构分析n 4.1.3 代码质量度量 单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高效- -5 5/XX-/XX-4.1.1 代码检查代码检查n 代码检查包括代码走查、代码审查等 单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高效- -6 6/XX-/XX-代码走查代码走查n 有组织的代码走查在编码阶段去除错误的成本是在软件发布阶段去除错误成本的1/92n 全部的代码是否都需要走查 n 最大的问题是劝说开发者要遵循一定的标准 单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高效- -7 7/XX-/XX-编码风格与规范编

    3、码风格与规范n 好的风格对于好的程序设计具有关键性作用 n 代码应该是清楚的和简单的-具有直截了当的逻辑、自然的表达式、通行的语言使用方式 单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高效- -8 8/XX-/XX-代码审查代码审查 n代码审查和代码走查比较n代码审查是提高代码质量的良药 1.消除开发员的心理抵触 2.代码审查要有目标 n代码审查清单单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高效- -9 9/XX-/XX-4.1.2静态结构分析静态结构分析 静态结构分析主要是以图形的方式表现程序的内部结构,例如函数调用关系图、函数内部控制流图。其中

    4、,函数调用关系图以直观的图形方式描述一个应用程序中各个函数的调用和被调用关系;控制流图显示一个函数的逻辑结构,它由许多节点组成,一个节点代表一条语句或数条语句,连接结点的叫边,边表示节点间的控制流向。 单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高效- -1010/XX-/XX-4.1.3 代码质量度量代码质量度量 ISO/IEC 9126国际标准所定义的软件质量包括六个方面:功能性、可靠性、易用性、效率、可维护性和可移植性。软件的质量是软件属性的各种标准度量的组合。单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高效- -1111/XX-/XX-4.2

    5、白盒测试方法白盒测试方法 n 白盒测试,也称为结构化测试、基于代码的测试,是一种测试用例设计方法,它从程序的控制结构导出测试用例。 3581322.293419985680302829734315250*(1+0.015)*(1+0.015)360-1)/0.015白盒测试 带上X光眼镜测试单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高效- -1212/XX-/XX-4.2白盒测试方法白盒测试方法这个流程图,其中包括了一个执行达20次的循环。那么它所包含的不同执行路径数高达520条,若要对它进行穷举测试,覆盖所有的路径。假使测试程序对每一条路径进行测试需要1毫秒,同样假定

    6、一天工作24小时,一年工作365 天, 那么要想把如图所示的小程序的所有路径测试完,则需要3170年。单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高效- -1313/XX-/XX-4.2白盒测试方法白盒测试方法n 由于对于不同复杂度的代码逻辑,可以衍生出许多种执行路径,只有选择适当的测试方法,才能帮助我们从代码的迷雾森林中找到正确的方向。单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高效- -1414/XX-/XX-4.2.1 逻辑覆盖法逻辑覆盖法n白盒测试中的逻辑覆盖方法有以下6种:1.语句覆盖2.判定覆盖3.条件覆盖4.判定条件覆盖5.条件组合覆盖

    7、6.路径覆盖单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高效- -1515/XX-/XX-例:实现一个简单的数学运算例:实现一个简单的数学运算1. Dim a,b As Integer2. Dim c As Double3. If (a0 And b0) Then4. c=c/a5. End if6. If (a1 or c1) Then7. c=c+18. End if9. c=b+c单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高效- -1616/XX-/XX-1.语句覆盖语句覆盖n基本思想是:设计若干测试用例,运行被测程序,使程序中每个可执行语句

    8、至少执行一次。1单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高效- -1717/XX-/XX-1.语句覆盖语句覆盖续续1只需设计一个测试用例:a=2,b=1,c=6;即达到了语句覆盖。单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高效- -1818/XX-/XX-1.语句覆盖语句覆盖续续2n 【优点优点】 :可以很直观地从源代码得到测试用例,无须细分每条判定表达式。n 【缺点缺点】 :由于这种测试方法仅仅针对程序逻辑中显式存在的语句,但对于隐藏的条件是无法测试的。如在多分支的逻辑运算中无法全面的考虑。语句覆盖是最弱的逻辑覆盖。单击此处编辑母版标题样式单

    9、击此处编辑母版标题样式规范 标准 专业 高效- -1919/XX-/XX-2.判定覆盖判定覆盖n基本思想是:设计若干测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次,即判断真假值均曾被满足。1单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高效- -2020/XX-/XX-2.判定覆盖判定覆盖续续1a=2,b=1 ,c=6可覆盖判断M的Y分支和判断Q的Y分支; a=-2,b=-1 ,c=-3可覆盖判断M的N分支和判断Q的N分支 。 这两组测试用例可覆盖所有判定的真假分支。判断M判断Q单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高

    10、效- -2121/XX-/XX-2.判定覆盖判定覆盖续续2a=1,b=1 ,c=-3 可覆盖判断M的Y分支和判断Q的N分支 ; a=1,b=-2 ,c=3可覆盖判断M的N分支和判断Q的Y分支 ; 同样的这两组测试用例也可覆盖所有判定的真假分支。判断M判断Q单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高效- -2222/XX-/XX-2.判定覆盖判定覆盖续续3n 【优点优点】:判定覆盖具有比语句覆盖更强的测试能力。同样判定覆盖也具有和语句覆盖一样的简单性,无须细分每个判定就可以得到测试用例。n 【缺点缺点】:往往大部分的判定语句是由多个逻辑条件组合而成,若仅仅判断其整个最终

    11、结果,而忽略每个条件的取值情况,必然会遗漏部分测试路径。判定覆盖仍是弱的逻辑覆盖。单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高效- -2323/XX-/XX-3.条件覆盖条件覆盖n基本思想是:设计若干测试用例,执行被测程序以后要使每个判断中每个条件的可能取值至少满足一次。1单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高效- -2424/XX-/XX-3.条件覆盖条件覆盖续续1n 判断M表达式:设条件 a0 取真 记为 T1 假 F1 条件 b0 取真 记为 T2 假 F2n 判断Q表达式:设条件 a1 取真 记为 T3 假 F3 条件 c1 取真

    12、记为 T4 假 F4判断M判断Q单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高效- -2525/XX-/XX-3.条件覆盖条件覆盖续续2测试用例覆盖条件具体取值条件a=2,b=-1,c=-2T1, F2, T3, F4a0,b1,c=1a=-1,b=2,c=3F1, T2, F3, T4a0,a1它覆盖了判定它覆盖了判定M M的的N分支和判断分支和判断Q Q的的Y分支分支。我们用条件覆盖设计的思想就是让测试用例能覆盖T1、T2、T3、T4、F1、F2、F3、F4判断M判断Q单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高效- -2626/XX-/XX-

    13、3.条件覆盖条件覆盖续续3n 【优点优点】:增加了对条件判定情况的测试,增加了测试路径。n 【缺点缺点】:条件覆盖不一定包含判定覆盖。例如,我们刚才设计的用例就没有覆盖判断M的Y分支和判断Q的N分支。条件覆盖只能保证每个条件至少有一次为真,而不考虑所有的判定结果。单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高效- -2727/XX-/XX-4.判定条件覆盖判定条件覆盖n基本思想是:设计足够的测试用例,使得判断条件中的所有条件可能至少执行一次取值,同时,所有判断的可能结果至少执行一次。1单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高效- -2828/X

    14、X-/XX-判断M判断Q4.判定条件覆盖判定条件覆盖续续1 按照判定条件覆盖的要求,我们设计的测试用例要满足如下条件:1. 所有条件可能至少执行一次取值;2. 所有判断的可能结所有判断的可能结果至少执行一次。果至少执行一次。要满足要满足T1、T2、 T3 、T4F1、 F2 、F3、F4单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高效- -2929/XX-/XX-4.判定条件覆盖判定条件覆盖续续2测试用例覆盖条件覆盖判断a=2,b=1,c=6T1, T2,T3, T4M的Y分支和Q的Y分支a=-1,b=-2,c=-3F1, F2, F3, F4M的N分支和Q的N分支判断M

    15、判断Q要满足要满足T1、T2、 T3 、T4F1、 F2 、F3、F4单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高效- -3030/XX-/XX-4.判定条件覆盖判定条件覆盖续续3n 【优点优点】 :能同时满足判定、条件两种覆盖标准。n 【缺点缺点】 :判定/条件覆盖准则的缺点是未考虑条件的组合情况。单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高效- -3131/XX-/XX-5.条件组合覆盖条件组合覆盖n基本思想是:设计足够的测试用例,基本思想是:设计足够的测试用例,使得所有可能的条件取值组合使得所有可能的条件取值组合至少执行一次至少执行一次1单

    16、击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高效- -3232/XX-/XX-5.条件组合覆盖条件组合覆盖续续1n 按照条件组合覆盖的基本思想,对于前面的例子,我们把每个判断中的所有条件进行组合,设计组合条件如表所示,而我们设计的测试用例就要包括所有的组合条件。编号覆盖条件取值判定条件取值具体条件取值1 T1,T2M取Y a0,b02 T1,F2M取N a0,b=03 F1,T2M取N a04 F1,F2M取N a= 0,b1,c16 T3,F4Q取Y a1,c=17 F3,T4Q取Y a18 F3,F4Q取N a=1,c=2或者出度=2;n 由一个节点组成,入度=1并且出

    17、度=1;n 长度=的最大链。单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高效- -5656/XX-/XX-DD-路径测试路径测试续续2n 为了便于理解,我们用图3-4三角形伪代码映射成的控制流图来说明这五种情况。 单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高效- -5757/XX-/XX-节点 DD-路径名称 定义情况 4第一15-8A59B310C411D412E313F314H315I416J317K418L419M320N321G422O323最后2单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高效- -5858/XX-/

    18、XX-DD-路径测试路径测试续续3n 提出DD-路径的目的很多质量机构都把DD-路径覆盖作为测试覆盖的最低可接受级别。E.F.Miller发现,当通过一组测试用例满足DD-路径覆盖要求时,可以发现全部缺陷中的大约85%(Miller 1991)。n 如果每一条DD-路径都被遍历,则我们知道每个判断分支都被执行,其实就是遍历DD-路径图中每条边。对于if类的 语句,这意味着真、假分支都要覆盖。对于CASE语句,则每个子句都要覆盖。单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高效- -5959/XX-/XX-基本路径测试基本路径测试n 基本路径测试法是在程序控制流图的基础上,

    19、通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。设计出的测试用例要保证在测试中程序的每个可执行语句至少执行一次。 单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高效- -6060/XX-/XX-基本路径测试基本路径测试续续基本路径测试法包括以下5个方面:1. 程序的控制流图:描述程序控制流的一种图示方法。2. 程序环境复杂性: 环形复杂度是一种为程序逻辑复杂性提供定量测度的软件度量,将该度量用于计算程序的基本独立路径数目边。3. 导出测试用例:通过程序的控制流图导出基本路径集,列出程序的独立路径。4. 准备测试用例,确保基本路径集中的每一条路径

    20、的执行。5. 图形矩阵:是在基本路径测试中起辅助作用的软件工具,利用它可以实现自动地确定一个基本路径集。单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高效- -6161/XX-/XX-基本路径测试基本路径测试举例举例n 下面我们通过一个实例来说明基本路径测试。n 例:请看以下代码,它由C+语言书写。,把它转化成图形矩阵,最后请使用基本路径测试法为变量temp设计测试用例,使之满足基本路径覆盖要求。单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高效- -6262/XX-/XX-基本路径测试基本路径测试举例举例1. void ReadPara( CStrin

    21、g temp)2. 3. if ( temp = = =)4. m_oper.SetCurSel(0);5. else6. 7. if (temp = = )8. m_oper.SetCurSel(1);9. else10. 11. if ( temp = = = =)12. m_oper.SetCurSel(2);13. else14. 15. if( temp = = =)16. m_oper.SetCurSel(3);17. else18. 19. if ( temp = = =”)m_oper.SetCurSel(0)Path 2ReadPara(”)m_oper.SetCurSel(

    22、1)Path 3ReadPara(”=”)m_oper.SetCurSel(2)Path 4ReadPara(”)m_oper.SetCurSel(3)Path 5ReadPara(”=”)m_oper.SetCurSel(4)Path 6ReadPara(”+”)m_oper.SetCurSel(5)单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高效- -6565/XX-/XX-4.2.5 程序插桩程序插桩n 在软件测试中,常常要用到一种“插桩”技术,通过在源代码中加入记录信息语句,以便进行运行信息的追踪和调试,统计有关的运行资源状况。单击此处编辑母版标题样式单击此处编辑

    23、母版标题样式规范 标准 专业 高效- -6666/XX-/XX-程序插桩程序插桩续续n 想做插桩,可以思考以下几点: (1)如果出现在语句中包含了return语句,怎么在它前面插入指定语句?同时保证语句的语法合法性? 例如: for ( j=0;j10000;j+) if ( j = k) return ; - 不能直接在之前插入,否则意义全变了; 单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高效- -6767/XX-/XX-程序插桩程序插桩续续2 (2)当出现需要在for 循环语句、while循环语句中进行插入信息时候,很可能会导致程序运行时间非常长,是否有办法改进“插

    24、桩”机制? (3)是否可以由用户进行指定,比如for 语句、while语句或者指定的语句前不允许进行“插桩”,怎么实现? (4)如果对于一个庞大的系统软件,我们需要进行对所运行的程序的每个函数记录其运行的有关参数,如:运行开始时间、退出时间、运行总时间、调用次数等等的统计,您有什么更好的建议与想法呢?单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高效- -6868/XX-/XX-本章小结本章小结1. 白盒测试是软件测试技术中最基本的方法之一,白盒测试的核心是针对被测单元内部是如何进行工作的测试,是以覆盖测试与路径测试为基本策略。2. 白盒测试是一种被广泛使用的逻辑测试方法,

    25、是由程序内部逻辑驱动的一种单元测试方法。只有对程序内部十分了解才能进行适度有效的白盒测试。但是贯穿在程序内部的逻辑存在着不确定性和无穷性,尤其对于大规模复杂软件。因此我们不能穷举所有的逻辑路径,即使穷举也未必会带来好运(穷举不能查出程序逻辑规则错误,不能查出数据相关错误,不能查出程序遗漏的路径)。3. 那么正确使用白盒测试,就要先从代码分析入手,根据不同的代码逻辑规则、语句执行情况,选用适合的覆盖方法。任何一个高效的测试用例,都是针对具体测试场景的。逻辑测试不是片面的测试正确的结果或是测试错误的结果,而是尽可能全面地覆盖每一个逻辑路径。单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准

    26、 专业 高效- -6969/XX-/XX-作业作业1请把下面的程序流程图转化成控制流图。单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高效- -7070/XX-/XX-作业作业2请把第2章的NextDate问题的伪代码转换成为控制流图,并简化。3为伪代码三角形程序开发条件组合覆盖的测试用例。4重新编写程序片断1420,用嵌套if-then-else语句替代复合条件。14.if(a=b)AND (b=c)15.Then Output(“Equilateral”)16.Else If(ab)AND(ac)AND(bc)17.Then Output(“Scalence”)18.E

    27、lse Output(“Isosecles”)19.EndIf20.EndIf 比较你改写后的程序和上面程序片断的圈复杂度。单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高效- -7171/XX-/XX-作业作业5根据第4题的程序片断。对于a=c测试用例(例如a=4,b=5,c=4)会出现什么情况?第14行中的条件利用等式的传递性去掉了a=c这个条件,这样会出现问题吗?6如果我们仔细研究NextDate的实现,就看出一个问题。请看1个月有30天(4、6、9、11月)的CASE子句。没有day=31的特别行为,讨论这种行为是否正确。请就2月对应得day=29取值处理的CASE子句进行类似的讨论。单击此处编辑母版标题样式单击此处编辑母版标题样式规范 标准 专业 高效- -7272/XX-/XX-Q & A

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:白盒测试PPT课件.ppt
    链接地址:https://www.163wenku.com/p-2205182.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库