软件测试&软件工程

软件测试与软件工程息息相关,软件测试是软件工程组成中不可或缺的一部分。
测试模型
学习目标

掌握V模型(重点)
掌握W(双V)模型(重点)
了解H模型
随着测试过程的管理和发展,测试人员通过大量的实践,从而总结出了不少测试模型,如常见的V模型,W模型,H模型等。这些模型与开发紧密结合,对测试活动进行了抽象,成为了测试过程管理的重要参考依据。

一、认识V模型
V模型是最具有代表意义的测试模型,最早是由Paul Rook在20世纪80年代后期提出,由英国国家计算机中心文献中发布,旨在改进软件开发的效率和效果;
V模型推出之前,人们通常把测试过程作为在需求分析、概要设计、详细设计、编码全部完成之后的一个阶段,V模型在这个时候推出,就是为了改变之前行业的普遍认识。
V模型本身是软件开发中瀑布模型的变种,它反映了测试活动与分析设计的关系。
V模型标明了测试过程中本身存在的不同阶段,从左到右,描述了开发过程和测试过程间的阶段对应关系。
V模型示意图:模型每个阶段含义
软件测试&软件工程
1.1 V模型 每个阶段含义
· 需求分析
用户需求、业务需求、需求规格说明书
·设计
开发人员的系统架构设计、UI设计师对用户可见页面的设计
·编码
实现上面的设计
·单元测试
检测代码的开发是否符合详细设计的要求。
·集成测试
检测此前测试过的各组成部分是否能完好地结合到一起。
·系统测试
拿到产品后,检测一下最基本的功能和业务流程是否能走通,检测产品的安全性和性能等方面的测试
·验收测试
检测产品是否符合最终用户的需求
迭代

1.2V模型的优缺点
优点:
(1)测试V模型即包含了底层测试又包含了高层测试; 底层测试:检验源代码质量的测试,如:单元测试; 高层测试:检验整个系统的需要,如:系统测试;
(2)V模型清楚地标识出了软件开发的阶段。
(3)它采用自顶向下逐步求精的方式把整个开发过程分成不同的阶段,每个阶段的工作都很明确,因此便于控制开发过程。

缺点:
(1)V模型一大缺点正是它自身的顺序性所导致的。
(2)到了测试阶段,程序已经完成,错误已经产生,很多前期的错误一直到测试阶段才发现,甚至无法发现,往往无从修改了。
(3)当需求变更时将会导致阶段反复,而且都要重复需求、设计、编码、测试等过程,返工量非常大,模型灵活性比较低。

二、认识W模型
IEEE std1012-1998《软件验证和确认(V&V)》的原则中提出了在软件的需求和设计阶段也应有测试活动, 并且提出了相应的原则;
W模型由Evolutif公司提出:开发一个V,测试一个V,组合的W模型;
测试伴随着整个软件开发周期,并且测试的对象不仅仅是程序,需求和设计同样要测试。
W模型示意图
模型的优缺点
软件测试&软件工程
2.1w模型的优缺点
优点:
(1)开发强调测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求和概要设计同样要测试;
(2)更早地接入测试,可以发现开发初期的缺陷,那么可以用更加低的成本进行缺陷修复。
(3)同样是分阶段的工作,便于控制项目过程。

缺点:
(1)对于当前很多项目,在执行的过程中根本不产生文档,那么W模型基本无法适用;
(2)使用起来技术复杂度很高,对于需求和设计的测试要求很高,实践起来困难。
软件测试&软件工程