①作者简介: 石淼 (1979-) ,女,汉族,江苏人, 工程师, 研究方向: 软件开发与测试。步骤名称详细描述1流程名称定义定义业务流程的名称。2流程活动节点定义定义业务流程的中的活动节点。 系统自动生成开始、 结束节点。3活动前依赖规则定义活动的前依赖规则的检查规则。 在任务切换之前, 只有满足检查条件的任务才可以进行状态的切换。 前依赖规则包含顺序、 与汇聚、 或汇聚和投票汇聚四种规则, 前依赖活动状态为 “同意” 。4活动后转发规则定义了当前活动与其后继活动之间的关系的后转发规则, 结束标志为审批通过或审批不通过。5活动授权定义按照用户组或角色对流程节点进行授权。6生成审批流程图根据活动节点和活动规则定义自动生成审批流程图。表1 流程定义过程图1 审批流程定义 科技创新导报2014 NO.10Science and Technology Innovation Herald研 究 报 告科技创新导报2014 NO.10Science and Technology Innovation Herald研 究 报 告科技创新导报 Science and Technology Innovation Herald81 工作流软件特点工作流管理联盟(WFMC)对工作流的定义: 工作流是一类在计算机技术的支持下能够完全或者部分实现自动执行的经营过程, 它根据一系列过程规则, 使信息、 任务能够在不同的参与者之间传递与执行。工作流测试基本目标是检查工作流能否使信息和任务能够地按照定义的过程正确流转, 确保工作流具备预期的目标。工作流软件有别于普通的软件, 有其自身的特点。 我们要测试工作流软件, 就要认识到它的特殊性, 从而能够提出高效的工作流测试方法。 通过分析工作流的特点, 总结如下:(1) 工作流指的是一系列相互衔接、 自动进行的业务活动或任务。 一个工作流一般包括: 活动(或任务)、 它们的关系以及它们的启动和终止条件。工作流技术强调工作XX申请选择审批人(指定审批人/先到先得)提交部门领导审批选择审批领导(1个/多个)是否委托办理(Y/N)委托人办理主办人(Y/N)指定人办理先得人办理提交多个领导审批提交1个领导指定审批人先到先得NY提交公司领导审批部门审批(Y/N)N所有人审批(Y/N)强制提交(Y/N)Y部门审批节点审批流程公司审批节点审批流程(同 “部门审批节点审批流程 ” )审批结束等待审批人审批主办人填写审批意见经办人填写审批意见Y所有人审批(Y/N)YNYNNNYY图2 业务流程图 科技创新导报2014 NO.10Science and Technology Innovation Herald研 究 报 告科技创新导报2014 NO.10Science and Technology Innovation Herald研 究 报 告科技创新导报 Science and Technology Innovation Herald9流程, 每个工作流程都会涉及过程、 活动、转换、 执行者、 工作流相关数据等相关的内容。 对工作流系统的测试首先就要对工作流程进行测试。(2) 每个工作流程由多个活动形成的一个活动网络。 活动是一个工作单元, 表示流程中的一个执行阶段, 是流程执行中可被工作调度的最小工作单元, 由活动所有者完成。 活动完成后进行提交, 工作流引擎会将活动路由到下一个活动。 工作流中存在很多工作流程, 一个工作流程中的活动也可以重用到其它工作流程当中,由于调用的工作流活动的场景不同, 因此每一次调用都得进行测试。 工作流的活动是工作流测试的重点对象之一。(3) 工作流路由实现了活动的流转。当前活动完成后, 工作流会依据活动的控制信息和过程定义将活动流转至工作流程中下一个活动。 工作流可以归纳为6种路由关系:Sequential Routing、 AND-split、 AND-join、 Parallel Routing、OR-Split、 OR-join和Iteration。 即顺序路由 (一个任务接着另一个任务被顺序的执行) 、 与分支 (当任务A完成后, 任务B和任务C可以并行执行) 、 与连接 (只有在任务A和任务B都完成后, 任务C才可以执行) 、 并行路由 (当任务A完成后, 任务B和任务C可以并行执行。 任务B和任务C都完成后, 任务D才可以执行) 、 条件路由 (任务A完成后,任务B或者任务C只能有一个被执行; 任务D在任务B或任务C完成之后可执行) 、 循环路由 (需要多次执行的一个任务) 。 工作流路由是工作流进行流转的重要组成部分,也是工作流测试的重点对象之一。因此, 在工作流系统测试中我们要尽最大可能遍历到所有工作流程中所涉及的活动、 流程及流转条件。 这种全面遍历的思想虽然能够保证测试的完整性和充分性, 但是由于工作流中工作流程、 活动数量巨大,流转条件复杂, 很难设计出合理、 覆盖充分的测试用例, 所以并不具备可行性。 因此必须要对测试流程进行合理有效的筛选和优化, 设计出覆盖率较高的测试用例。2 工作流测试过程及方法工作流系统软件的主要功能包括:业务流程建模; 参与的用户, 权限, 角色设计;工作流运行; 业务表单的建立等。 涉及到的数据库包括组织/角色模型数据、 业务数据库、 流程数据库。 在工作流系统中, 最重要的是业务流程。 业务流程是将实际运行中的业务过程抽象出来, 由一系列相互衔接的活动节点和流程组成, 包含了工作流执行所需要的各种信息, 如活动、 控制流、 数据流、 流转条件、 角色和执行者等。 因此在此我们只对业务流程的测试进行详细分析。测试时, 首先根据业务流程的描述分析各种信息,明确审批节点、 流转过程、 流转条件以及每个节点的审批人的角色, 画出业务流程图。 在工作流系统中进行业务流程模型定义, 流程定义过程如表1所示。如果测试能够覆盖业务流程图中描述的所有审批节点、 流程走向、 流转条件, 即可认为测试满足完备性和充分性的要求,每部分测试覆盖完备性要求如下:(1)审批节点覆盖: 所有审批节点必须覆盖。 设计原则: 减少重复节点, 覆盖尽可能多的流程和流转条件。(2)流程走向覆盖: 流程图中的所有走向必须覆盖, 包括影响走向的条件判断和审批操作。 设计原则: 流程图中的箭头至少经过一次, 减少重复流向, 覆盖尽可能多的流转条件。(3)流转条件覆盖: 逻辑走向中的所有流转条件必须覆盖。在工作流测试时, 采用业务流程作为基本的测试用例单位, 采用路径和节点结合的方法编写测试用例。 设计测试用例时, 流程属性的测试参数不作为单独的测试用例,而是作为一个测试用例的组成部分, 验证整个流程处理的正确性。另外, 在软件测试时要注意以下几项原则:(1)全局性原则。 错误在初期有可能是范围很小的隐藏问题, 但由于各开发阶段的连续性, 使其逐步扩展。 因而要从全局上开展测试工作。(2) 系统化原则。 如果我们的测试不是系统的, 即使很细心的测试者也会被测试的规模和复杂性所击败。(3) 不可穷尽性原则。 如果进行穷举测试, 在一定程度上确保了测试的彻底性。但是 这 种 方法不 具 有实用价值, 代价 太大。(4)避免程序员自己检查的原则。 他人来检测自己编写的程序, 会更客观, 更有效。(5) 自动化原则。 测试工作不可避免地存在很大的重复性和复杂性, 测试要自动进行, 才能提高测试的效率。(6)测试中错误群集的原则。 要对错误群集的程序段进行重点检查, 以提高测试的效率。(7) 测试数据的正确充分性原则。 软件在所有的 (或是够多的) 测试数据上是正确的; 测试数据时充分的, 即软件在测试数据上的表现能够充分地反映软件的总体表现。3 工作流软件测试用例的设计与编写在某自定义工作流程的ERP项目中, 在基础信息部分的角色定义中设置需求申请员、 部门领导、 公司领导等角色。设置需求申请审批流程的审批节点为提出审请、 部门领导审批、 公司领导审批、审批结束。 在每个审批节点上由具有相应角色的人员进行审批。 “需求申请员” 角色的人员 “提出申请” , “部门领导” 角色的人员进行 “部门领导审批” , “公司领导” 角色的人员进行 “公司领导审批” 。