软件测试模型
与开发模型一样,软件测试根据不同的被测对象、测试背景、被测对象质量要求、项目进度要求等,可以采用不同的测试模型实施测试活动,来指导软件测试活动安排。
业界常见模型:
V模型
W模型(双V模型)
X模型
H模型
敏捷模型
V模型
V模型是所有软件测试模型中最为大家熟知的一种模型。它是从瀑布研发模型演变而来的测试模型,如图所示。
V模型V模型流程是从上至下,从左到右
①测试工程师在研发人员编程过程中,对其生成的代码函数做单元测试
②单元测试通过后进行集成测试
③集成测试通过后做系统测试、验收测试
V模型缺点:项目早期的缺陷,在后期才能发现
W模型(双V模型)
W模型是在V模型的基础上演变而来的,一般又称为双V模型。在V模型中,研发活动没有完成、无任何输出物时,测试工程师无法开展测试工作,相对而言,测试活动严重滞后。为了解决V模型的缺点,W模型提出了测试活动与研发活动并行的概念,并且在生产流程演进过程中,增加了验证与确认活动。
W模型(双V模型)W模型从用户需求开始,研发团队根据用户需求进行需求分析、概要设计、详细设计、编码开发等活动,测试团队则根据用户需求进行验收测试、系统测试、集成测试及单元测试设计。测试工作与研发活动分离,实现了并行操作。测试活动伴随着整个研发过程,而不仅在研发有成果输出后才参与。
W模型强调了测试活动不仅仅包括研发活动所产生的软件源代码,还考虑各种文档,如需求文档、概要设计文档、详细设计文档、代码等。
W模型要求测试活动从用户需求阶段就介入,有利于尽早地发现问题,在模型实施过程中,时刻进行确认(validation)、验证(verification)活动。
X模型
X模型产生的背景亦与V模型有关,V模型的缺点是测试活动滞后于研发活动,无法尽早地开展测试活动。而X模型与W模型一样,提出的初衷都是解决V模型的缺点。
X模型的基本思想是由Marick提出的, Robin F.Goldsmith进行了完善。X模型如图所示。
X模型X模型左边表明针对单独的程序片段n进行独立的编码和测试活动,以此为基本过程,不断迭代,通过集成活动最终成为可执行程序,然后再对这些可执行程序进行测试。通过集成测试的成品可以进行封装并提交给系统测试环节或直接给用户。多条并行的曲线表示变更可以在各个部分发生。
X模型提出了探索性测试的概念。探索性测试与常规的测试方法不同,无须事先制定测试计划或设计,有经验的测试工程师可根据自己的思维活动及对被测对象的理解,在测试计划之外发现更多的软件错误。但探索性测试通常情况下仅作为其他测试方法的补充,因其消耗测试资源较多,且受制于测试工程师的经验,所以不能成为独立的测试方法。
H模型
H模型将测试活动与其他研发流程独立,测试活动分为测试准备与测试执行两个部分,便于测试设计与测试执行活动定义。测试准备活动包括测试需求分析、测试计划、测试设计、测试编码、测试验证等,测试执行包括测试运行、测试报告、测试结果分析、确认回归测试等。
H型模型H模型与W模型一样,揭示了软件测试活动应该是一个独立的软件生产流程,贯穿整个软件生命周期,测试活动应该尽早准备、尽早执行,当测试准备工作完成后,一旦到达测试就绪点,就可开展测试执行活动,不会受制于研发活动。
敏捷测试模型
强调从客户角度进行测试;
重点关注迭代测试新功能,不再强调测试阶段;
尽早测试,不间断测试,具备条件即测试;
强调持续反馈;
预防缺陷重于发现缺陷。
敏捷测试与传统测试的区别
传统测试
测试是质量的最后保护者
严格的变更管理
预先的计划和细节的准备
重量级文档
各阶段测试严格的入口和出口标准
更多在回归测试时进行重量级的自动化测试
严格依赖流程执行
测试团队和开发团队是相对独立的
敏捷测试
开发和测试人员是紧密合作,大家都有责任对软件负责;
变更是可接受的,拥抱变更
计划随着进展时常调整
只需要绝对必要的文档
各迭代之间已经没有明显的入口和出口标准
所有阶段都需要自动测试,每个人都需要做,是项目集成的一部分;
流程不再需要严格执行
团队合作是无缝隙合作
网友评论