CMM在提高软件开发质量方面的作用已经得到广泛认可,但CMM只是对项目开发提出了要求,至于具体实施过程,还需要更加行之有效的实施方法、技术和工具的支持,为使开发业务过程的部分或全部实现自动执行,引入工作流技术。
5.1 工作流元模型[3]
工作流管理联盟定义的过程元模型PDM(Process Definition Meta-mode)的结构, 定义工作流语义模型的构造和规则,描述工作流模型内部包含的各个对象以及对象之间的关系和属性,如图2所示。
5.2 CMM软件测试H模型
在CMM开发模式下,结合可行性和易用性,以H模型为基础,结合工作流技术,针对CMM中小软件开发的实际工作情况,在原有研究基础上建立软件测试管理应用模型[4],如图3所示。
这个模型中,软件开发与测试并发执行,构成H模型结构,核心部件为工作流引擎,它负责执行任务分配,该模型强调尽早测试等敏捷软件测试原则,其测试基本流程为:
(1)测试用例。由测试及设计人员共同建立合格的测试用例库,作为测试任务分配的对象。
(2)工作流引擎。测试工作流引擎由任务分配触发,制定相关工作流各阶段的测试方案,并由专家进行测试方案评审,评审通过后,由测试员进行测试执行。若测试结果无错误,则执行相关的测试评估与度量,填写相关文档,相关测试用例关闭;若测试有错误则产生相关缺陷。
(3)缺陷审核。产生的缺陷如果经审核是一个待修正缺陷,则作为修正的任务分配对象。
(4)缺陷修正。任务分配触发缺陷修正工作流引擎,由软件设计人员进行修正执行,修正确认完成后进入回归测试。待回归测试的缺陷又成为任务分配的新对象。
(5)迭代测试。回归测试再次触发工作流引擎,回到(2)迭代执行,如此往复直至无缺陷并关闭。
5.3 测试任务分配
依照计划、执行、检查、调整的原则进行测试任务的分配,要求在执行任何测试前必须有相应的测试计划和测试用例,明确测试活动以及测试评估所需要的时间和资源,然后进行测试人员安排和测试任务分配等[5]。如图4所示。
当测试任务发起人发起一项测试任务后,将该任务将传递给测试任务承接人,由承接人进行任务处理。承接人完成任务处理后,交还给测试任务发起人确认,如果测试任务确实已完成,由测试任务发起人关闭该测试任务。如图5所示。
5.4 测试用例缺陷状态变迁
把测试用例分静态和动态两种状态,这样可以支持多轮测试。当一个测试用例经过任务分配后,测试用例状态则由静态转为动态,在该模型中,只有动态测试用例才参与真正的测试。动态测试用例主要包括测试用例的状态信息、测试报告内容、测试结果确认等信息,可用NO Run(尚处在设计阶段或尚未被执行)、Passed(已成功)、Failed(已失败)、 Blocked(设计出问题)四个状态来跟踪测试用例的执行情况,而静态测试用例只包括测试逻辑和测试数据。
软件缺陷的产生可能发生在软件生命周期的每个阶段,而且这种软件缺陷可能是由上一个阶段的工作失误造成,所以,对软件缺陷实行跟踪管理在整个软件开发过程中都是非常必要的。在理想状态下,能够根据测试人员的预定要求,在测试之前对软件缺陷的状态以及缺陷状态之间的流换路径进行设置[6]。
缺陷状态周期分成可分为六个态,分别是open态、working态、verify态、cancel态、defer态和close态。其中open态标识新出现的缺陷或没被修改的缺陷;working态标识软件开发人员正在修改和纠正的缺陷;verify态标识软件设计人员已修改完缺陷,并请求结果验证;close态标识缺陷已被修正,否则将其状态重置为open态;cancel态标识的是由测试人员发现并填报的一个存在的缺陷;defer态说明,如果该缺陷在当前条件下修正则系统代价过高,如果该缺陷的优先级不高,则缺陷修正可以推迟。如图6所示。
6 结论(Conclusion)
基于工作流的CMM软件测试H模型将测试过程从开发过程中适当的抽象出来,作为一个独立的过程进行管理,在CMM规则框架下较好地体现了尽早、全面、全过程、迭代测试等敏捷测试思想。该模型能很好地解决CMM测试管理环境中的测试流程定义、解释执行和监控等相关问题,使整个测试过程更加清晰,节约了开发时间,使测试活动更加合理,有效保证整个软件产品的质量,对中小型软件开发的测试有着很好的适用性。
参考文献(References)
[1] 俞磊,等.基于CMM-3的软件测试过程模型的研究[J].计算机与数字工程,2011(7):79-82.
[2] 郑晓霞.基于CMM的工作流管理系统的研究与实现[D].西安:西安理工大学,2007.
[3] 赵瑞东,等.工作流与工作流管理技术综述[J].科技信息,2007(8):105-107.
[4] 张晓雯,徐东.基于工作流的软件测试H模型研究[J].软件导刊,2013(2):24-26.
[5] 郑小军,等.基于工作流技术的软件测试流程定义与监控[J].计算机应用研究,2007(2):43-45.
[6] 吴慧韫.基于工作流的软件测试管理系统研究与设计[D].南昌:南昌大学,2005.