ch8白盒测试技术.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Made By TuYaofeng Part Chapter8 白盒测试技术 8.1白盒测试概述 白盒测试-定义 软件的白盒测试是对软件的过程性细节做细致的检查。这一方法是把测试对象看作一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。 因此,白盒测试又也称为结构测试或逻辑驱动测试。 白盒测试-内容 白盒测试方法,主要对程序模块进行如下的检查: 对程序模块的所有独立的执行路径至少测试一次; 对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测试一次; 在循环的边界和允许界限内执行循环体; 测试内部数据结构的有效性,等待。 白盒测试-特征 已知产品内部工作过程,通过测试来检测产品内部动作是否按照编码规格说明书的规定正常进行,而不管它的功能。 白盒法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据 。 白盒测试-特征 白盒法是穷举路径测试。贯穿程序的独立路径数可能是天文数字。因此穷举测试是不可行的。 即使是每条路径都测试了,程序中仍然可能有错误。 原因如下。 白盒测试也是不完善的 原因: 第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。 第二,穷举路径测试不可能查出程序中因遗漏路径而出错。 第三,穷举路径测试可能发现不了一些与数据相关的错误。 8.2白盒测试-基于控制流的方法 逻辑覆盖 基本路径覆盖 循环覆盖 8.2.1基于控制流的方法-逻辑覆盖 逻辑覆盖: 语句覆盖 分支覆盖 条件覆盖 条件组合覆盖 全路径覆盖 逻辑覆盖-以图1所示程序段为例 逻辑覆盖-举例 图1所示程序段有4条不同路径。 L1(a→c→e): {(A=2) ∧ (B=0)}或 {(A1) ∧ (B=0) ∧ (X/A1)} L2(a→b→d): {(A≤ 1) ∧ (X≤1)}或 {(B≠ 0) ∧ (A≠ 2) ∧ (X≤1)} L3(a→b→e):{(A≤ 1) ∧ (X1)}或 {(B≠ 0) ∧ (A=2)}或 {(B≠ 0) ∧ (X1)} L4(a→c→d):{(A1) ∧ (B=0) ∧ (A≠ 2) ∧(X/A≤1)} 语句覆盖 语句覆盖就是设计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次。 又称为C0覆盖。根据粒度不同,也有叫行覆盖、段覆盖、基本块覆盖(basic block coverage)的。 测试用例举例-语句覆盖 我们统一测试用例的格式为: {输入(A,B,X),输出(A,B,X)}或 {输入(A,B,X)} 如上例,设计满足语句覆盖的测试用例是: {(2,0,4),(2,0,3)} 语句覆盖的盲点 对一些控制结构反映迟钝(发现不了其中的某些错误); 可能发现不了判断中的逻辑运算中出现的错误。 如:第一个判断中的逻辑运算符and错写为or,利用上面的测试用例,依然可达到语句覆盖。 语句覆盖 语句覆盖是最弱的逻辑覆盖准则。  在很多公司是最起码的测试要求 。 判定覆盖 判定覆盖就是设计若干个测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少执行一次。 又称为分支覆盖,C1覆盖,决策覆盖, All-edges coverage,decision-decision-path(DDP)testing。 判定覆盖特征 程序中的每一个分支至少通过一次 。 判定覆盖可扩充到多出口判断(CASE语句)的情形。 整个BOOL型的表达式被认为是取值一个TRUE和一个FALSE,不考虑其内部是否包含了逻辑AND或OR。 判定覆盖的测试用例 上例中,如果选择路径L1和L2,就可得到满足判断覆盖要求的测试用例: L1:{(2,0,4),(2,0,3)} L2:{(1,1,1),(1,1,1)} 如果选择路径L3和L4,还可得到另一组满足判定覆盖条件的测试用例: L3:{(2,1,1),(2,1,2)} L4: {(3,0,3),(3,1,1)} 可见,测试用例的取法不唯一。 判定覆盖的盲点 忽略了BOOL型表达式内部的BOOL取值。 例中,如果第二个判定中的条件X1错写成X1,那么利用上面两组测试用例,仍能得到同样的结果。 这表明,判定覆盖还不能保证一定能查出在判断条件中存在的错误。 条件覆盖 条件覆盖就是设计若干个测试用例,运行被测程序,使得程序中每个判断的每个条件的可能取值

文档评论(0)

wxc6688 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档