欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    白盒测试逻辑覆盖.ppt

    • 资源ID:49412949       资源大小:1.74MB        全文页数:30页
    • 资源格式: PPT        下载积分:18金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要18金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    白盒测试逻辑覆盖.ppt

    白盒测试逻辑覆盖现在学习的是第1页,共30页测试用例测试用例由测试输入数据以及与之对应的输测试用例由测试输入数据以及与之对应的输出结果组成。出结果组成。测试用例设计的好坏直接决定了测试的效果测试用例设计的好坏直接决定了测试的效果和结果。所以说在软件测试活动中最关键的和结果。所以说在软件测试活动中最关键的步骤就是设计有效的测试用例。步骤就是设计有效的测试用例。测试用例可以针对黑盒测试设计用例,也可测试用例可以针对黑盒测试设计用例,也可以针对白盒测试设计用例,我们今天开始讲以针对白盒测试设计用例,我们今天开始讲针对白盒测试的用例设计方法。针对白盒测试的用例设计方法。现在学习的是第2页,共30页白盒测试方法为什么要进行白盒测试?为什么要进行白盒测试?如果所有软件错误的根源都可以追溯到某个唯一原因,那么问题就简单了。如果所有软件错误的根源都可以追溯到某个唯一原因,那么问题就简单了。然而,事实上一个然而,事实上一个bug 常常是由多个因素共同导致的,如下图所示。常常是由多个因素共同导致的,如下图所示。假设此时开发工作已结束,程序送交到假设此时开发工作已结束,程序送交到假设此时开发工作已结束,程序送交到假设此时开发工作已结束,程序送交到测试组,没有人知道代码中有一个潜在的测试组,没有人知道代码中有一个潜在的测试组,没有人知道代码中有一个潜在的测试组,没有人知道代码中有一个潜在的被被被被 0 0 除的错误。若测试组采用的测试用例除的错误。若测试组采用的测试用例除的错误。若测试组采用的测试用例除的错误。若测试组采用的测试用例的执行路径没有同时经过的执行路径没有同时经过的执行路径没有同时经过的执行路径没有同时经过x=0 x=0和和和和y=5/xy=5/x进进进进行测试,显然测试工作似乎非常完善,行测试,显然测试工作似乎非常完善,行测试,显然测试工作似乎非常完善,行测试,显然测试工作似乎非常完善,测试用例覆盖了所有执行语句,也没有测试用例覆盖了所有执行语句,也没有测试用例覆盖了所有执行语句,也没有测试用例覆盖了所有执行语句,也没有被被被被 0 0 除的错误发生。除的错误发生。除的错误发生。除的错误发生。现在学习的是第3页,共30页白盒测试方法(续)程序结构分析;程序结构分析;逻辑覆盖;逻辑覆盖;基本路径测试;基本路径测试;白盒测试根据程序的控制结构设计导出测试用例,白盒测试根据程序的控制结构设计导出测试用例,主要用于软件程序的验证。主要用于软件程序的验证。需要全面了解程序内部的逻辑结构,对所有逻辑需要全面了解程序内部的逻辑结构,对所有逻辑路径进行测试,是一种穷举路径的测试方法。路径进行测试,是一种穷举路径的测试方法。现在学习的是第4页,共30页穷举路径仍然存在遗憾穷举路径测试法无法检查出程序本身是穷举路径测试法无法检查出程序本身是否违反了设计规范,即程序是否是一个否违反了设计规范,即程序是否是一个错误的程序;错误的程序;穷举路径测试不可能查出程序因为遗漏穷举路径测试不可能查出程序因为遗漏路径而出错;路径而出错;穷举路径测试发现不了一些与数据相关穷举路径测试发现不了一些与数据相关的错误;的错误;现在学习的是第5页,共30页白盒测试原则保证一个模块中的所有独立路径至少被保证一个模块中的所有独立路径至少被测试一次;测试一次;所有逻辑值均需测试真(所有逻辑值均需测试真(True)和假)和假(False)两种情况;)两种情况;检查程序的内部数据结构,保证其结构检查程序的内部数据结构,保证其结构的有效性;的有效性;在取值上、下边界,即可操作范围内运在取值上、下边界,即可操作范围内运行所有循环行所有循环.现在学习的是第6页,共30页白盒测试方法(续)白白盒盒测测试试主主要要是是检检查查程程序序的的内内部部结结构构、逻逻辑辑、循循环环和和路径。常用测试用例设计方法有:路径。常用测试用例设计方法有:逻辑覆盖法(逻辑驱动测试)逻辑覆盖法(逻辑驱动测试)基本路径测试方法基本路径测试方法现在学习的是第7页,共30页覆盖测试主要是测试覆盖率,以程序内在逻辑结主要是测试覆盖率,以程序内在逻辑结构为基础的测试。包括以下构为基础的测试。包括以下6种类型:种类型:语句覆盖语句覆盖判定覆盖判定覆盖条件覆盖条件覆盖判定判定-条件覆盖条件覆盖条件组合覆盖条件组合覆盖修正修正-判定条件覆盖判定条件覆盖现在学习的是第8页,共30页逻辑覆盖法int function1(int a,int b,int c)int x;x=0;if(a&(b|c)x=1;return x;现在学习的是第9页,共30页现在学习的是第10页,共30页1、语句覆盖(Statement Coverage)原理:如果语句中有错误,仅靠观察不执行可能发现不了在测试时,首先设计若干个测试用例,然后运行被测程序,使程序中的每个可执行语句至少执行一次 若干个-尽量少 语句覆盖、程序段覆盖、程序块覆盖现在学习的是第11页,共30页语句覆盖率语句覆盖率l已执行的可执行语句占程序中可执行语句总数的百分比复杂的程序不可能达到语句的完全覆盖语句覆盖率越高越好现在学习的是第12页,共30页语句覆盖测试用例 达到语句覆盖100%的测试用例 A=1 B=1 C=1未达到语句覆盖100%的测试用例 A=0 B=1 C=3现在学习的是第13页,共30页语句覆盖的优点检查所有语句结构简单的代码的测试效果较好容易实现自动测试代码覆盖率高 如果是程序块覆盖,则不涉及程序块中的源代码 现在学习的是第14页,共30页语句覆盖不能检查出的错误逻辑运算(&、|)错误 判定的第一个运算符“&”错写成“|”,或第二个运算符“|”错写成“&”,这时使用上述的测试用例仍然可以达到100%的语句覆盖。现在学习的是第15页,共30页语句覆盖不能检查出的错误循环语句错误l循环次数错误l跳出循环条件错误现在学习的是第16页,共30页语句覆盖不能检查出的错误循环语句例子for(i=0;i3)statement;for(i=0;i=10;i+)for(i=0;i3&x3&x7)statement;statement;现在学习的是第17页,共30页语句覆盖率的问题能达到很高的语句覆盖率语句覆盖率看似很高,却有严重缺陷 if(x!=1)statements;else statement;99句1句测试用例x=2语句覆盖率99%50%的分支没有达到现在学习的是第18页,共30页2、判定覆盖(Decision Coverage)比语句覆盖稍强的覆盖标准是判定覆盖。判定覆盖的含义是:设计足够多的测试用例,使程序中的每个判定至少都获得一次“真值”或“假值”。现在学习的是第19页,共30页除了双值判定语句外,还有多值判定语句,如case语句,因此判定覆盖更一般的含义是:使得每一个判定获得每一种可能的结果至少一次。16352789410现在学习的是第20页,共30页构造测试用例如下可实现判定覆盖标准la=T,b=T,c=T;la=F,b=F,c=F;不仅满足了判定覆盖还满足了语句覆盖,因此比语句覆盖稍强。但,仍然无法发现程序段中存在的逻辑判定错误。现在学习的是第21页,共30页3、条件覆盖(Condition Coverage)在设计程序中,一个判定语句是由多个条件组合而成的复合判定,判定(a)&(b|c)包含了三个条件:a,b和c。为了更彻底的实现逻辑覆盖,可以采用条件覆盖。条件覆盖的含义是:构造一组测试用例,使得每一判定语句中每个逻辑条件的可能值至少满足一次。现在学习的是第22页,共30页测试用例如下:la=F,b=T,c=Fla=T,b=F,c=T仔细分析可发现,该用例在满足条件覆盖的同时把判定的两个分支也覆盖了,这样是否能说达到了条件覆盖也就必然实现了判定覆盖呢?la=F,b=T,c=Tla=T,b=F,c=F上述用例满足条件覆盖的但并未满足判定覆盖,为解决这一矛盾,需要多条件和分支兼顾现在学习的是第23页,共30页4、判定/条件覆盖(CDC)含义:设计足够的测试用例,使得判定中每个条件的所有可能(真/假)至少出现一次,并且每个判定本身的判定结果(真/假)也至少出现一次。现在学习的是第24页,共30页测试用例如下:la=T,b=T,c=Tla=F,b=F,c=F但,若把逻辑运算符“&”错写成“|”或第二个运算符“|”错写成“&”,该用例仍然无法发现上述逻辑错误现在学习的是第25页,共30页5、组合条件覆盖(MCC)含义:设计足够的测试用例,使得每个判定中条件的各种可能组合都至少出现一次。显然满足组合条件覆盖的测试用例是一定满足判定覆盖、条件覆盖和判定/条件覆盖的。现在学习的是第26页,共30页序号abca&(b|c)1TTTT2TTFT3TFTT4TFFF5FTTF6FTFF7FFTF8FFFF判定语句中3个逻辑条件,每个逻辑条件有2种可能取值,共238种可能组合。现在学习的是第27页,共30页6、修正条件判定覆盖(MCDC)修正条件判定覆盖是由欧美的航空修正条件判定覆盖是由欧美的航空/航天制造厂商和使用单位航天制造厂商和使用单位联合制定的联合制定的“航空运输和装备系统软件认证标准航空运输和装备系统软件认证标准”,目前在国,目前在国外的国防、航空航天领域应用广泛。外的国防、航空航天领域应用广泛。有资料表明,波音有资料表明,波音777整体设计费用的整体设计费用的25%都花在了软件的都花在了软件的MC/DC测试上。测试上。含义:需要足够的测试用例来确定各个条件能够影响到包含的含义:需要足够的测试用例来确定各个条件能够影响到包含的判定的结果,即要求满足两个条件:判定的结果,即要求满足两个条件:l每一个程序模块的入口和出口点都要考虑至少要被调用一次,每一个程序模块的入口和出口点都要考虑至少要被调用一次,每个程序的判定到所有可能的结果值要至少转换一次;每个程序的判定到所有可能的结果值要至少转换一次;l程序的判定被分解为通过逻辑操作符程序的判定被分解为通过逻辑操作符(&,|)连接的逻辑条件,每个条连接的逻辑条件,每个条件对于判定的结果值是独立的。件对于判定的结果值是独立的。现在学习的是第28页,共30页序号abca&(b|c)abc1TTTT52TTFT643TFTT744TFFF235FTTF16FTFF27FFTF38FFFF现在学习的是第29页,共30页通过上表可以看出,布尔变量a可以通过用例1和5达到MCDC的要求(用例2和6或用例3和7也可以满足相应要求),变量b可以通过用例2和4达到MCDC的要求,变量c可以通过用例3和4达到MCDC的要求,因此使用用例集1,2,3,4,5即可满足MCDC的要求。显然,这不是唯一的用例组合。现在学习的是第30页,共30页

    注意事项

    本文(白盒测试逻辑覆盖.ppt)为本站会员(石***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开