• 0
  • 0
分享
  • 测试用例设计工具—BenderRBT
  • 饭团🍙 2020-08-28 10:09:10 字数 2544 阅读 3901 收藏 0

  黑盒测试用例的设计方法包括边界值法,等价类法,正交组合对法(OrthogonalPairs)和因果图法(CauseEfffect,类似于决策树软件测试法)等等,其中组合对法和因果图法由于涉及到输入条件与输出结果直接的组合与逻辑关系比较复杂,不适合用人工的方式计算。

  BenderRBT是基于需求的功能测试用例设计工具,具有组合对法(OrthogonalPairs)和因果图(CauseEffect)两种功能模块,通过对被测应用的需求进一步清晰化整理,进而设计出最小数目的测试用例实现最大的功能覆盖率。

  BenderRBT深入地分析应用的需求规格说明找出其中存在的错误和逻辑冲突,软件开发团队使用BenderRBT可以在软件开发的早期尽早地优化并且验证需求。在软件生命周期中越早发现并纠正错误,所付出的开销和时间就会越少。

  工具对软件测试活动的支持可以分为下面这些阶段:

  · 定义软件测试完成的准则;

  · 设计测试用例;

  · 建立测试用例;

  · 执行软件测试;

  · 确认软件测试结果;

  · 确认软件测试覆盖率;

  · 管理软件测试库。

图1.jpg

图1BenderRBT

  BenderRBT包含了两个完全独立的测试用例设计引擎:

  1.RBT:因果图测试用例设计模块;

  2.QuickDesign:基于正交组合对测试用例设计模块。

  11.1.1 RBT

  11.1.1.1 优化需求

  系统的需求必须是明确的没有歧义的才能够使得开发的系统是正确的,并且是可软件测试的。

  通过因果图可以对需求中的输入和输出之间的关系和约束进行全面的了解,RBT提供的多种形式的报告可以让开发单位和用户单位对所开发系统需求的统一认识,尽早发现需求中存在的问题。

  11.1.1.2 因果图设计

  因果图是成熟的技术,在工程中常用来需求验证和测试用例设计,因果图法实际上是把文本的需求规格说明转化为图形的一种方法,需求规格说明中的功能之间的关系通过因果图清晰的表示出来,每个输入和其他输入的关系,和输出直接的关系,还包括条件制约,节点的可观测性在这个阶段都需要指定,软件工程师在这个过程中可以充分的理解需求发现需求中存在的错误、不一致、不够详细或者模糊的描述等问题,这些问题通常只有到集成测试时才能发现。

  RBTg是因果图编辑工具,提供了一个简单快捷的因果图编辑环境,直接从绘图工具里面选择现成的节点,逻辑关系符号、制约条件加上连线就构成一个因果图。RBT所生成的测试用例或者格式化的需求报告可以用来作为开发单位和用户之间评审交流的基本资料,RBT提供的软件测试脚本包含了软件测试过程中每一步的输入和输出。

  图2.jpg

图2利用RBTg工具进行因果图设计

  11.1.1.3 最少的测试用例实现最大的功能覆盖

  如果软件测试工程师完全按照自己的经验或者感觉来设计测试用例,很难保证100%覆盖系统的所有的功能,研究报告表明一般来讲只能覆盖30-40%,BenderRBT采用的是严格的数学逻辑算法推导出最小数目的测试用例,并实现最大的功能覆盖率,实际上如果一个系统有37个输入,如果穷举软件测试的话需要1300亿测试用例,BenderRBT在1秒的时间内算出只需要22个测试用例就可以满足文档中描述的所有的功能需求覆盖。BenderRBT也提供功能和测试用例的对应关系表。

  图3.jpg

图3最少的测试用例实现最大的功能覆盖

  11.1.2 QuickDesign的主要功能

  11.1.2.1 基于正交组合对法设计测试用例

  QuickDesign提供了变量输入和变量状态的输入功能,用户需要按照需求规格说明找出系统的输入,和输入的各个状态,比如对于GUI软件测试,每个输入的下拉框选项对应的就是输入的各个状态,当GUI比较复杂,选项、菜单、按钮很多的时候,人工组合软件测试就很难保证完全,在QuickDesign中输入变量和状态以及约束条件。

  图4.jpg

图4基于正交组合对法设计测试用例

  QuickDesign基于正交组合对法进行严格的数学计算,得出组合对报告和软件测试脚本。

图5.jpg

图5得出组合对报告和软件测试脚本

  可以基于两种算法生成测试用例:正交对和优化对,正交对测试每一对组合的次数等于测试用例的数目,优化对每个组合最少需要一次软件测试,我们建议配置测试使用正交对法,功能测试使用优化对法。

  11.1.2.2集成性

  Bender-RBT可以集成测试管理工具TestDirector,生成的测试用例可以导出到TestDirector保证软件测试团队完成必要的测试用例,BenderRBT集成了很多录制回放工具,比如IBMRationalRobot和HPSegue的SilkTest等,当测试用例用到这些测试工具的时候,测试团队就可以使用这些自动化测试工具进行测试工作了。

  11.1.2.3主要特点

  高度优化的算法得出测试用例:

  ·同时支持因果图和组合对法设计测试用例;

  ·可以支持逻辑中敏感路径分析进而设计出测试用例使得用户得到最优化的测试用例;

  ·所生成的测试用例包括输入和输出,可以用来作为开发单位和用户单位评审的依据;

  ·所产生的测试用例数量最小,达到的功能覆盖最大,同时能够使得代码覆盖率较高;

  自然语言测试用例独立于目标平台:

  ·由于需求是自然语言的,所生成的测试用例也是用自然语言描述的;

  ·测试用例不依赖与任何目标系统,是平台独立的。

  支持需求中存在的约束情况:

  ·RBT支持现实世界的系统各种约束,比如互斥,包含,屏蔽等;

  ·通过加入现实情况下的约束条件减少无效测试用例;

  ·通过约束情况也可以发现需求逻辑中存在的不一致的错误。

  覆盖率分析:

  ·提供功能覆盖率分析,提供强覆盖和弱覆盖;

  ·可以支持把已经存在的测试用例集加入进来参与覆盖率分析。

  生成功能规格说明:

  ·通过因果图的输入,RBT会自动生成整理过的需求规格说明书,条理更清晰可以作为评审的依据;

  ·可以生成美军标498标准格式的需求规格说明。

  11.1.2.4 平台支持

  Pentium;

  128M内存;

  程序安装需要100M硬盘空间。


作者:顾翔   

来源:51Testing软件测试网原创

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 一、XSS的基本概念XSS又叫CSS (Cross Site Script) ,为了和css(层叠样式表)区分,我们通常称它为(xss)跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意的特殊目的。xss是一种发生在web前端的漏洞,所以其危害的对象也主要是前端用户.在OWASP Web Application Top 10排行榜中长期霸榜,从未掉出过前三名。XSS这类安全问题发生的本质原因在于,浏览器错误的将攻击者提供的用户输入数据当做JavaScript脚本给执行了。XSS有几种不同的分类办法,例如...
            0 0 1799
            分享
          • 报BUG的礼仪前段时间网络流传很广泛的测试人员报BUG的礼仪:中国国遵守的是礼尚往来,测试人员遵守礼仪,也希望开发同学以礼相待。在和测试人员沟通BUG时,下面的雷千万别踩。沟通BUG的雷区1)你会不会提BUG。和测试人员打交道,千万别说这句话。这句话的杀伤力相当于在东北说:你瞅啥?回答肯定是:提了咋地!我工作这么多年了,怎么不会提BUG?(内心独白)老子混了这么多年了,提BUG还用你教? 之前有个同事Y被程序员Z的指责不会提BUG,Y一气之下,一个上午提了Z十几个BUG,把Z气得找项目经理说别让Y再测了。2)就是这么设计的。如果这样答复测试人员,你最好有实在的证据说明你的理由,否则会...
            0 3 4722
            分享
          • 一、http协议的定义HTTP是超文本传输协议的缩写。是互联网上使用最为广泛的一种网络协议,适用于www服务器传输超文本到本地浏览器传输协议。它可以使浏览器的传输更加高效,使网络传输减少。他还能使计算机能快速准确的传输超文本文档。HTTP是客户端到服务端请求与应答的标准,http协议规定了超文本传输所要遵守的规则。客户端是终端用户(浏览器),服务端是网站,当服务端发起一个指定端口的HTTP请求。二、http协议特性无状态:1、HTTP协议自身不对请求和响应之间的通信状态进行保存。(即多个请求之间服务器并不知道是否是同一个客户端的请求。)无状态存在的问题:1、由于请求之间无状态保持,服务器就无法...
            0 0 1368
            分享
          • 一、Selenium简介Selenium是一个用于Web应用程序自动化测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7、8、9、10、11),Mozilla Firefox,Safari,Google Chrome,Opera等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序是否能够很好的工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成.Net、Java、Perl等不同语言的测试脚本。二、使用Selenium的准备工作因为Selenium是直接运行在浏览器里的,...
            13 13 2097
            分享
          • 1 参数化释义什么是参数化?从字面上去理解的话,就是事先准备好数据(广义上来说,可以是具体的数据值,也可以是数据生成规则),而非在脚本中写死,脚本执行时从准备好的数据中取值。参数化:是自动化测试脚本的一种常用技巧,可将脚本中的某些输入使用参数来代替,如登录时利用GET/POST请求方式传递参数的场景,在脚本运行时指定参数的取值范围和规则。脚本在运行时,根据需要选取不同的参数值作为输入,该方式称为数据驱动测试(Data Driven Test),而参数的取值范围被称为数据池(Data Pool)。JMeter提供了多种参数化方式,下面就其中常用的4种展开阐述。方式适用场景CSV Data Set...
            0 0 2375
            分享
      • 51testing软件测试圈微信