黑盒测试用例的设计方法包括边界值法,等价类法,正交组合对法(OrthogonalPairs)和因果图法(CauseEfffect,类似于决策树软件测试法)等等,其中组合对法和因果图法由于涉及到输入条件与输出结果直接的组合与逻辑关系比较复杂,不适合用人工的方式计算。
BenderRBT是基于需求的功能测试用例设计工具,具有组合对法(OrthogonalPairs)和因果图(CauseEffect)两种功能模块,通过对被测应用的需求进一步清晰化整理,进而设计出最小数目的测试用例实现最大的功能覆盖率。
BenderRBT深入地分析应用的需求规格说明找出其中存在的错误和逻辑冲突,软件开发团队使用BenderRBT可以在软件开发的早期尽早地优化并且验证需求。在软件生命周期中越早发现并纠正错误,所付出的开销和时间就会越少。
工具对软件测试活动的支持可以分为下面这些阶段:
· 定义软件测试完成的准则;
· 设计测试用例;
· 建立测试用例;
· 执行软件测试;
· 确认软件测试结果;
· 确认软件测试覆盖率;
· 管理软件测试库。
图1BenderRBT
BenderRBT包含了两个完全独立的测试用例设计引擎:
1.RBT:因果图测试用例设计模块;
2.QuickDesign:基于正交组合对测试用例设计模块。
11.1.1 RBT
11.1.1.1 优化需求
系统的需求必须是明确的没有歧义的才能够使得开发的系统是正确的,并且是可软件测试的。
通过因果图可以对需求中的输入和输出之间的关系和约束进行全面的了解,RBT提供的多种形式的报告可以让开发单位和用户单位对所开发系统需求的统一认识,尽早发现需求中存在的问题。
11.1.1.2 因果图设计
因果图是成熟的技术,在工程中常用来需求验证和测试用例设计,因果图法实际上是把文本的需求规格说明转化为图形的一种方法,需求规格说明中的功能之间的关系通过因果图清晰的表示出来,每个输入和其他输入的关系,和输出直接的关系,还包括条件制约,节点的可观测性在这个阶段都需要指定,软件工程师在这个过程中可以充分的理解需求发现需求中存在的错误、不一致、不够详细或者模糊的描述等问题,这些问题通常只有到集成测试时才能发现。
RBTg是因果图编辑工具,提供了一个简单快捷的因果图编辑环境,直接从绘图工具里面选择现成的节点,逻辑关系符号、制约条件加上连线就构成一个因果图。RBT所生成的测试用例或者格式化的需求报告可以用来作为开发单位和用户之间评审交流的基本资料,RBT提供的软件测试脚本包含了软件测试过程中每一步的输入和输出。
图2利用RBTg工具进行因果图设计
11.1.1.3 最少的测试用例实现最大的功能覆盖
如果软件测试工程师完全按照自己的经验或者感觉来设计测试用例,很难保证100%覆盖系统的所有的功能,研究报告表明一般来讲只能覆盖30-40%,BenderRBT采用的是严格的数学逻辑算法推导出最小数目的测试用例,并实现最大的功能覆盖率,实际上如果一个系统有37个输入,如果穷举软件测试的话需要1300亿测试用例,BenderRBT在1秒的时间内算出只需要22个测试用例就可以满足文档中描述的所有的功能需求覆盖。BenderRBT也提供功能和测试用例的对应关系表。
图3最少的测试用例实现最大的功能覆盖
11.1.2 QuickDesign的主要功能
11.1.2.1 基于正交组合对法设计测试用例
QuickDesign提供了变量输入和变量状态的输入功能,用户需要按照需求规格说明找出系统的输入,和输入的各个状态,比如对于GUI软件测试,每个输入的下拉框选项对应的就是输入的各个状态,当GUI比较复杂,选项、菜单、按钮很多的时候,人工组合软件测试就很难保证完全,在QuickDesign中输入变量和状态以及约束条件。
图4基于正交组合对法设计测试用例
QuickDesign基于正交组合对法进行严格的数学计算,得出组合对报告和软件测试脚本。
图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软件测试网原创