改进的软件测试模型
——“并”模型
2017-08-02张春海
吴 悦,张春海
(中国海洋大学 信息科学与工程学院,山东 青岛 266100)
改进的软件测试模型
——“并”模型
吴 悦,张春海
(中国海洋大学 信息科学与工程学院,山东 青岛 266100)
通过对传统的V模型、W模型、X模型和H模型进行分析和比较,得出了它们各自的缺陷,在此基础上提出了“并”模型这种新的软件测试模型。该模型克服了传统软件测试模型的缺陷,较全面地描述了软件开发活动和软件测试活动以及它们之间的交互活动。最后将该模型运用到实际的项目开发中,实践证明该模型有效提高了软件测试效率。
软件测试;改进;测试模型
0 引言
近年来,随着软件的规模越来越大,软件开发过程中出现的错误或缺陷也越来越多,同时,随着市场对软件质量重要性的认识逐渐增强,软件测试在软件项目实施过程中的重要性也逐渐突出了。由于人们开始对软件测试活动进行了更加深入的研究,作为软件测试活动的重要指导依据的软件测试模型也就受到了人们广泛的关注,由一开始测试专家们提出的几个传统的软件测试模型,比如,传统的V模型、W模型、X模型和H模型等,到后来越来越多的软件测试模型开始涌现,选择一个合理高效的软件测试模型来对软件测试活动进行指导显得尤为重要。但是,随着软件产品逐渐趋于复杂化和多样化,这些传统的软件测试模型开始暴露出其缺点和局限,逐渐变得不再适合了。
本文主要通过对传统V模型、W模型、X模型和H模型的研究,尤其是在对其不足方面深入分析的基础上,通过对其进行改进和强化,提出了“并”模型,并将该模型实际运用到典宝网开发项目中,经实践表明,该模型确实改善了传统模型中存在的不足,有效提高了软件开发的效率。
1 传统测试模型的局限性
1.1 V模型
V模型[1]最早由PaulRook在20世纪80年代后期提出,它是由软件开发瀑布模型发展而来的,反映了软件测试活动与软件分析和设计的关系。在V模型中,左边从上至下依次是软件开发过程的各个阶段,右边由下至上依次是软件测试过程的各个阶段,软件测试活动被加在软件开发活动的后半段,其中箭头代表了其进行的方向。V模型存在一定的局限性,它仅仅把测试活动作为一系列软件开发活动之后的一个阶段,容易使人们产生这样的误解,导致直到测试活动的后期才能发现软件开发早期的错误,会造成大量人力、物力、时间等资源的浪费。
1.2 W模型
W模型是由Evolutrf公司提出的[2],它修改了V模型,并在此基础上又添加了一个V模型,这两个V模型分别描述了软件开发过程和软件测试过程,它强调了软件测试活动应伴随软件开发的整个周期,软件测试的对象不应该仅仅是程序,还应该包含需求和设计阶段,W模型改善了V模型的不足,有利于较早地发现软件的错误,但也有其局限性,W模型将软件开发活动和软件测试活动的各个阶段都设计为线性的关系,上一阶段完成才进入执行下一阶段,不支持迭代过程。
1.3 X模型
X模型也是在对V模型改进的基础上提出的[3],它先将程序分离开来,对每一个程序进行单独的编码和测试,然后对它们进行频繁的交互,最终集合成一个可执行的程序,再对其进行后续的测试活动。X模型具有一个很大的亮点就是探索性测试,这是一种事先不进行任何设计的特殊类型的测试,有经验的测试人员通过这一方式往往能发现更多的错误,但由于其对测试人员的能力要求太高,可能在执行过程中会有困难。
1.4 H模型
H模型把软件测试活动独立出来,作为一个完全独立的过程,与其他软件过程并发地执行,并且它指出不同的测试活动可以按某个次序先后进行,也可以反复进行,只要某个测试点准备就绪,就可以从测试准备阶段进入到测试执行阶段[4]。H模型的不足之处在于它把软件测试活动作为一个完全独立的过程,没有提出其与软件开发活动的交互活动,而且它描述的测试流程不够细致,没有指出具体执行步骤。
1.5 局限性概括
对于以上测试模型的局限性进行如下概括:
(1)软件测试活动不完善,没有描述完整的软件测试周期活动,测试活动流程没有具体化,未能体现出测试设计与规划活动。
(2)软件测试活动与软件开发活动在模型中具有固定的边界,忽视了测试活动与开发活动之间的交互活动。
(3)各个软件测试活动之间的联系不明确,大部分都定义为线性的关系,因此模型不支持迭代开发与一些变更调整等活动。
(4)测试活动介入较晚。
2 新的软件测试模型
经过对上述局限性的改进,提出了“并”模型,如图1所示。“并”模型改进点如下:
图1 “并”模型图
(1)软件开发活动与软件测试活动并行进行,软件测试伴随软件开发全过程,并行开始下的左列的开发活动和右列的测试活动是同时进行的,两列中相对应的各个阶段应处于同一时间进行,这样有利于保证在每个阶段都能尽早地发现错误。另外,在最早的需求分析与功能确认阶段就开始介入验证,能确保软件产品与客户的要求是一致的,较早地发现错误也能减少软件开发过程中人力、物力和时间的浪费。模型中也明确指出了软件测试过程和软件开发过程的交互行为,用测试驱动开发,有利于提高软件的质量。
(2)模型要求测试人员从最初就参与到软件开发的全过程,如测试人员应参与到需求分析与功能确认阶段,这样测试人员能获取到用户的需求等一些信息,相比于单纯依靠文档来设计测试用例,站在用户的角度更能发现问题。
(3)一系列测试阶段中的所有测试活动不存在时间上的相互独立,而是在一定程度上并行和交错地进行,在基于需求的测试进行的同时,也在做验收测试的设计工作,在基于功能的测试的同时,做系统测试的设计工作,单元测试可与集成测试并行进行,但应保证至少3个单元测试完成时才进行集成测试,另外,在集成测试进行到2/3时,系统已经初步成型,这时就可以进行系统测试了。这样能在一定程度上减少测试时间,提高测试的效率。
(4)较高层次测试阶段发现的软件缺陷可能影响到较低层次的测试阶段,因此当缺陷修复的时候应及时回到较低层次的软件测试阶段进行回归测试,模型中也已经明确标出,要不断地对已有的测试用例进行回溯和修改,对一些测试活动迭代循环地进行,这样不仅能提高软件的质量,还有利于应对一些需求变更调整的问题。
(5)在需求分析阶段就开始进行验收测试用例的设计,确保验收测试用例直接来源于用户的需求,接下来,后阶段的一系列测试活动的测试用例应该是从上一阶段的测试用例的基础上扩展而来的。
(6)所有测试活动的测试用例在设计时,应遵循复用的规则,在测试用例设计时应先根据项目的特点和共性查找可复用测试用例库,如果有合适的测试用例,则在此基础上进行补充和完善使用,如果没有,再进行设计,最后这次的测试用例也应放入测试用例库中,以备下次使用。
3 测试实例
在典宝网管理员模块开发项目中使用了“并”模型进行测试。由于管理员模块是属于整个典宝网项目的一部分,在开发该模块时,需求分析和功能确认已经完成,直接从编码阶段开始进行,按照“并”模型的指导,一步步执行开发和测试工作。典宝网的用户模块也是典宝网的一部分,与管理员模块的功能大致相似,但其是在传统的测试模型的指导下进行的测试活动,所以,在这里将这两个模块的测试结果进行了对比,如表1所示。
表1 测试结果比较表
由表1可知,在相同的时间内,使用“并”模型完成了较传统模型1.2倍的测试任务,有效地减少了测试时间,另外可发现,使用“并”模型,在单元测试阶段发现的错误较多,越往后的阶段发现的错误越少,单元测试阶段发现错误数占总错误数的75.7%,高于使用传统模型的69.6%,也就是说,大部分错误在编码阶段就被及时地发现了。总的来说,使用“并”模型提高了测试效率。
4 结论
利用软件测试模型来指导软件测试过程的进行是软件测试效率较高的测试方法,本文在分析了几个传统测试模型所存在的不足的基础上,提出了“并”模型这种新的软件测试模型,并把该模型成功地应用于典宝网项目的实际开发中,实践表明,该模型是有效的,使用该模型可以尽早地发现错误,减少软件测试中资源和时间的浪费,提高软件测试的效率,有一定的参考价值,但后续也需要在实践中不断地对其进行完善。
[1] PONS C, BAUM G. Reasoning about the correctness of software development process[C]. Proceedings of the 24th International Conference on Software Engineering, 2002: 708.
[2] 张向宏.软件生命周期质量保证与测试[M].北京:电子工业出版社,2009.
[3] GOLDSMITH R F. This or that, V or X?[EB/OL].(2005-08-01)[2016-12-30].http://www.sdbestpractices.com.
[4] JORGENSEN P C. 软件测试[M]. 北京:机械工业出版社,2003.
Improved software testing model: parallel model
Wu Yue, Zhang Chunhai
(Institute of Information Science and Engineering, Ocean University of China, Qingdao 266100, China)
By analyzing and comparing the traditional V model, W model, X model and H model, and drawing their own shortcomings, a new software testing model named "并" model (parellel model) is put forward.The model overcomes the shortcomings of the traditional software testing model, and describes software development activities and software testing activities as well as interactions between them.Finally, the model is applied to the actual project development, and the practice has proved that the model can improve the software testing efficiency.
oftware test; improve; test model
TP311.5
A
10.19358/j.issn.1674- 7720.2017.14.005
吴悦,张春海.改进的软件测试模型——“并”模型[J].微型机与应用,2017,36(14):14-15,19.
2016-12-31)
吴悦(1993-),女,硕士研究生,主要研究方向:软件工程与信息技术。
张春海(1963-),男,教授,硕士生导师,主要研究方向:软件工程与信息技术、计算机应用技术。