基于工作流的软件测试H模型研究

时间:2022-10-16 09:17:51

基于工作流的软件测试H模型研究

摘 要:针对当前软件测试存在的问题,在深入分析现有各测试模型的基础上,引入工作流理论,以任务分配为引擎,结合软件测试H模型,提出一种可行的改进方案。

关键词:软件测试;工作流;H模型;工作流引擎

中图分类号:TP301 文献标识码:A 文章编号:16727800(2013)002002403

0 引言

软件测试过程用于指导软件测试的流程及安排测试活动的实施。测试过程的优劣会影响测试结果的准确和有效性。针对被测试软件的特点和测试目的,在实践中总结出了若干测试过程模型。软件测试模型是测试工作进行的依据,它描述了测试过程的主要活动及其相互关系等。为了提高模型的准确性和有效性,并能在测试的整个生命周期发挥作用,关键是合理划分模型中的各个阶段,及其实施的活动,并为这些活动制定合理的执行顺序。

1 常用软件测试过程模型

模型是一种沟通工具,测试过程模型能帮助项目中的测试人员明确目标和确认职责,良好的测试模型可以提高测试的效率。现有软件测试过程模型有很多,常用的主要有 V 模型、W模型等。

1.1 V模型

现有的模型中最有代表性的是V模型,20世纪80年代后期由Paul Rook提出。V模型反映了测试过程与分析、设计阶段之间的关系,认为测试的过程存在不同级别,并描述各个阶段之间的对应关系,软件测试过程V模型如图1所示。

V模型揭示了软件测试活动分层和分阶段的本质特性,但也存在一些问题,V模型把系统开发过程划分为具有固定边界的不同阶段,容易让人形成测试是开发之后的一个阶段。V模型没有明确测试设计,导致需求阶段隐藏的错误可能要到最后验收测试时才被发现,解决这样的错误要付出很大的代价,相比之下,Evolutif公司提出的W模型显得更科学些。

1.2 W模型

W模型是在V模型的基础上自然发展起来的,软件的错误具有传递性,在需求分析阶段产生的错误,会传递到设计和编码阶段,因此,测试工作应尽早进行。W模型强调,整个软件生命周期都应该伴随有测试活动,阶段性的开发活动完成后,就可以开始测试,也就是说,测试与开发可以同步进行。W模型还认为,测试的对象不仅是编码阶段的成果,需求、功能和设计同样要测试。软件测试过程W模型如图2所示。

V模型和W模型的共同点是,它们都认为软件开发过程是由需求、设计、编码组成等一系列串行的活动,适用于那些有明确需求的项目,开发和测试人员按照需求和设计开展工作。而在大部分的开发过程中,需求通常会产生变动,文档会时时更新,这样V模型和W模型就难以实施。

事实上,在大部分开发时间内,开发过程中的活动可以交叉进行,对应的测试活动也不应存在严格的次序,单元、集成和系统测试之间可以反复迭代。遵循这种思想,人们又提出了H模型。

2 软件测试过程H模型

人们利用新的设计思想,对软件测试的流程重新进行了更加系统的分析,随之提出一种适应性更强、应用更广泛的软件测试过程模型―H模型,如图3所示。

图3是软件开发过程中某个阶段上的一次测试活动流程。图中的流程适用于任意的开发过程,例如设计或编码过程。在某个时间点,其它过程的进行触发了测试就绪点,此时,只要准备活动完成了,测试活动就可以进行。

H模型充分体现了“尽早测试”、“全程测试”、“独立测试”、“迭代测试”的原则。

本模型对软件测试过程进行定义,将其划分为5个阶段,分别是测试需求、测试策划、测试设计、测试执行、测试总结。这种划分非常符合H模型的思想,测试需求、测试策划和测试设计对应 H 模型中的测试准备阶段,测试执行和测试总结对应 H 模型的测试执行阶段。五阶段模型的使用实例如图4所示。

主要组成部分如下:

(1)工作流执行服务组件(Workflow Enforcement Services)提供了一个或多个工作流引擎组成运行环境,可对过程进行实例化、解释及激活,同时可与外部进行数据交换。

(2)工作流引擎(Workflow Engine)是一个为工作流实例提供运行执行环境的软件服务。

(3)过程定义组件(Process Definition)主要用于描述、分析并记录业务过程。它输出一个能被工作流引擎解释的过程定义。

(4)工作流相关数据(Workflow Data)指与业务过程流相关的数据。系统使用这些数据确定工作流实例的状态转移,工作流相关数据既可以被工作流引擎使用,也可以被应用程序调用。

(5)工作流客户端应用组件(Workflow Client Application)是与活动相关的人员进行交互的软件实体。通常包括工作列表(Worklist)及工作列表管理器(Worklist Handler)两个主要组成部分。

(6)需要激活的应用程序(Invoked Applications)是指工作流执行服务在过程运行中调用处理应用数据的外部应用程序。

3.2 软件测试管理应用模型

根据目前通用的软件开发过程模式,考虑实际操作的可行性,以软件测试过程H模型为基础,结合工作流模式,建立如图6所示的软件测试管理应用模型。

此模型中,执行任务分配的工作流引擎是一个核心部件,测试过程的基本流程是:

(1)测试开始前建立测试用例库,保证能产生合格的测试用例,以供任务分配;

(2)任务分配触发工作流引擎,测试员开始进行测试并填写测试报告。若测试结果无误,该测试用例关闭;若有误,则产生相关缺陷;

(3)产生的缺陷经审核,如确是一个待修正的缺陷,则重新作为任务分配对象;

(4)任务分配再次触发工作流引擎,程序员对缺陷进行修正,确认完成后,进入回归测试流程,等待回归测试的缺陷又成为任务分配的对象;

(5)回归测试再次触发工作流引擎,流程回到(2),循环此过程直至缺陷“关闭”。

3.3 工作流引擎――任务分配

任务分配相当于工作流引擎。测试任务的分配依照计划(Plan)、执行(Do)、检查(Check)、调整(Adjust)的原则进行,在测试开始前要建立测试计划,明确各阶段要完成的任务,预估完成活动所需的时间和资源,从而进行人员安排和任务分配等。任务分配管理框架如图7所示。

参考文献:

\[1\] 胡玮.软件测试过程模型的改进与应用\[D\].杭州:浙江大学,2006.

\[2\] 赵瑞东.工作流与工作流管理技术综述\[J\].科技信息,2007(8).

\[3\] 郑小军.基于工作流技术的软件测试流程定义与监控\[J\].计算机应用研究,2007(2) .

\[4\] \[美\]Project Management Institute. Practice standard for work breakdown structures\[M\].Project Management Institute,2001.

\[5\] 吴慧韫.基于工作流的软件测试管理系统研究与设计\[D\].南昌:南昌大学,2005.

上一篇:基于物流成本控制目标的不连续物流流程识别与... 下一篇:浅谈房屋建筑中的剪力墙结构设计(1)