BenderRBT 基于需求的测试用例设计工具
http://www.softtest.cn/h-pd-37.html
产品概况
在动态测试中,测试需要依赖测试用例驱动,测试用例分为基于需求的测试用例和基于覆盖的测试用例,也可以称为黑盒测试用例和白盒测试用例。基于黑盒测试用例的设计方法包括边界值法,等价类法,正交组合对法(Orthogonal Pairs)和因果图法(Cause Efffect)等等,其中组合对法和因果图法由于涉及到输入条件与输出结果直接的组合与逻辑关系比较复杂,不适合用人工的方式计算。
因果图法就是从需求规格说明书的描述中找出因(输入条件)和果(输出或程序状态的改变),通过因果图转换为判定表,最后为判定表中的每一列设计一个测试用例。这种方法的起源是硬件数字集成电路的测试方法(敏感路径法),能够设计出有效地测试用例,舍弃对测试没有贡献的测试用例,并且能够实现功能的全部覆盖。
组合对法就是把多个输入和多个输出两两结对,以发现由两个因子的交互关系导致的可观测的软件故障。这种方式设计的测试用例比穷举测试减少了很多,但是依然可以有效地发现软件缺陷。
BenderRBT是基于需求的测试用例设计工具,具有组合对法(Orthogonal Pairs)和因果图(Cause Effect)两种功能模块,通过对被测应用的需求实行进一步清晰化整理,进而实现:使用最小数目的测试用例实现最大的功能覆盖率。BenderRBT深入地分析应用的需求规格说明,找出其中存在的错误和逻辑冲突。软件开发团队使用BenderRBT可以在软件开发的早期尽早地优化并且验证需求。在软件生命周期中越早发现并纠正错误,所付出的开销和时间就会越少。BenderRBT把需求作为最基本的输入来设计能够覆盖所有功能的测试用例,需求或者测试用例可以以逻辑图或者文本的方式输出,软件团队的成员可以对输出的结果进行审查以确保需求是正确的,完整的,可理解的和可测的。
工具对软件测试活动的支持可以分为下面这些活动:
-
定义测试完成的准则
-
设计测试用例
-
建立测试用例
-
执行测试
-
确认测试结果
-
确认测试覆盖率
-
管理测试库
BenderRBT的主要任务放在定义测试完成准则,设计功能测试用例满足必须的准则,确认测试覆盖率,并且协助确认测试结果和测试库管理上面。
测试活动 |
BenderRBT |
其他测试工具 |
定义测试完成准则 |
|
|
设计测试用例 |
|
|
建立测试 |
自动测试工具 |
|
执行测试 |
自动测试工具 |
|
确认测试结果 |
自动测试工具 |
|
确认测试覆盖率 |
|
|
管理测试库 |
测试管理工具 |
功能特性
BenderRBT包含了两个完全独立的测试用例设计引擎:
1. RBT:因果图测试用例设计模块
2. Quick Design:基于正交组合对测试用例设计模块
RBT的主要功能:
优化需求
系统的需求必须是明确的没有歧义的才能够使得开发的系统是正确的,并且是可测试的。通过使用RBT,开发团队必须对需求进行认真分析和审查,这样可以发现需求中存在的错误或者不一致的地方;通过因果图可以对需求中的输入和输出之间的关系和约束进行全面的了解;RBT提供的多种形式的报告可以让开发单位和用户单位对所开发的系统对需求统一认识,尽早的发现需求中存在的问题。
因果图设计
因果图是成熟的技术,在工程中常用来完成需求验证和测试用例设计。因果图法是将文本的需求规格说明转化为图形的一种方法,即将需求规格说明中的功能之间的关系通过因果图清晰的表示出来,包括:每个输入和其他输入的关系,和输出之间的关系,以及条件制约,节点的可观测性。软件工程师在这个过程中可以充分的理解需求并发现需求中存在的错误,不一致,不够详细或者存在模糊的描述等等问题,这些问题通常只有到集成测试时才能发现。
图一
RBTg是因果图编辑工具,提供了一个简单快捷的因果图编辑环境,直接从绘图工具里面选择现成的节点,逻辑关系符号,制约条件加上连线就构成一个因果图。RBT所生成的测试用例或者格式化的需求报告可以用来作为开发单位和用户之间评审交流的基本资料,RBT提供的测试脚本包含了测试过程中每一步的输入和输出(见图二)
图二
最少的测试用例实现最大的功能覆盖
如果测试工程师完全按照自己的经验或者感觉来设计测试用例,很难保证100%覆盖系统的所有功能,研究报告表明一般来讲只能覆盖30-40%。BenderRBT采用的是严格的数学逻辑算法推导出最小数目的测试用例,并实现最大的功能覆盖率,实际上如果一个系统有37个输入,如果穷举测试的话需要1300亿测试用例,BenderRBT在1秒的时间内算出只需要22个测试用例就可以满足文档中描述的所有的功能需求覆盖。BenderRBT也提供功能和测试用例的对应关系表(图三)。
图三
Quick Design的主要功能:
基于正交组合对法设计测试用例
Quick Design提供了变量输入和变量状态的输入功能,用户需要按照需求规格说明找出系统的输入和输入的各个状态,比如对于GUI测试,每个输入的下拉框选项对应的就是输入的各个状态,当GUI比较复杂,选项、菜单、按钮很多的时候,人工组合测试就很难保证完全,在QuickDesign中输入变量和状态以及约束条件(见图四)
图四
Quick Design基于正交组合对法进行严格的数学计算,得出组合对报告(图五)和测试脚本(图六)
图五
图六
可以基于两种算法生成测试用例:正交对和优化对。正交对测试每一对组合的次数等于测试用例的数目,优化对每个组合最少需要一次测试。我们建议配置测试使用正交对法,功能测试使用优化对法。
集成性
Bender-RBT可以集成测试管理工具TestDirector,生成的测试用例可以导出到TestDirector中,保证测试团队完成必要的测试用例。BenderRBT集成很多录制回放工具,报告IBM Rational Robot和HP Segue的SilkTest等;将测试用例导出到这些测试工具后,测试团队可以使用自动化测试工具进行测试。
突出优势
高度优化的算法得出测试用例
同时支持因果图和组合对法设计测试用例
可以支持逻辑中敏感路径分析进而设计出测试用例使得用户得到最优化的测试用例
所生成的测试用例包括输入和输出,可用在开发单位和用户单位评审
所产生的测试用例数量最小,达到的功能覆盖最大,同时能够使得代码覆盖率较高
自然语言测试用例独立于目标平台
由于需求是自然语言的,所生成的测试用例也是用自然语言描述的
测试用例不依赖于任何目标系统,是平台独立的
支持需求中存在的约束情况
RBT支持现实系统的各种约束,比如互斥,包含,屏蔽等
通过加入现实情况下的约束条件减少无效测试用例
通过约束情况也可以发现需求逻辑中存在的不一致的错误
覆盖率分析
提供功能覆盖率分析,提供强覆盖和弱覆盖
可以支持添加已存在的测试用例集参与覆盖率分析
生成功能规格说明
通过因果图的输入,RBT会自动生成整理过的需求规格说明书,条例更清晰可以作为评审的依据
可以指定生成美军标498标准格式的需求规格说明
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!