摘要:本文是在现今软件测试技术发展的大潮下,学习借鉴了前辈们提出的X模型、H模型、前置测试模型等测试过程指导模型的基础上,根据“以测试者引导开发,以文档化把控质量”的测试实施理念和多年的工做经验,做者提出了一款新的、更适合中国国情的软件测试模型──川模型。也但愿借助此文与软件测试同行们讨论,找出一款适合中国国情的软件测试思路和测试模型。php
关键词:测试模型;川模型;软件测试;测试体系;川模型架构;测试组织简图;川模型价值。安全
1 引言网络
随着科技的不断进步,计算机应用已经彻底深刻到咱们整个社会的体系中,人们如今已经没法适应没有软件的世界,您在读这篇文章的时候,您的电脑正在工做、手机正在运行。甚至路上的汽车、信号灯都被软件全副武装。人们对软件的依赖愈来愈大,虽然质量可靠的软件给咱们的工做和生活带来了史无前例的便利,可是质量很差的软件也让咱们付出过惨痛的代价,这让咱们充分认识到软件质量正在牵动着社会的命脉。架构
为了提升软件质量,软件开发人员进行过大量的研究和实践。从最初的技术革新,如编译、调试工具等地研究到各类计算机辅助软件环境,再到软件开发模型的研究。可是这种以技术和方法为重心的研究没有真正达到保证软件质量的目的(可是确实对软件质量的提升作出了贡献)。因此,人们开始认识到只有对软件开发过程的质量加以控制,才有可能大幅度的提升软件质量。所以,软件质量保证也从最初的以技术和方法为重心的模式,转移到以过程管理为重心的实践。并发
软件质量保证的本质是为了确保软件开发过程和结果符合预期要求而创建的一系列活动及其结果评价,其最终目的是缺陷预防,达到用户的实际需求,避免安全风险。软件测试活动是保证软件质量的有力武器,从最初的调试、验证,到如今造成的独立测试体系,无一不体现质量保证的重要性和测试工做的必要性。ide
本文讨论的目的:在现今科技发展的大潮下,为了提升软件质量及工做效率,提出软件测试的川模型。但愿川模型找出一款适合中国国情的软件测试思路和测试模型。工具
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