规则引擎和自动化测试难题

Dan*_*ski 2 automated-tests unit-testing rule-engine

规则引擎通常在商业人员可以直接修改应用程序的一些非常动态的部分的前提下销售,而无需开发人员的任何参与或编程.

在我看来,投入生产任何未被自动化测试覆盖的代码都会带来严重的风险.我知道许多规则引擎实际上是一个规则管理环境,包括版本控制,环境之间的升级等等但是他们为BA编写测试提供了哪些支持?我已经看到一些文档似乎将JUnit等框架集成到引擎中,这肯定不是非程序员会做的类型或编程.

BA可以通过业务引擎轻松更改规则,但是如果没有程序员的帮助,他可以轻松编写可以覆盖它的测试吗?在实践中如何解决规则测试覆盖问题?

Ara*_*ram 5

"使业务人员可以直接修改应用程序的一些非常动态的部分,而无需开发人员的任何参与或编程."

我们已经使用商业规则引擎超过6年了.我们构建模板应用程序,根据客户(如银行等)的要求进行定制.定制是以决策规则的形式,用业务词汇表编写.以下是我6年来所做的一些观察

  1. 我从未见过任何客户在生产过程中定制的任何规则.在推向生产之前,他们都在UAT环境中进行了适当的测试.整个应用程序不会重新部署,只会推送业务规则.
  2. 规则由BA编写,但由于这些规则引擎使用的执​​行模型,大多数时候他们仍然需要通过开发人员进行性能调整.
  3. 我不知道很多开源规则引擎,但对于我们使用的引擎,我们编写了自定义eclipse插件,以便BA可以以JUnits的形式生成测试用例
  4. 我认为大多数规则引擎都会提供某种API,告诉我们以针对给定请求的审计报告的形式触发了哪些规则.但我们面临的挑战是找到可以触发特定规则的测试数据.我们将其称为规则相关数据.