写点什么

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

作者:程序员阿沐
  • 2021 年 11 月 11 日
  • 本文字数:2798 字

    阅读完需:约 9 分钟

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

今天要讲的就是我们软件测试 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 模型优缺点,并画出来。

 

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

 

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

 

面试题:

 

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

 

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

 

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

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

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

 

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

 

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



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

 

公众号:程序员阿沐

发布于: 17 小时前阅读数: 5
用户头像

陪你学习成长,助你升职加薪! 2021.01.19 加入

公众号:程序员阿沐,领取资料

评论

发布
暂无评论
面试官:你说说软件测试WHX模型(图解)