Unit testing 单元测试适合BPM开发吗?

Unit testing 单元测试适合BPM开发吗?,unit-testing,business-process-management,Unit Testing,Business Process Management,我目前正在从事一个大型BPM项目,该项目使用名为Process 360的全球360 BPM工具集。只是提供一些背景;该产品的工作原理与许多其他BPM解决方案类似,因为您设计了多个“流程图”,用于定义您试图建模的特定业务流程的流程,每个流程图由多个连接在一起的任务节点组成,这些节点执行特定的功能(调用web服务等) 目前,我们在版本的QA阶段遇到了一些非常严重的问题,因为工具集没有提供任何方法来自动测试流程图路由。因此,当一个庞大而复杂的过程被开发并移交给我们的测试团队时,经常会出现大量的问题。虽

我目前正在从事一个大型BPM项目,该项目使用名为Process 360的全球360 BPM工具集。只是提供一些背景;该产品的工作原理与许多其他BPM解决方案类似,因为您设计了多个“流程图”,用于定义您试图建模的特定业务流程的流程,每个流程图由多个连接在一起的任务节点组成,这些节点执行特定的功能(调用web服务等)

目前,我们在版本的QA阶段遇到了一些非常严重的问题,因为工具集没有提供任何方法来自动测试流程图路由。因此,当一个庞大而复杂的过程被开发并移交给我们的测试团队时,经常会出现大量的问题。虽然很明显,您会期望QA会出现一些问题,但我还是忍不住觉得,如果我们有某种自动化测试框架,我们可以使用它来构建一组单元测试,以证明流程图中的各种路线,那么在开发过程中可能会发现很多bug等

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

如我刚才所说,;当前的工具集没有提供执行这种自动化测试的方法。这让我想为什么?作为整个BPM领域的新手,我的假设是,这只是产品中缺少的一个功能,但我还想知道“单元测试”是否在BPM世界中传统上不进行?也许它不适合这种工作


我很想知道是否有其他人遇到过此类问题,以及可以做些什么(如果有的话)来改善情况。

我看到了一些关于这方面的情况,尽管与全球360无关:

我开发了一个工作流工具,向最终用户开放用于测试引擎的测试工具的需求不断增加

我已经用K2.NET2003(另一种商业BPM)进行了“单元”测试。我真的称之为集成测试,因为它需要一个测试服务器,而且速度相对较慢。然而,它是自动化的

书中对此进行了很好的讨论(它也适用于K2.NET2003)

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

  • 启动正在测试的进程
  • 将工作项推进到决策点
  • 适当地设置流程实例数据
  • 完成工作项
  • 断言工作项现在处于预期活动状态
  • 删除或完成流程实例
  • 基本测试类或助手方法可以使这更容易。你甚至可以编写一个测试地图的程序


    基本上,您需要流程/映射的完整“测试覆盖”——测试每个决策点,并确保采取了正确的分支。

    BPM有两个方面是相关的,但并不完全相同

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

    还有企业架构师提倡的BPM,其全部内容是建立卓越中心

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

    后者是指公司对其IT员工的行为进行系统性和固有的改变

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

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

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