今天要讲的就是我们软件测试W/H/X模型。

测试从用户需求开始,贯穿整个软件开发过程,与软件开发阶段同步进行,测试的内容不仅是代码,也包括需求、分析、设计、部署等阶段。

强调的测试与开发是同步的,跟我们之前讲的V模型就不太一样了。V模型是你先开发完成才能够去进行测试,也就是你把代码写完我才能去测试。

这里就会讲到我们非常重要的一个东西,叫做测试对象。

我们所谓的软件测试对象——软件。

测试对象软件组成包括:数据、文档、代码(软件)

我现在用的World办公软件或者你现在用的微信QQ底层都是由代码形成的。除了测试代码,我们还要去检查他给出的这些文档是不是正确的,比如说明文档、帮助文档以及其他的一些参考文档也是我们测试范围之内。

W模型是两个V组成的一个W。

左边这个V其实是一个软件开发的过程,需求分析-概要设计-详细设计-编码。编码它不是一个人编码,我们是有一个开发部门,每个人负责一个模块(登录、注册、购物车、搜索……)然后把所有的编码集成一个完整的系统,再确认-验收。这就是一个系统软件开发的过程。

右边这个V就是我们对软件进行测试的一个过程,两个V组成了一个W,所以我们把它叫做软件测试W模型。

他们是同时进行的,开发在做需求分析的时候,我们测试人员就把需求进行测试,检查文档设计是否合理,评估不合理就修改。相对应的开发在做一系列事情时候测试也会做相对应的一些事情。

代码写出来之后测试就可以去进行代码的测试,集成模块之后就对集成的模块进行接口的测试。整个系统出来之后就可以去做系统测试。每个阶段都是一一对应的关系。

所以说在这个W模型中间,它体现的就是除了我们去测这个代码跟软件之后呢,我们也去测试了这些文档(需求、分析、设计文档)。从而我们可以越早介入的去发现问题,软件的稳定程度就会越高。

 

W模型

进步从需求开始便引入测试,有利于尽早发现问题,即时采取应对措施,这将显著减少测试的总体时间。加快项目进度。保障软件的质量。

局限性与V模型一样仍然是瀑布模型的变种,无法进行迭代、自发性和变更处理。V模型与W模型适用于瀑布模型,很难在现在更受欢迎的迭代式开发上应用,我们需要其他更加灵活的的测试模型,以便更好地进行迭代和应对变更,比如H模型和X模型。

相对于V模型来说,W模型有了很大的改进。但是没有办法去适应快速迭代,需求快速变更。

前面刚开始的需求确定了,概要设计、详细设计都测试完了,然后我们到编码设计的时候,客户突然说要加一个需求,或者要修改一个需求。W模型就没有一个很好的适应方式。(对于需求变更属于软件开发中间最常见的情况)

所以在发现W模型局限性之后又有了进一步的模型。

H模型

H模型中,软件的测试活动从开发中独立出来,形成一个独立的流程,贯穿整个软件周期

H模型中每个测试活动的主要流程如下:

1.随软件周期开始,进入测试准备阶段(用例、文档、代码等)。
2.软件开发活动持续为软件测试提供准备材料,直到达到测试就绪点。
3.测试执行。

我们测试的活动跟开发也好跟产品也好,是完全平行的一个进展。或者说测试是完全独立的一个流程。

比如说开发最前面,我们确定了产品问题定义以及规划之后,分析需求,开发就要去进行设计去进行编码。按照传统的瀑布模型,我们前期都是在闲的,开发没有把编码完成,我们测试不了。

但是像H模型,我们拿到需求之后,我们测试人员并不是闲着的。开发在做系统设计、软件编程的时候,软件测试人员也同时在做其他事情。准备测试要开始的一系列流程跟活动。因为我们是一个独立流程,我们会随时准备,只要你开发什么时候编码好了,测试随时可以介入。哪一个节点完成了,测试人员就可以随时进行测试工作的开展。

很好的去弥补了W模型无法进行迭代、自发性和变更处理问题。

优点揭露了软件测试是可以和开发并行的。测试活动独立,有较强的灵活性。可以尽早进行测试。整个软件测试活动可以分阶段,分次序执行和迭代。

 

局限性模型的灵活性要求清晰的管理制度。要求测试工程师能准确管理测试活动和判断测试就绪点。H模型对团队协作要求高。

测试与开发是完全可以并行的,两个是可以同时工作的。我们测试人员都在写用例、需求分析、准备脚本,准备我们的测试框架等等。而且它可以尽早的介入测试,并且是可以分阶段、分次序执行和迭代的方式。

比如说前期,V模型是把整个系统完整之后,再去做测试,W模型是编码完成之后你可以去做单元测试,集成之后去做集成测试……

H模型不需要等开发把所有东西做完,比如张三把登录注册功能做好了,就可以集成一个版本出来,那我们测试人员就测试登录注册功能。李四把搜索功能做完了,集成进来,就又多了一个模块,我们就去测试现有的几个模块。

这样就可以很好的去适应迭代以及需求变更。最大的一个好处就是可以非常快速的去进行测试。

H模型其实也有一定的局限性。

1. 团队协作能力要求高。

2. 对测试工程师能力要求高。(比如说你前期需要做的一些事情,节点做快速的判断)

好了比较常用的就是我们讲的这三种模型(V模型W模型H模型),前面讲到V模型是外包公司比较喜欢用的,中型的自研公司大都用W模型,互联网产品微信、滴滴更多的使用是H模型。(因为比如滴滴最开始的版本就打车,后面陆续出了专车、拼车、顺风车,在每一个版本不断迭代了新的需求新的功能,H模型就很契合)

最后还有一个X模型,现在企业中实际应用很少,我们了解即可,作为扩展。

X模型提出先对程序片段进行独立的测试和编码,再进行频繁的交换,通过集成形成可执行程序(左边部分)。集成的可执行程序进行集成测试,通过集成测试的程序可能成为更大范围集成的一部分,也可能(形成最终产品时)封版提交给客户(右上部分)。另外,可以对集成的程序进行测试计划外的探索性测试(右下部分)

现在企业用得最多的V模型/W模型/H模型需要做一个深刻的理解。第一个流程图要能够画出来,不是说画一个V画一个W,要把它的每一个阶段,以及每个阶段之间的关系,图上面的箭头指向其实就是关系。(记在心里并能够画出来,笔试经常遇到)

 

划重点:

软件测试模型:V模型/W模型/H模型优缺点,并画出来。

测试对象:数据、文档、代码(软件)我们不仅仅只测试代码。

生命周期:包括了哪几个阶段?

面试题:

软件的生命周期包括哪几个阶段?(背诵,面试高频)

软件生命周期包括问题定义及规划、需求分析、系统设计、软件编程、软件测试、软件维护等阶段。

软件的生命周期输出什么产物?

软件的生命周期由哪一些人来参与?哪些阶段由哪些人负责?

详细阐述软件编码、软件测试需要去做什么事情?

产物的话也就是说每一个阶段输出的内容,那么你就要清楚每一个阶段要做的事情,要输出什么产物(如文档)

动手执行起来。参考我昨天的文章《软件的生命周期(软件工程概述)》


如果你通过努力成功进入到了心仪的公司,一定不要懈怠放松,职场成长和新技术学习一样,不进则退。

1.免费领取一份325页软件测试工程师面试宝典文档资料。

2.软件测试学习路线以及相对应的视频学习教程免费分享!

更多 | 学习资源 | 职业规划 | 等,欢迎私信留言。

心怀感激,对帮助过自己的人,给予真诚的回馈,记得把阿沐推给你的朋友。

点赞+在看+收藏,这个对我很重要。

面试官:你说说软件测试WHX模型(图解)相关推荐

  1. 面试官:Netty的线程模型可不是Reactor这么简单

    笔者看来Netty的内核主要包括如下图三个部分: 其各个核心模块主要的职责如下: 内存管理 主要提高高效的内存管理,包含内存分配,内存回收. 网通通道 复制网络通信,例如实现对NIO.OIO等底层JA ...

  2. 【你好面试官】008 Java内存模型指volatile底层原理详解、多处理器原子操作实现原理

    微信公众号:你好面试官 这里没有碎片化的知识,只有完整的知识体系. 专注于系统全面的知识点讲解,面试题目解析; 如果你觉得文章对你有帮助,欢迎关注.分享.赞赏. ###前言 二蛋几天没有收到面试通知, ...

  3. 面试官吐槽:“软件测试员就是不行!”网友:我能把你面哭了!——软件测试笔试面试题目完全汇总

    软件测试笔试面试题目完全汇总 软件缺陷: 1)软件未实现产品说明书要求的功能 2)软件出现了产品说明书指明不应该出现的错误 3)软件实现了产品说明书未提到的功能 4)软件未实现产品说明书虽未明确提及但 ...

  4. 什么?面试官问我Java内存模型!这不得给我加薪?

    内存模型的基础 通信 线程之间以何种机制来交换信息 共享内存 隐式通信 消息传递 显示通信 同步 程序中用于控制不同线程间操作,发生的相对顺序的机制 共享内存 显式同步 消息传递 隐式同步 Java线 ...

  5. 一个volatile跟面试官扯了半个小时

    前言 volatile 应该算是Java 后端面试的必考题,因为多线程编程基本绕不开它,很适合作为并发编程的入门题. 开场 面试官:你先自我介绍一下吧! 安琪拉:   我是安琪拉,草丛三婊之一,最强中 ...

  6. 2020年招聘算法岗,面试官最看重哪些新技术能力?

    [导读]合格的算法工程师真正应该具备什么技能?在面试时,面试官又会如何验证你具备这些新技能?毕业仅一年,相继拿下头条.阿里.腾讯等offer的本文作者,为你绘制了一幅面试技能雷达图. 1 ◆◆ 哲学第 ...

  7. 30 张图解 | 高频面试知识点总结:面试官问我高并发服务模型哪家强?

       面试中经常会被问到高性能服务模型选择对比,以及如何提高服务性能和处理能力,这其中涉及操作系统软件和计算机硬件知识,其实都是在考察候选人的基础知识掌握程度,但如果没准备的话容易一头雾水,这次带大家 ...

  8. 30 张图解 | 面试官问我高并发服务模型哪家强?

    面试中经常会被问到高性能服务模型选择对比,以及如何提高服务性能和处理能力,这其中涉及操作系统软件和计算机硬件知识,其实都是在考察候选人的基础知识掌握程度,但如果没准备的话容易一头雾水,这次带大家从头到 ...

  9. 对于应届生应聘软件测试岗,面试官会问什么?

    前言 对于我们刚刚经过软件测试培训或者是应聘软件测试岗位的应届生,面试官一般会问哪些问题呢?我今天做了一个软件测试岗位面试题小结,希望对你有所帮助! 微信点赞功能测试用例? ①点赞和取消点赞功能 ②点 ...

最新文章

  1. pc端,自适应屏幕分辨率
  2. 吴恩达邀请9位AI大牛畅想2020:李开复看好医疗教育,LeCun强调自监督学习
  3. cuda 9.0 安装torch 0.4_PyTorch geometric 安装中libcusparse.so.10 error的解决策略
  4. 如何在MATLAB中把变量填到Word中,matlab数据写入现有excel表格-如何将matlab中变量写入excel...
  5. Java 批量插入数据到数据库(MySQL)中
  6. html5 怎么写动态图形设计,如何用SVG制作酷炫动态图标?(代码实例)
  7. mysql group by 聚合_浅析MySQL使用 GROUP BY 分组聚合与细分聚合
  8. 微信小程序template模板使用
  9. 免费好用的判定节假日API来了
  10. 【Deep Learning】Transformers Assemble(PART I)
  11. 最速下降法(梯度下降法)python实现
  12. 微信开发常用技巧(3)-微信ios返回为静态返回,防止微信做缓存
  13. 书法练习轨迹ReadMe
  14. 咸鱼硬件—Micropython快速指南
  15. SEO菜鸟之笨鸟先飞
  16. 电商精细化运营的五大关键指标和三个关键思路——笔记
  17. (dpdk f-stack) dpdk-网卡类型选择
  18. 我们要如何给自己的笔记本买内存条??
  19. hta 窗口,如何获取HTA窗口的大小?
  20. java 开发微信红包

热门文章

  1. 图像分割二十年,盘点影响力最大的10篇论文(含论文和源代码)
  2. python 最新 毕业设计 选题推荐
  3. python turtle画房子代码里面的窗子,如何用python画房子_用python画一个小房子
  4. 理解微分方程和线性代数的联系
  5. hive olap 数据仓库_数据仓库:OLTP与OLAP查询
  6. 21年新版kali安装
  7. 概要设计和详细设计说明书的区别
  8. 上海一级计算机试卷,上海计算机一级考试试题及答案
  9. 有些朋友没看清楚,我在这里再特意强调一下
  10. 知乎高赞:拼多多和国家电网,选哪个?