《软件测试技术实战 设计、工具及管理》联载-2

简介: 《软件测试技术实战 设计、工具及管理》联载-2

1.1.3  软件工程模型


讨论软件测试学,不得不涉及软件工程模型,因为软件测试学与软件工程学的发展是依依相关、相辅相成的。根据目前比较先进的软件测试理念,软件测试应该贯穿于软件工程的整个过程中。下面介绍几种软件工程模型。


1.瀑布模型


image.png

1-6  瀑布模型


1-6为瀑布模型。这个模型是最经典的软件工程模型,包括“计划”->“需求分析”->“设计”->“编码[J1] ->“测试”->“运行维护”这几个阶段。


但是,这个模型存在比较严重的缺点。


1)不可反复及不适用于需求变更比较频繁的情况。由于瀑布模型从业务建模到运行维护一脉相承,不可以反复。而现代软件项目中,需求变更是无处不在的:“唯一不变的是需求变更”。若运用这种模型,只要项目需求发生变化,就要把原有的设计打翻,重新进行系统分析,概要设计,详细设计等。


2用户很难在项目初期了解项目状态:由于用户在项目初期很难提出明确的需求,而利用瀑布模型只有到编码结束,软件测试工程师才可介入软件测试,客户才可以看到是否是他们需要的产品,在此之前这些产品他们不完全了解,有时需要补充,有时客户也有可能推翻他们原本的需求,提出新的需求,这样往往会给客户方、开发方带来很多麻烦。


2.迭代模型和螺旋模型

       1-7为迭代模型。瀑布模型和迭代模型往往在概念上区别不明显。事实上,这两个模型在思想本质上是一致的。它将客户的需求按照用户的重要等级和模块自身的等级进行安排,从最开始进行分析、设计、编码、测试,然后再进入下一轮迭代。用户只要在每一轮结束后,就可以看到产品的一些雏形,从而可以进行需求变更和提出下一轮建议。该模型初期开发工作比较少,用户又可以及时提出下一轮更详细的需求和变更,所以这样的模型往往利于软件公司产品的研发。这类模型有著名的RUP模型、快速开发模型以及现在比较流行的敏捷开发等,它们都遵循迭代的思想。

image.png

1-7 迭代模型


 

 

扩展阅读:增量开发与迭代开发


微信图片_20230211203555.jpg

微信图片_20230211203601.jpg


        增量开发

       迭代开发

注:本书中扩展阅读大部分来自于百度百科,请见参考文献【21】。


1.1.4  软件测试模型


1V模型

1-8所示为V模型测试。

image.png



1-8  V模型测试


  •  单元测试相对于编码进行,这一步往往由开发工程师执行。
  •  集成测试相对于详细设计,将模块以由上到下、由下到上或混合方式进行逐步集成。测试软件模块与模块、类与类之间的关联性。
  •  系统测试相对于概要设计,软件测试工程师站在整体的立场上对系统进行全面的软件测试工作。
  •  验收测试是用户对产品进行的测试,一般分为Alpha测试和Beta测试。验收测试往往由系统维护人员或者用户来完成,需要完全站在用户的立场上进行测试,测试环境也要尽可能与用户的实际环境保持一致,大多数时候,需要到用户现场去进行验收测试工作。


2W模型

1-9所示为W模型测试。W模型其实是V模型的变种,它提倡的主要思想是软件前置测试理念(即软件测试需要贯穿软件研发的始终)。所以,W模型又称双V模型或前置模型。在需求、设计和编码阶段对产生的工件进行文档评审,一个目的是提出自己的建议和意见,另外一个目的是尽可能理解产品的需求和实现方式。使用前置软件测试法,Bug在软件前期就可以发现,从而降低软件开发的成本。

image.png


1-9 W模型测试


3X模型

1-10X模型。X模型将软件系统分为若干模块,对每个模块进行单元测试、集成测试以及系统测试,然后统一对模块进行集成测试。事实上,这里已经提出了“探索式软件测试”的概念,在本书第3章会详细介绍探索式测试。

image.png


1-10  X模型测试


顾翔凡言:

在正确的道路上作自己擅于做得事,大方向把握好,不要过于纠结,就可以了。

目录
相关文章
|
Kubernetes 负载均衡 API
kubernetes技术分享-可用于企业内部培训
kubernetes技术分享-可用于企业内部培训
|
8月前
|
机器学习/深度学习 弹性计算 人工智能
阿里云服务器ECS架构区别及选择参考:X86计算、ARM计算等架构介绍
在我们选购阿里云服务器的时候,云服务器架构有X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器、高性能计算可选,有的用户并不清楚他们之间有何区别,本文主要简单介绍下这些架构各自的主要性能及适用场景,以便大家了解不同类型的架构有何不同,主要特点及适用场景有哪些。
1178 10
|
安全 物联网 数据安全/隐私保护
ensp中PPPOE (点对点协议)原理和配置命令
ensp中PPPOE (点对点协议)原理和配置命令
489 0
|
11月前
|
机器学习/深度学习 数据采集 人工智能
揭开大模型幻觉之谜:深入剖析数据偏差与模型局限性如何联手制造假象,并提供代码实例助你洞悉真相
【10月更文挑战第2天】近年来,大规模预训练模型(大模型)在自然语言处理和计算机视觉等领域取得卓越成绩,但也存在“大模型幻觉”现象,即高准确率并不反映真实理解能力。这主要由数据偏差和模型局限性导致。通过平衡数据集和引入正则化技术可部分缓解该问题,但仍需学界和业界共同努力。
270 4
|
存储 安全 Ubuntu
Linux dump命令教程
绍了Linuxdump命令的功能,包括用于备份整个文件系统的全备份和增量备份,以及如何在不同Linux发行版中安装和使用dump命令。
388 16
|
机器学习/深度学习 人工智能 自然语言处理
【人工智能】自然语言处理(NLP)的突破,关注NLP在机器翻译、情感分析、聊天机器人等方面的最新研究成果和应用案例。
自然语言处理(NLP)作为人工智能的一个重要分支,近年来取得了显著的突破,特别在机器翻译、情感分析、聊天机器人等领域取得了显著的研究成果和广泛的应用。以下是对这些领域最新研究成果和应用案例的概述,并附带相应的代码实例。
832 1
|
安全 5G 网络安全
什么是 Wi-Fi 热点?
【8月更文挑战第24天】
2563 0
PADS Layout进行PCB设计时的颜色配置
在使用PADS Layout进行PCB设计时,为了便于查看,都会给每个层设置不同的颜色。在PADS中顶层(top)默认为蓝色,底层(bottom)默认为红色,这个和Altium Designer中的默认颜色是相反的。每层都包含许多器件、走线、铜箔等等,也可以分别为这些元素设置颜色,这样容易区分。
1764 0
|
Shell Linux
Shell脚本循环读取文件中的每一行
Shell脚本循环读取文件中的每一行
373 0