首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于测试用例公式的Drools

用于测试用例公式的Drools
EN

Stack Overflow用户
提问于 2011-03-02 16:50:27
回答 1查看 804关注 0票数 1

我正在测试一个相当复杂的系统,它根据一些业务规则(以半正式文本形式编写)运行。

目标是创建测试用例,这些测试用例覆盖尽可能多的系统状态。我想通过以下方式自动执行此任务:

1)在Drools中形式化业务规则2)然后使用某种机制创建所有可能情况的列表(需要测试)

例如,我有以下两个规则的业务规则包(这只是一个示例,实际的业务规则要复杂得多):

代码语言:javascript
运行
复制
global List outErrorCodes;
global Boolean condition1;
global Boolean condition2;
global Boolean condition3;

rule "01"
    when
        eval( condition3 == false);     
    then 
        outErrorCodes.add("ERROR_CODE1");
end

rule "02"
    when
        eval((condition1 == true) && (condition2 == true));
    then
        outErrorCodes.add("ERROR_CODE2");
end

condition1、condition2和condition3是输入。outErrorCode是输出。

也就是说,condition1、condition2和condition3描述了某种情况,而outErrorCode描述了系统在该特定情况下的预期行为。

我想创建一种机制,根据规则中的逻辑自动创建所有可能的元组(condition1、condition2、condition3、outErrorCodes)的列表。每个元组表示系统的一种状态。

然后,这些元组将用作创建实际测试用例的基础。

是否可以使用Drools?如果是这样--如何实现?

非常感谢你提前

Dmitri

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-18 11:25:03

我们成功地使用了规则集,使用drools-server将其部署为服务,然后编写了一个脚本来执行web服务调用,并使用每个输入变量的每个可能值。在大约一个小时内,我们能够对我们的规则库进行5000+调用,并查看每个案例的输出。

缺点(我不认为你会用任何解决方案绕过这个问题)是你在测试业务逻辑。考虑到这一点,您可以生成所需的所有测试数据,但如果不运行业务逻辑(您正在测试的业务逻辑),则无法生成测试输入和预期结果。我只是说,如果你开始自动生成业务逻辑的输入,你实际上不能在不破坏测试完整性的情况下知道预期的结果。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5165235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档