5

我目前正在从事一个大型 BPM 项目,该项目使用名为 Process 360 的 Global 360 BPM 工具集。该产品与许多其他 BPM 解决方案一样工作,因为您设计了多个“流程图”,这些“流程图”定义了您尝试建模的特定业务流程的流程,每个流程图由连接在一起的多个任务节点组成,这些节点执行特定的功能(调用网络服务等)。

目前,我们在发布的 QA 阶段遇到了一些非常严重的问题,因为工具集没有提供任何方法来自动测试流程图路由。因此,当开发一个庞大而复杂的流程并将其移交给我们的测试团队时,通常会出现大量问题。虽然显然你会期望质量检查会出现一些问题,但我不禁感到,如果我们有某种可以用来构建的自动化测试框架,那么在开发过程中可能会发现很多错误等一组单元测试,证明了流程图中的各种路线。

目前,唯一真正发生的开发测试更类似于开发人员执行的功能测试,这些测试记录为每个测试用例的一组手动步骤。这种方法的问题是开发人员手动运行非常耗时,因此也相对容易出错。还; 因为我们的日程安排通常很紧,所以测试的执行频率通常不足以及早发现问题。

正如我之前提到的;当前的工具集没有提供执行此类自动化测试的方法。这实际上让我思考为什么?作为整个 BPM 场景的新手,我的假设是这只是产品中缺少的一个功能,但我也想知道 BPM 世界传统上是否不进行“单元测试”?也许它只是不适合这种工作?

我很想知道其他人是否曾经遇到过这类问题,以及可以采取哪些措施来改进这些问题。

4

3 回答 3

3

我已经看到了一些关于此的内容,尽管与 Global 360 无关:使用 bpelunit 进行测试

我开发了一个工作流工具,并且越来越需要向最终用户开放用于测试引擎的测试工具。

于 2010-01-24T01:21:58.510 回答
2

我已经用另一个商业 BPM K2.net 2003 完成了“单元”测试。我真的称它为集成测试,因为它需要一个测试服务器,而且速度相对较慢。但是,它是自动化的。

Professional K2 blackpearl一书中对此进行了很好的讨论(它也适用于 K2.net 2003)。

为了将它应用到您的平台,工具集必须具有允许启动流程实例、获取工作项、完成工作项等的 API。您可以使用任何受支持的语言(我使用 C#)和测试框架(我使用了 NUnit)。如果 API 支持同步调用,这更容易做到。对于每个测试:

  1. 启动被测进程
  2. 将工作项推进到决策点
  3. 适当设置流程实例数据
  4. 完成工作项
  5. 断言工作项现在处于预期活动状态
  6. 删除或完成流程实例

基本测试类或辅助方法可以使这更容易。你甚至可以编写一个DSL来测试地图。

本质上,您想要流程/地图的完整“测试覆盖率” - 测试每个决策点并确保采用正确的分支。

于 2010-02-20T23:55:28.317 回答
1

BPM 有两个方面相关但不相同。

工具和技术供应商提倡的 BPM 完全是关于特性的。

还有企业架构师所倡导的 BPM 就是建立卓越中心。

前者是公司购买一些软件的地方。

后者是公司对其 IT 员工的行为进行系统性和内在改变的地方。

前者应该为后者服务,但不一定如此。获得前者是必要的,但不足以实现后者。

我不知道 Global 360 对所谓的测试驱动开发的支持有多好,但 JBoss jBPM 确实提供了一些工具支持来轻松​​编写 JUnit 测试。

但是,该工具不能也不会强迫开发人员编写它们或接受 TDD 原则。

于 2010-02-21T00:08:06.823 回答