扩展的WW测试模型及其在城轨ATCATC系统中的应用
2013-05-09贾晓哲北京全路通信信号研究设计院有限公司北京100073
贾晓哲(北京全路通信信号研究设计院有限公司,北京 100073)
1 测试模型简介
1.1 V模型
1970年W inston Royce提出了著名的“瀑布开发模型”[1],它将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等6个基本活动,并且规定了它们自上而下、相互衔接的固定次序,这种模型的开发安全性高且易于管理,但是它所需要的时间较长,而且如果产品需求稍做变更,会导致后面的几个阶段也要进行更改,同时它把测试过程作为在需求分析、概要设计、详细设计及编码之后的一个阶段,这样会导致开发早期的错误可能要等到开发后期的测试阶段才能发现,其带来的后果是严重的。
Pau l R ook在80年代后期提出了V模型针对瀑布模型对软件测试过程进行了补充[2],如图1所示。
V模型最早提出测试并不是一个事后弥补行为,而是一个同开发过程同样重要的过程,同时它明确的表明测试过程的各个阶段及其和开发过程期间
贾晓哲,男,硕士毕业于北京交通大学,系统工程师。主要研究方向为交通信息工程与控制。曾在EI上发表文章1篇,拥有两项专利。各阶段的对应关系。但是V模型的问题也是很明显的,比如容易让人形成“测试是开发之后的一个阶段”,“测试的对象就是程序”之类的误解。由于V模型把系统开发过程划分为具有固定边界的不同阶段,这使得人们很难跨过这些边界来采集测试所需要的信息。有些测试应该执行得更早些,有些测试则需要延后进行。不仅如此,V模型也阻碍了从系统描述的不同阶段中取得信息进行综合。所以,一些改进过的软件测试模型被提了出来。
1.2 W模型
W模型也叫双V模型,是对V模型的改进,它由Systeme Evolutif公司提出,针对V模型的问题,W模型强调需求、功能和设计同样要测试,测试的对象不仅仅是程序,软件测试应该贯穿整个开发周期之中,只要相应的开发活动完成,就可以开始执行测试,可以说,测试与开发是同步进行的。从而有利于尽早的发现问题,如图2所示。
但是不论是V模型还是W模型,适用于那些需求非常明确,已经文档化了的项目,开发人员和测试人员都需要严格定义好的需求和设计来开展工作。在实际的开发过程中,因为需求变化等不可避免的原因,开发人员并没有按照文档来工作,也就是说文档没有及时更新,有时候在一些不规范的公司,文档根本就没有。这些情况下,V模型和W模型在实施起来就很困难。此外,无论是V模型,还是W模型,都把软件的开发视为需求、设计、编码等等一系列的串行活动。而事实上,虽然这些活动之间存在着互相牵制的关系,但在大部分时间,它们是互相独立的,是可以并发进行的。虽然软件开发期望有清晰的需求、设计和编码等等阶段,但实践告诉我们,严格的阶段之分只是一种理想状况。
1.3 其他测试模型
为了解决V模型和W模型中存在的问题,很多人也提出了其他种类的测试模型,例如前置测试模型,把验收测试和技术测试作为相互独立的两个部分;X测试模型,增加了探索测试的内容;H测试模型,具有很高的效率和灵活性等等。这些模型分别对经典的V和W测试模型进行了不同方向的补充和发展,但同样也存在相应的不足,表1对这些测试模型进行了对比和分析。
表1 测试模型对比和分析
2 扩展的W测试模型
通过上述测试模型的介绍,可以看出测试并不是在开发之后的过程,而是与开发同步进行的过程。而且在执行测试之前需要进行充分的测试准备工作,这样才会使测试进行的更加充分、高效、有序。因此,本文对传统W模型进行了改进,提出了扩展W模型,如图3所示。
扩展W模型有3个V形组成,里层的V形,中层的V形和外层的V形。
里层的V形代表系统的开发过程,一个完整的系统是由多个子系统构成,每个子系统则又是由多个功能模块组成。因此开发的过程首先是通过对用户需求的分析,编制系统需求,再划分为各子系统的需求,之后每个子系统根据需求编制概要设计、详细设计,之后进行程序的编写;各个模块编写完成后进行模块的组装,软件的组装,之后构成子系统进而组成整个系统。
中层的V形代表系统的测试过程,测试过程应同开发过程同步进行,从编制需求时就对需求进行测试,这样不但保证软件的可测性,同时也避免了由于需求存在问题而导致的软件修改,大大节省了开发的时间成本和经济成本。同时利用白盒、灰盒以及黑盒的测试方法从代码内部、功能实现、接口协议、数据配置和故障模拟等各个层面和阶段对软件进行测试,保证的测试的充分性。
外层的V形代表的是测试辅助过程,但却是测试过程中不可缺少的部分。这个过程包括了软件开发完成前的测试准备过程和测试软件过程中的缺陷管理、回归测试两大部分。测试准备包括测试案例的撰写、测试环境的搭建、测试工具的开发等内容,好的测试案例可以弥补测试经验的不足,同时也能更好的发现问题;成熟的测试环境,先进的测试工具,可以使测试更加高效,也更加充分。而测试过程中对缺陷的管理对测试来说则是重中之重。因此这部分的测试辅助过程也是测试中的重要组成部分。
3 扩展的W测试模型在城轨ATC系统中的应用
3.1 城轨ATC系统简介
信号系统是城市轨道交通自动化系统中的重要组成部分,该系统以安全为核心、以保证和提高列车运行效率为目标,在保证列车和乘客安全的前提下,通过调节列车运行间隔和运行时分,实现列车运行的高效和指挥管理的有序。城市轨道交通信号系统的自动化水平较高,系统协同性较强,通常又被称为列车自动控制(ATC)系统。
A TC系统包括列车自动监控(A TS)子系统、列车自动防护(ATP)子系统、计算机联锁(CBI)子系统和列车自动运行(ATO)子系统。A TC系统通过车载设备、轨旁设备、车站和控制中心组成的控制系统完成列车运行控制。
3.2 扩展的W测试模型在城轨ATC系统中的应用
城轨A TC系统是一个复杂而庞大的系统,不但涉及到多个子系统,同时需要子系统之间必须很好的协同工作。因此如果采用传统的V或W模型,测试没有和开发同步进行,同时无测试辅助等环节,系统开发和测试过程中会很可能出现时间过长、准备不足、测试不能有序开展等情况。扩展W测试模型则可以很好的避免上述问题的发生。
在程序开发前,开发人员执行里层的V即根据用户需求,进行A TC系统需求的撰写,同时测试人员则执行中层的V即对A TC系统需求进行评审测试,而测试人员及辅助人员则同步执行外层的V,开展熟悉用户需求,撰写测试案例,搭建并验收系统测试环境,熟悉环境的使用以及测试工具的开发等活动。系统需求完成后,各子系统开发人员执行里层的V即根据系统需求开始撰写子系统需求、概要设计和详细设计等,测试和测试辅助和开发同步进行,同时各子系统这些活动也可以同步进行。编码完成后,由于前期测试准备活动已完成,测试活动就可以马上展开,大大节省了时间。同时由于前期开发阶段测试已经介入,因此保证了前期开发活动的质量。测试中发现的问题通过分析,制定回归范围,进行回归测试和修改,避免了软件的重新开发,增加了开发和测试的效率。
4 结论
本文在传统的W模型的基础上增加了测试辅助过程,提出了一种扩展的W模型。扩展的W测试模型通过增加测试人员培训、测试工具准备、测试环境搭建等测试准备活动、缺陷管理以及测试回归等内容使得测试活动能够更加有效的进行,并应用于城市轨道交通A TC系统的软件测试中,提高了测试的质量和效率。
[1] Winston W.Royce.Managing the Development of Large Software Systems[EB/OL].[2012-12-01].Http://wen ku.baidu.com/view/5152638/d4d8d15abe234e57.html.
[2] 黄龙水,黄城学.软件测试模型介绍[J].舰船电子工程,2004,24(3):35-37.
[3] William,E.Perry.Effective Methods for SofwtareTesting[M].2th ed.usA:JohnWiley&SonsInc.,1999.
[4]张永梅,陈立潮,马礼,等.软件测试技术研究[J].测试术学报,2002,16(2):15-17.
[5] Beizer B. Software Testing Techniques[M]. NewYork: Van Nostrand Reinhold Co, Inc., 1990.
[6]曹德胜,王燕兴.一种新的软件测试过程模型[J].华北科技学院学报,2006,3(2):72-74.