摘要:本文是在现今软件测试技术发展的大潮下,学习借鉴了前辈们提出的X模型、H模型、前置测试模型等测试过程指导模型的基础上,根据“以测试者引导开发,以文档化把控质量”的测试实施理念和多年的工作经验,作者提出了一款新的、更适合中国国情的软件测试模型──川模型。也希望借助此文与软件测试同行们讨论,找出一款适合中国国情的软件测试思路和测试模型。
“专业、务实、高效、创新、把客户的事当成自己的事”是我们每一个人一直以来坚持追求的企业文化。 创新互联建站是您可以信赖的网站建设服务商、专业的互联网服务提供商! 专注于做网站、网站建设、软件开发、设计服务业务。我们始终坚持以客户需求为导向,结合用户体验与视觉传达,提供有针对性的项目解决方案,提供专业性的建议,创新互联建站将不断地超越自我,追逐市场,引领市场!
关键词:测试模型;川模型;软件测试;测试体系;川模型架构;测试组织简图;川模型价值。
1 引言
随着科技的不断进步,计算机应用已经完全深入到我们整个社会的体系中,人们现在已经无法适应没有软件的世界,您在读这篇文章的时候,您的电脑正在工作、手机正在运行。甚至路上的汽车、信号灯都被软件全副武装。人们对软件的依赖越来越大,虽然质量可靠的软件给我们的工作和生活带来了前所未有的便利,但是质量不好的软件也让我们付出过惨痛的代价,这让我们充分认识到软件质量正在牵动着社会的命脉。
为了提高软件质量,软件开发人员进行过大量的研究和实践。从最初的技术革新,如编译、调试工具等地研究到各种计算机辅助软件环境,再到软件开发模型的研究。但是这种以技术和方法为重心的研究没有真正达到保证软件质量的目的(但是确实对软件质量的提高做出了贡献)。所以,人们开始认识到只有对软件开发过程的质量加以控制,才有可能大幅度的提高软件质量。因此,软件质量保证也从最初的以技术和方法为重心的模式,转移到以过程管理为重心的实践。
软件质量保证的本质是为了确保软件开发过程和结果符合预期要求而建立的一系列活动及其结果评价,其最终目的是缺陷预防,达到用户的实际需求,避免安全风险。软件测试活动是保证软件质量的有力武器,从最初的调试、验证,到现在形成的独立测试体系,无一不体现质量保证的重要性和测试工作的必要性。
本文讨论的目的:在现今科技发展的大潮下,为了提高软件质量及工作效率,提出软件测试的川模型。希望川模型找出一款适合中国国情的软件测试思路和测试模型。
2 软件开发、测试的现状分析
目前主流的软件开发模型有:螺旋模型、增量模型、渐进模型、快速软件开发(RAD)以及Rational统一过程(RUP)等,这些模型对于软件开发过程具有很好的指导作用,但是这些模型并没有充分强调测试的价值,也没有给测试以足够的重视,利用这些模型不能更好地指导测试实践。因此,软件测试模型应运而生,它能够系统的有计划的指导测试与研发的一系列活动,对软件质量的提高有着重要的作用。目前常见的软件测试模型有V模型、W模型、H模型、X模型、前置测试模型等。
这些测试模型都在一定程度上完善和发展了软件的测试体系,但是它们仍然存在着或多或少的问题,还没有充分把测试对质量保证的能力发挥出来。下面分析一下几款主流测试模型的优劣情况。
2.1 V模型的优劣分析
V模型强调软件开发的协作和速度,反映测试活动和分析设计关系,将软件实现和验证有机结合起来;强调了在整个软件项目开发中需要经历的若干测试级别,并与开发级别对应。但是,没有体现“尽早地、不断地进行软件测试”的原则;把测试作为编码之后的最后一个活动,项目前期产生的错误直到后期才能测试发现;没有明确指出对需求、设计的测试。
2.2 W模型的优劣分析
W模型强调了测试计划等工作的先行和对系统需求和系统设计的测试;在整个软件开发周期中,测试与开发并行进行,有利于尽早发现问题;提出了测试的对象包括程序、需求、设计等内容;及时了解项目的测试风险,及早制定应对方案,加快项目进度。但是,它没有对测试规程进行说明,同时软件开发和测试保持着线性的前后关系,无法支持迭代、自发性以及需求变更调整等经常面临的问题。
2.3 H模型的优劣分析
在H模型中,软件测试活动完全独立,贯穿于整个软件周期,与其他流程并发进行,某个测试点准备就绪时,就可以从测试准备阶段进行到测试执行阶段;提出了软件测试不仅仅指测试的执行,还包括很多其他的活动;测试是根据被测物的不同而分层次进行,不同层次的测试活动可以是按照某个次序先后进行的,但也可能是反复的。
2.4 X模型的优劣分析
X模型要求对每一个程序片段都进行单元测试,但没能提供是否要跳过单元测试的判断准则;多根并行的曲线代表着变更可以在各个部分发生,提高了迭代效率;它还定义了探索性测试,这一方式能帮助有经验的测试人员在测试计划之外发现更多的软件错误,但对测试人员的能力要求比较高。
2.5 前置测试模型的优劣分析
该模型将开发和测试的生命周期整合在一起,标识了项目生命周期从开始到结束之间的关键行为;明确提出了每一个交付的开发结果都必须通过一定的方式进行测试;它还定义了“开发基于需求的测试用例”以及“定义验收标准”,让验收测试和技术测试保持相互独立。
以上模型都有其优劣,但总体来说,都没有真正的把测试对质量的保障意义或时机把控好,大部分模型中,测试只是软件开发过程的一部分,没有明确独立成一个体系,虽然H等模型把测试对产品质量保证的地位提升了不少,但是仍然缺少对测试规程、资料等重要性的体现。
3 川模型架构
针对软件开发、测试的现状存在的问题(并且结合各已知模型的优点),依据“以测试者引导开发,以文档化把控质量”的测试实施理念,完善、发展了一个新的测试模型──川模型。
3.1 川模型
川模型由三条相对独立的测试实施流程组成,因为类似中文的“川”字而得名。其中的三条测试实施流程分别是验收测试实施流程、需求级测试实施流程、业务级测试实施流程。如图1所示。
图1 川模型工作组织规程简图
1)验收测试实施流程
该流程提出的目的与重点在于保护用户的真实需求,因为最终产品或项目能否成功交付,验收结果是重要的依据,而验收的主导者一定是用户(代表)。该流程的起始阶段就是在投入真正的研发和测试之前,根据项目需求及测试需求设计出验收方案,以纸质方案的形式与用户(代表)进行评审,以减少后期由于三方(用户、研发、测试)需求不一致的原因导致开发迭代增加。同时,以此验收方案为标尺,约束另两个流程的实施。
2)需求级测试实施流程
该阶段强调测试伴随着整个软件开发周期,测试与开发并行进行,达到尽早发现问题的目的。把测试的对象扩展成程序、设计(文档资料)、数据等内容,测试工作实时准备,以达到在某个测试点准备就绪时,可迅速切入到测试执行阶段。在该流程中,把迭代测试的内容进行了细致的分析与说明,明确提出迭代过程中需要进行单元/集成测试、功能测试、自动化测试、安全性测试以及专项测试。把自动化测试与安全性测试提高到测试指导阶段,也是当今科技发展的必然趋势。
3)业务级测试实施流程
如果把测试人员按测试能力分为测试负责人、测试执行人员,那么需求级测试实施阶段的测试执行可以让测试执行人员进行,但是业务级测试实施流程的主要执行人员就应该定位成测试负责人,至少应该是测试负责人主导测试。其根本原因在于该阶段的意义是业务、风险等的把控,并且引入了探索性测试,是作为需求级测试阶段的有利补充。
需求级测试实施流程与研发流程无缝有机结合。业务级测试实施流程存在的价值在于把控与掌握住了产品实际投入使用时的场景、风险等因素,对着重需求进行针对性的设计,满足“八二法则”的经典理论,该流程即把重点放在了“二”上(用户使用的80%的场景可能就存在于20%的功能中)。验收测试实施流程依托于用户的实际需求与前期的测试分析,它作为软件生命周期的标尺,运行到产品或项目结项,最大程度上满足用户需求。
3.2 川模型的工作组织规程
从图1可以看出:
川模型突出体现了测试活动对质量把控的重要性。从项目的可行性分析开始,测试人员就担负着重要的角色。同时,把测试需求说明书、验收方案、测试方案的重要性与提出时机进行了说明。体现:
1)需求分析需要产品/项目经理、用户、测试人员等全程参与;
2)测试需求说明书需要测试人员起草,由产品/项目经理、用户、研发等共同审核通过;
3)验收方案提前由测试人员编写,由产品/项目经理、用户共同审核通过;
4)研发设计阶段主要依据测试需求说明书编写(其次可参考软件需求说明书),在还没有进行完代码开发之前,测试人员提前输出依据测试需求说明书编写的测试案例,由研发人员提前参考,提高研发依据测试案例开发代码的测试通过率;
5)迭代阶段大部分在需求级测试实施流程,测试工作实时准备,以便迅速切入测试执行;
6)业务级测试实施阶段的执行工作是需求级的补充,在软件研发的中后期无缝切入;
7)验收执行的触发点是业务级测试通过,验收工作完成后,进行项目资料归档工作;
8)研发过程中,如果有任何变更,需走变更控制程序,返回测试需求分析阶段,并根据实际情况与要害人员输出变更后的系列资料(验收方案、测试案例等)。
4 川模型的甘特图
在图1中的左半部分,做了时间轴与等时线的定义。并且说明了不同职能人员的参与时机,已给大家在时序上的理解。
5 川模型的价值5.1 体现测试的使命与重要地位
在川模型上,可以很容易的看出测试工作对软件质量的保证意义与实施方法。区别于其他模型,该模型更加清晰、系统的说明了测试的使命,并且该模型真正站到了测试的角色,以测试保证最终用户质量的认可下指导研发的工作,作为研发工作的标尺。
5.2 体现测试先行的重要意义
从产品/项目的可行性分析开始,测试活动就一直伴随整个生命周期,真正体现了“尽早地、不断地进行软件测试”的原则。
5.3 文档化的重要性与可追溯性的提出
在现今越来越快的产品/项目的交互进程中,人们对文档化的需求越来越迫切,文档化不仅可以使研发、测试过程更加有理、有据、科学,也为以后的可追溯性提供了基础。同时,产品/项目前期就对测试案例化的要求,对研发的指导意义更大,研发完全可以“依据测试案例设计软件,案例通过即研发完成”的标准进行开发活动,避免了由于需求不一致的情况下导致研发冗余或功能缺失,提高了工作效率。
5.4 提出三种测试技术相结合的规程
川模型第一次提出了三条执行线的工作模式。验收实施流程作为整个产品/项目的指导流程执行,它与用户最紧密相关,最能体现用户的实际需求,同时避免、减少了在工作过程中的随意变更;需求级实施流程则最有效的保证了测试覆盖率,并且与研发的交互也更加顺畅,提高了测试与研发迭代的敏捷度;业务级实施流程则通过有经验的测试人员,把最重要需求做了风险、场景、探索等地设计验证,可以这样说,经过最后一条执行线的梳理后,用户的实际并且经常使用的功能都被覆盖到。
除了需求级实施流程与研发的交互紧密而充分外,另两个流程相对独立,降低了研发过程干扰,为保证软件质量提供了有利基础。
5.5 等时线为质量保证提供了基础
该模型首次提出等时线的概念,在时序上,避免了工作重复甚至没有必要的交叉。正如该模型的约束,我们必须先进行测试需求分析,输出测试需求说明书后,才可进行验收测试设计;在验收测试设计快完成时,才可以进行需求级测试设计,保证了测试设计与验收标准的高度统一;业务级实施流程通过后,才可进行验收执行工作。从另一层面,也对测试提出了更高的要求,例如在研发提交代码之前,测试的准备工作必须完成,可随时切入工作;有需求变更时,测试人员需要先后更新测试需求说明书、验收方案、测试方案等内容,审核通过后,实时共享给要害人员,确保项目的顺利进行。
6 结束语
川模型的提出时间尚短,只在一两个公司进行过相关实践,看到了明显效果;提高了测试人员的使命感与荣誉感;也减少了软件开发过程中的冗余、遗漏问题。但是,该模型没有经过大量的软件企业实践,还会存在或多或少的问题,仅作一个初步研究,通过这初步的研究,想抛砖引玉,真正找出一款适合中国国情的软件测试思路和测试模型,也欢迎大家一起探讨。
作者介绍:
李龙 张翠 刘文贞 刘文杰
作者简介
李龙:北京赛博兴安科技有限公司测试部门经理、北京软达启航科技发展有限公司CTO、济南得润万家农业科技有限公司副总经理、中国软件测试联盟专家。提出“以测试者引导开发,以文档化把控质量”的测试实施理念。先后出版《软件测试实用技术与常用模板》、《云计算基础与实用技术》、《无线网络与应用技术》等7部书籍。
参考文献
柳纯录软件评测师教程[M]。北京:清华大学出版社,2005
李龙、李向函等。软件测试实用技术与常用模板[M]。北京:机械工业出版社,2010
黎连业王华 李龙等。软件测试技术与测试实训教程[M]。北京:机械工业出版社,2012