软件测试的模型是软件评测师考试大纲规定考察的知识点,一般在上午场出题。软件测试的模型通常是对应着开发模型演变的,在最新版的软件评测师教程中一共涉及到V模型、W模型、H模型和敏捷测试模型共计四种模型,下面就这四种模型进行总结学习。

一、V模型

软件测试的V模型对应于开发的瀑布模型。瀑布模型将软件的开发明确地划分为需求分析、概要设计、详细设计、编码和测试等阶段,需要在完成前一阶段的工作后才能进入下一阶段,因此测试成了一个阶段性的工作,是最为典型的验证&确认活动。

在V模型中,测试活动对应于瀑布模型的每个工程阶段,即单元测试对应编码、集成测试对应详细设计、系统测试对应概要设计、验收/交付测试对应需求分析。传统的测试划分就是因此而产生的,这是V模型的重要贡献。

V模型的局限性:V模型把测试标定为软件工程的一个阶段性活动,而且是编码结束之后才开始的活动,启动时间太晚,不符合尽早开始测试的原则。这个模型不仅会让人误解测试在软件工程活动中的作用,而且会造成软件缺陷发现的延迟,越是早期的活动引入的缺陷却越晚被发现,这将带来缺陷修复的巨大代价。

二、W模型

W模型是对V模型的一个重要改进,充分体现了尽早开展测试的原则,并将V模型中以发现缺陷为目标上升为保证软件质量为目标。W模型实际上是两个V的叠加,一个V描述开发过程,另外一个V描述测试过程。开发过程的下降边依然是需求分析、概要设计、详细设计和编码,测试过程的上升边也依然是单元测试、集成测试、系统测试以及验收/交付测试,但测试的起始时机不再是编码结束之后,而是从需求分析时开始,且与开发的每一个阶段活动同步进行,通过适时的评审,可以尽早发现和处理软件过程中的缺陷,降低缺陷修复的代价,保障产品各生产阶段的质量,从而更充分地保证最终软件的质量。显然W模型优于V模型,它体现了更多的软件测试原则。W模型中测试分布于软件过程的每一个阶段,与开发的同步可以第一时间生成测试的各类文档,从而加快后期测试的进度。同时W模型也表明,测试的对象不仅仅只是程序,还包括各个阶段的文档和数据,因此对软件的验证和确认活动事实上也很早就开始了。

W模型的局限性:

虽然W模型比V模型完善了许多,但其局限性仍然存在,它们都高度依赖于开发的瀑布模型,活动具有明显的串行特征。事实上,即使是采用瀑布模型开发的软件,也不一定是如此清晰的串行化,而是存在大量的交叉活动,更不用说采用快速开发或敏捷开发方法的软件了,因此W模型不能适用于所有的软件项目。


三、H模型

H模型把测试活动从软件开发过程中独立出来,在软件过程的任何一个时间点上,只要测试条件满足即开展测试。H模型也更充分地反映了每一个测试的完整活动,包括测试准备及测试执行。H模型比W模型更好的地方是能够兼顾测试的效率和灵活性,适合于各种规模及类型的软件项目。


四、敏捷测试模型

敏捷测试源于敏捷开发。当前敏捷开发是一种比较流行的方法,该方法以用户的需求进化为核心,以迭代、循序渐进的方式进行软件开发,主张简单、拥抱变化、递增、快速反馈等原则。敏捷测试是敏捷开发的组成部分,需要与开发流程良好融合。敏捷测试在整个敏捷开发过程中,需要与项目的其他人员甚至用户保持紧密协作,时刻关注需求变化并实施测试,以体现测试的时效性和适应性,这对测试人员有比较高的能力要求。


上面这些就是新版教程中提到的四种软件测试模型,在以后的考试中是有可能出题的,主要就是考察V模型中左边各个开发阶段和右边各个测试阶段的对应关系,另外有可能考察的就是对各个模型的特点的表述判断是否正确。