白盒测试用例设计方法.docVIP

  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文档。上传文档
查看更多

白盒测试用例设计方法

白盒测试概述

由于逻辑错误和不正确假设与一条程序路径被运行的可能性成反比。由于我们经常相信某逻辑路径不可能被执行,而事实上,它可能在正常的情况下被执行。由于代码中的笔误是随机且无法杜绝的,因此我们要进行白盒测试。

白盒测试又称结构测试,透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。

白盒的测试用例需要做到

保证一个模块中的所有独立路径至少被使用一次;

对所有逻辑值均需测试true和false;

在上下边界及可操作范围内运行所有循环;

检查内部数据结构以确保其有效性。

白盒测试的目的

通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试;在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致。

白盒测试的特点

依据软件设计说明书进行测试、对程序内部细节的严密检验、针对特定条件设计测试用例、对软件的逻辑路径进行覆盖测试。

白盒测试的实施步骤

测试计划阶段:根据需求说明书,制定测试进度。

测试设计阶段:依据程序设计说明书,按照一定规范化的方法进行软件结构划分和设计测试用例。

测试执行阶段:输入测试用例,得到测试结果。

测试总结阶段:对比测试的结果和代码的预期结果,分析错误原因,找到并解决错误。

白盒测试的方法

总体上分为静态方法和动态方法两大类。

静态分析:是一种不通过执行程序而进行测试的技术。静态分析的关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义。

动态分析:主要特点是当软件系统在模拟的或真实的环境中执行之前、之中和之后,对软件系统行为的分析。动态分析包含了程序在受控的环境下使用特定的期望结果进行正式的运行。它显示了一个系统在检查状态下是正确还是不正确。在动态分析技术中,最重要的技术是路径和分支测试。下面要介绍的六种覆盖测试方法属于动态分析方法。

白盒测试的优缺点

优点:迫使测试人员去仔细思考软件的实现;可以检测代码中的每条分支和路径;揭示隐藏在代码中的错误;对代码的测试比较彻底;最优化

缺点:费用昂贵;无法检测代码中遗漏的路径和数据敏感性错误;不验证规格的正确性。

白盒测试基本技术

控制流图

定义

程序流程图是软件开发过程中进行详细设计时,表示模块内部逻辑的一个常用的、也非常有效的图示法。程序流程图详细地反映了程序内部控制流的处理和转移过程,它一般是进行模块编码的参考依据。在程序流程图中,通常拥有很多种图示元素,例如,“矩形框”表示一个计算处理过程,而“菱形框”表示一个判断条件等。通常测试人员为某个程序模块做白盒测试过程中,在做与路径相关的各种分析的时候,这些非常细节的信息往往是不太重要。因此,为了更清晰突出地显示出程序的控制结构,反映控制流的转移过程,一种简化了的程序流程图便出现了,就是程序的控制流图。在控制流图中一般只有两种简单的图示符号:

每个分支至少执行一次。每个判断的取真、取假至少执行一次。

用例设计:

?

?X

?Y

?路径

?1

?90

?90

?OAE

?2

?50

?50

?OBDE

?3

?90

?70

?OBCE

优点:判定覆盖比语句覆盖要多几乎一倍的测试路径,当然也就具有比语句覆盖更强的测试能力。同样判定覆盖也具有和语句覆盖一样的简单性,无须细分每个判定就可以得到测试用例。

缺点:往往大部分的判定语句是由多个逻辑条件组合而成(如,判定语句中包含AND、OR、CASE),若仅仅判断其整个最终结果,而忽略每个条件的取值情况,必然会遗漏部分测试路径。

条件覆盖

主要特点:条件覆盖要求设计足够多的测试用例,使得判定中的每个条件获得各种可能的结果,即每个条件至少有一次为真值,有一次为假值。

用例设计:

?

?X

?Y

?路径

?1

?90

?70

OBC

?2

40

?

OBD

优点:显然条件覆盖比判定覆盖,增加了对符合判定情况的测试,增加了测试路径。

缺点:要达到条件覆盖,需要足够多的测试用例,但条件覆盖并不能保证判定覆盖。条件覆盖只能保证每个条件至少有一次为真,而不考虑所有的判定结果。

判定/条件覆盖

主要特点:设计足够多的测试用例,使得判定中每个条件的所有可能结果至少出现一次,每个判定本身所有可能结果也至少出现一次。

用例设计:

?

?X

?Y

?路径

?1

?90

?90

?OAE

?2

?50

?50

?OBDE

?3

?90

?70

?OBCE

?4

?70

?90

?OBCE

优点:判定/条件覆盖满足判定覆盖准则和条件覆盖准则,弥补了二者的不足。

缺点:判定/条件覆盖准则的缺点是未考虑条件的组合情况。

组合覆盖

主要特点:要求设计足够多的测试用例,使得每个判定中条件结果的所有可能组合至少出现一次。

用例设计

文档评论(0)

182****6616 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档