软件测试系列之软件测试过程模型(四)

回顾往昔:

在软件开发的不断实践过程中,人们积累经验教训,预估未来发展,总结出了很多的开发模型,比较典型的开发模型有,边做边改模型,瀑布模型,快速原型模型、螺旋模型,增量模型,演化模型,喷泉模型,智能模型,混合模型还有RAD模型以及最近比较流行的,基于网络的面向对象的模型——RUP(RationalUnifiedProcess,统一软件开发过程。但是遗憾的是,这些模型中,没有给予测试足够的重视和诠释。所以,才会有后来的软件测试过程模型的诞生,在这些测试模型中,兼顾了软件开发过程,对开发和测试做了很好的融合。

一、简单了解软件测试过程模型

软件测试和软件开发一样,都遵循软件工程原理,遵循管理学原理。测试专家通过实践总结出了很多很好的测试模型。这些模型将测试活动进行了抽象,明确了测试与开发之间的关系,是测试管理的重要参考依据。今天我主要向大家介绍五种测试模型。分别为:V模型,W模型,H模型,X模型和前置测试模型。接下来,让我们一一分析:

二、逐一认识

每一类分别介绍,历史来源,具体原理,有图有真相。也可以说一下它们的不同之处

V模型

原理:V模型是软件开发瀑布模型的变种,主要反映测试活动与分析和设计的关系,从左到右,描述了基本的开发过程和测试行为。V模型的策略既包括低层测试又包括了高层测试,低层测试是为了源代码的正确性,高层测试是为了使整个系统满足用户的需求。

如图所示,图中的箭头表示时间方向,左边下降的是开发过程各阶段,与此相对应的是右边上升的部分,即个测试过程的各个阶段。

它在测试中的地位,就和瀑布模型在开发中的地位一样,是一种最基础的模型,其他模型都是从这个模型演化来的。

价值体现:它非常明确地标明了测试过程中存在的不同级别,强调了在整个软件项目开发中需要经历的若干个测试级别,并与每一个开发级别对应。

局限性:把测试作为编码之后的最后一个活动,需求分析等前期产生的错误直到后期的验收测试才能发现。忽略了测试的对象不应该仅仅包括程序,没有明确指出对需求、设计的测试。言简意赅的说:没有明确说明早期的测试,不能体现“尽早地和不断地进行软件测试”的原则。

W模型

原理:在V模型中增加软件各开发阶段应同步进行的测试,别演化为一种W模型,因为实际上开发是“V”,测试也是与此相并行的“V”。W模型可以说是V模型自然而然的发展。它强调,测试伴随着整个软件开发周期,而且测试的对象不仅仅是层序,需求,功能和设计同样要测试。

价值体现:我们可以认为,W模型,测试与开发是同步进行的,从而有利于今早的发现问题。强调了测试计划等工作的先行和对系统需求和系统设计的测试;

局限性:仍把开发活动看成是从需求开始到编码结束的串行活动,只有上一阶段完成后,才可以开始下一阶段的活动,不能支持迭代,自发性以及变更调整。

H模型

原理:H模型将测试活动从开发流程完全独立出来,使测试流程形成一个完全独立的流程,将测试准备活动与测试执行活动清晰地体现出来。

图中的流程仅仅演示了再整个生产周期中某个层次上的一次测试“微循环”。图中的其他流程可以是任意开发流程。也就是说,只要测试条件成熟了,测试准备活动完成了,测试执行活动就可以进行了。

价值体现:软件测试是一个独立的流程,贯穿于产品的整个生命周期,与其他流程并发的进行。软件测试原则“尽早准备,尽早执行”;强调测试是独立的,只要测试准备完成,就可以执行测试。

局限性:本模型太过于模型化,重点在于理解其中的意义指导实际工作,而模型本身并无太多的可执行的指导意义。

X模型

原理:X模型左边描述的是针对单独程序片段所进行的相互分离的编码和测试,此后,将进行频繁的交接,通过集成最终合成为可执行的程序。这一点在图的右上方得以体现,而且这额可执行程序还需要进行测试,已通过集成测试的成品可以进行封版并提交给用户,也可以作为更大规模和范围内集成的一部分。同时,X模型还定位了探索性测试,如图右下方所示,这是不进行事先计划的特殊类型的测试,例如“我就这么测一下,结果会怎么样”。

价值体现:探索性测试,能够帮助有经验的测试人员在测试计划之外发现更多的软件错误。

局限性:探索性测试可能对测试造成人力、物力和财力的浪费,对测试员的熟练程度要求比较高。

前置测试模型

原理:前置测试模型将开发和测试的声明周期整合在一起,表示了项目声明周期从开始到结束之间的关键行为。它对每一个交付内容进行测试(图中的椭圆框表示了其他一些要测试的对象),在设计阶段进行测试计划和测试设计,让验收测试和技术测试保持相互独立。总之,它是一个将测试和开发紧密结合的模型,该模型提供了轻松的方式,可以使你的项目加快素的。。

价值体现:前置测试能给需要使用测试技术的开发人员、测试人员、项目经理和用户等带来很多不同于传统方法的内在的价值。与以前的方法中很少划分优先级所不同的是,前置测试用较低的成本来及早发现错误,并且充分强调了测试对确保系统的高质量的重要意义。它不仅能节省时间,而且可以减少那些令开发人员十分厌恶的重复工作。

三、总结

在这些模型中,V模型强调了在整个软件项目开发中需要经历的若干个测试级别,但是它没有明确指出应该对软件的需求、设计进行测试,在这一点上,W模型得到了补充。但是W模型和V模型一样没有专门针对测试的流程说明。随着软件测试的不断发展,第三方测试已经独立出来这个时候,H模型就得到了相应的体现,表现为测试独立。X模型和前置测试模型又在此基础上增加了许多不确定的因素处理情况,这就对应了实际情况中,项目经常变更的情况发生。

总而言之,在实际的项目中,我们要合理应用这些模型的优点,比如在W模型下,合理运用H模型的思想进行独立的测试,或者在前置测试模型中,参考X模型的一个程序片段也需要相关的集成测试的理论等,将测试和开发紧密结合,寻找最适合的测试方案。

时间: 2024-10-02 04:12:41

软件测试系列之软件测试过程模型(四)的相关文章

软件测试系列之黑白盒

知识角: 软件分为两部分,一部分是数据,另一部分是程序.数据包括键盘输入,鼠标单击,磁盘文件,打印输出等:程序是指可执行的流程,转换,逻辑和运算.而我们测试最常用的一个方法也是按同样的方式划分进行测试. 一.软件测试的四种方法 软件测试常用的方法有黑盒测试,白盒测试,静态测试,动态测试. 先来简单的了解一下它们各自的含义吧: 黑盒测试 又称功能性测试或行为测试,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试.它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接

软件测试系列之入门篇

一.你知道软件测试有多重要吗? 在国际上,软件测试(软件质量控制)是一件非常重要的工程工作,测试也作为一个非常独立的职业.在IBM.Microsoft等开发大型系统软件公司,很多重要项目的开发测试人员的比例能够达到1:2甚至1:4. 在国内软件测试的地位还不够高,并且大多只停留在软件单元测试.集成测试和功能测试上.软件测试从业人员的数量同实际需求有不小差距,国内软件企业中开发人员与测试人员数量一般为5:1,因此,国内的软件测试产业化还有待开发和深掘. 说到这里不知道你反应是高兴还是失望?但是我却

软件测试系列之了解篇

趣味小故事: Bug词原意臭虫或虫子. [第一个计算机Bug诞生68年]1945年9月,编译器发明者格蕾斯·哈珀正领着她的小组构造"马克二型"计算机.突然,马克二型死机了:哈珀在某出错继电器上发现一只被电死的飞蛾:她将蛾子贴到记事本中并注明"第一个发现虫子实例".从此,计算机错误称为Bug,将发现Bug并纠正的过程叫"Debug"! 一.缺陷 什么是软件缺陷(即bug) 计算机软件或程序中存在的某种破坏正常运行能力的问题.错误,或者隐藏的功能缺陷

软件测试系列--软件测试基础

1.什么是软件测试? **软件测试是一个过程,包含了若干活动,运行软件进行测试只是活动之一 **进行软件测试可以人工方式也可以借助于工具 **进行软件测试可以运行软件也可以不运行软件 **软件测试的目的不仅仅是为了发现错误 2.软件测试的目的? 软件测试的目的有三个,分别是:证明.检测.预防. 证明: (1)获取系统在可接受风险范围内可用的信心; (2)尝试在非正常情况和条件下的功能和特性; (3)保证一个工作产品是完整的并且可用或者可被集成. 检测: (1)发现缺陷.错误和系统不足; (2)定

Android系列之网络(四)----SAX方式解析XML数据

?[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4044170.html 联系方式:[email protected] [系列]Android系列之网络:(持续更新) Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据) Android系列之网络(二)----HTTP请求头与响应头 Androi

Linux Shell系列教程之(四)Shell注释

本文是Linux Shell系列教程的第(四)篇,更多shell教程请看:Linux Shell系列教程 与许多的编程语言一样,Shell中也有注释符号,今天就为大家来介绍下Shell中的注释的语法及用法. Shell中的注释以“#”号开头,所有以“#”号开头的代码都会被解释器所忽略. 比如下面的代码: #!/bin/bash # Author : linuxdaxue.com # Date : 2016-05-15 echo "What is your name?" read PER

Testner创始人sea关于软件测试人才和软件测试培训的访谈

问: sea,记得2017年8月20日在深圳朗山酒店举办的"ivvi时尚手机杯"-Testner第三届全球软件测试高峰论坛在业界引起了非常大的反响,作为一个非赢利为目的的行业组织,投入这么大举办这么大型的活动,是为了宣传自己还是有其他原因? sea: 其实Testner测试圈是非盈利的,是交流软件测试与结交测试朋友的实名制公益平台.Testner团队成员由国内软件测试专家.测试经理.测试工程师组成,为响应国家互联网+号召, 规范软件测试行业, 培养更多软件测试精英,提升软件质量振兴民族

物体的三维识别与6D位姿估计:PPF系列论文介绍(四)

作者:仲夏夜之星 Date:2020-04-14 来源:物体的三维识别与6D位姿估计:PPF系列论文介绍(四) 文章“3D Pose Estimation of Daily ObjectsUsing an RGB-D Camera”2012发表在IEEE/RSJInternational Conference on Intelligent Robots and Systems上,这篇文章对原始点对特征(PPF)作了一个很大的改进. 本文创新点 本文提出了一种利用深度和颜色信息的物体姿态估计算法.

软件测试系列之测试用例(七)

认识测试用例 定义 测试用例(Test Case)是为某个特殊目标而编制的一组测试输入.执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求. 构成 用例ID.用例名称.用例描述.前提条件.结束准则.测试步骤.预期结果.实际结果.判断准则. 重要性 测试用例的设计如此重要,原因在于完全的测试是不可能的,对任何程序的测试必定是不完全的.所以,最显然的测试策略就是努力使测试尽可能完全.下面是更为详尽的测试用例的好处: 1.在开始实施测试之前设计好测试用例,可以避免盲目测试并提高测试效