各位软件领域的精英们,今天小编邀请你继续深入学习《软件测试架构实践与精准测试》。
《软件测试架构实践与精准测试》是作者李龙(安畅检测首席技术专家)基于软件测试“川模型”的著作。
本期连载《第一章 站在巨人的肩膀上》之<软件开发、测试的现状分析>。
作者简介-李龙
中国民主同盟盟员;
灾备联盟信创工委会主任;;
山东省人工智能协会信创测评专委会副主任;
山东省装备制造业协会职业认证专委会主任;
安畅检测(齐鲁物联网测试中心)首席技术专家;
软件测试"川模型”创始人、全国首发《信创产品测评 通用要求》标准首席编制人,至今拥有20余项专利、出版8部图书。
前节回顾
目录及前言:
本书写的是软件测试新方法——川模型测试方法,写的是如何用一套新的测试模型帮助中小企业搭建一套完善的测试体系和有竞争力的测试部门。
第一章 站在巨人的肩膀上
很高兴您选择了本书,在本章节,我将站在巨人的肩上(首先真心感谢他们的贡献,没有他们,成就不了现在的我们)向大家介绍一款新的软件测试模型“川模型”,当然,该模型还在初步研究阶段,我的意图是给所有的读者和朋友一些实际测试工作方式的启迪,甚至通过本章节的内容,结实更多的有志于为我们的软件测试事业贡献力量的朋友,一起完善一套更符合现在科技发展大潮下的测试思路。该模型是我在2014年首次提出,并在2016年发表了“对软件测试川模型的初步研究”的论文,但是我想说的是,经过这几年的发展,他已经不是一家之言,也在多家软件企业做过实践与完善,套用软件领域比较流行的一个词,就是变得“开源共享”了,它不再属于任何人或机构,而是属于所有人,人人都可以完善和修改。
之所以叫川模型,其实主要是因为这个模型分为了三条执行流程,他们相互配合交互,正如中文的“川”字而得名。该模型的中心思想是我一直提倡的“以测试者引导开发,以文档化把控质量”的测试实施理念,希望借助这个模型与这个测试理念,为您的测试工作带来帮助,提高测试效率和软件质量。
1 软件开发、测试的现状分析
随着科技的不断进步,计算机应用已经完全深入到我们整个社会的体系中,人们现在已经无法适应没有软件的世界,您在读本书的时候,您的电脑正在工作、手机正在运行。甚至路上的汽车、信号灯都被软件全副武装。人们对软件的依赖越来越大,虽然质量可靠的软件给我们的工作和生活带来了前所未有的便利,但是质量不好的软件也让我们付出过惨痛的代价,这让我们充分认识到软件质量正在牵动着社会的命脉。
为了提高软件质量,软件开发人员进行过大量的研究和实践。从最初的技术革新,如编译、调试工具等地研究到各种计算机辅助软件环境,再到软件开发模型的研究。但是这种以技术和方法为重心的研究没有真正达到保证软件质量的目的(但是确实对软件质量的提高做出了贡献)。所以,人们开始认识到只有对软件开发过程的质量加以控制,才有可能大幅度的提高软件质量。因此,软件质量保证也从最初的以技术和方法为重心的模式,转移到以过程管理为重心的实践。
软件质量保证的本质是为了确保软件开发过程和结果符合预期要求而建立的一系列活动及其结果评价,其最终目的是缺陷预防,达到用户的实际需求,避免安全风险。软件测试活动是保证软件质量的有力武器,从最初的调试、验证,到现在形成的独立测试体系,无一不体现质量保证的重要性和测试工作的必要性。
目前主流的软件开发模型有:螺旋模型、增量模型、渐进模型、快速软件开发(RAD)以及Rational统一过程(RUP)等,这些模型对于软件开发过程具有很好的指导作用,但是这些模型并没有充分强调测试的价值,也没有给测试以足够的重视,利用这些模型不能更好地指导测试实践。因此,软件测试模型应运而生,它能够系统的有计划的指导测试与研发的一系列活动,对软件质量的提高有着重要的作用。目前常见的软件测试模型有V模型、W模型、H模型、X模型、前置测试模型等。
这些测试模型都在一定程度上完善和发展了软件的测试体系,但是它们仍然存在着或多或少的问题,还没有充分把测试对质量保证的能力发挥出来。下面分析一下几款主流测试模型的优劣情况。
1.1 V模型的优劣分析
V模型强调软件开发的协作和速度,反映测试活动和分析设计关系,将软件实现和验证有机结合起来;强调了在整个软件项目开发中需要经历的若干测试级别,并与开发级别对应。但是,没有体现“尽早地、不断地进行软件测试”的原则;把测试作为编码之后的最后一个活动,项目前期产生的错误直到后期才能测试发现;没有明确指出对需求、设计的测试。
1.2 W模型的优劣分析
W模型强调了测试计划等工作的先行和对系统需求和系统设计的测试;在整个软件开发周期中,测试与开发并行进行,有利于尽早发现问题;提出了测试的对象包括程序、需求、设计等内容;及时了解项目的测试风险,及早制定应对方案,加快项目进度。但是,它没有对测试规程进行说明,同时软件开发和测试保持着线性的前后关系,无法支持迭代、自发性以及需求变更调整等经常面临的问题。
1.3 H模型的优劣分析
在H模型中,软件测试活动完全独立,贯穿于整个软件周期,与其他流程并发进行,某个测试点准备就绪时,就可以从测试准备阶段进行到测试执行阶段;提出了软件测试不仅仅指测试的执行,还包括很多其他的活动;测试是根据被测物的不同而分层次进行,不同层次的测试活动可以是按照某个次序先后进行的,但也可能是反复的。
1.4 X模型的优劣分析
X模型要求对每一个程序片段都进行单元测试,但没能提供是否要跳过单元测试的判断准则;多根并行的曲线代表着变更可以在各个部分发生,提高了迭代效率;它还定义了探索性测试,这一方式能帮助有经验的测试人员在测试计划之外发现更多的软件错误,但对测试人员的能力要求比较高。
1.5 前置测试模型的优劣分析
该模型将开发和测试的生命周期整合在一起,标识了项目生命周期从开始到结束之间的关键行为;明确提出了每一个交付的开发结果都必须通过一定的方式进行测试;它还定义了“开发基于需求的测试用例”以及“定义验收标准”,让验收测试和技术测试保持相互独立。
以上模型都有其优劣,但总体来说,都没有真正的把测试对质量的保障意义或时机把控好,大部分模型中,测试只是软件开发过程的一部分,没有明确独立成一个体系,虽然H等模型把测试对产品质量保证的地位提升了不少,但是仍然缺少对测试规程、资料等重要性的体现。
下期预告:
第一章 站在巨人的肩上
之<有关软件测试模型的调查结果>