首页 > 其他分享 >常见测试模型有哪些?

常见测试模型有哪些?

时间:2024-03-07 09:22:06浏览次数:20  
标签:迭代 软件开发 哪些 模型 测试 软件 软件测试

  在软件开发过程中,人们根据经验教训并结合未来软件的发展趋势总结出了很多软件开发模型,如瀑布模型、快速原型模型、迭代模型等,这些模型对软件开发过程具有很好的指导作用,但遗憾的是它们对软件测试并没有给予足够的重视,利用这些模型无法更好地指导软件测试工作。

  软件测试是与软件开发紧密相关的一系列有计划的活动,是保证软件质量的重要手段因此人们又相继设计了很多软件测试模型用于指导测试工作。软件测试模型兼顾了软件开发过程,对软件开发和测试进行了很好的融合,它既明确了软件开发与测试之间的关系,又使测试过程与开发过程产生交互,是测试工作的重要参考依据。

  软件测试模型对测试工作具有指导作用,对测试效果与质量都有很大的影响,很多测试专家在实践中不断改进创新,创建了很多实用的软件测试模型。下面介绍几种比较重要的软件测试模型。

V模型

  V模型是由保罗·鲁克(Paul Rook)在20世纪80年代提出的,它是软件测试模型中最具有代表性的模型之一。V模型是瀑布模型的变种,在瀑布模型的后半部分添加了测试工作如下图所示。

V模型


  V模型描述了基本的开发过程与测试行为,主要反映了测试活动分析与设计之间的关系。它非常明确地表明了测试过程所包含的不同级别,以及测试各阶段与开发各阶段所对应的关系。V模型的左边是自上而下、逐步细化的开发过程,右边是自下而上、逐步集成的过程,这也符合了软件开发与软件测试的关系。

  V模型应用瀑布模型的思想将复杂的测试工作分成了目标明确的小阶段来完成,具有阶段性、顺序性和依赖性,它既包含了对于源代码的底层测试,也包含了对于软件需求的高层测试。但是V模型也有一定的局限性,它只有在编码之后才能开始测试,早期的需求分析等前期工作没有涵盖其中,因此它不能发现需求分析等早期的错误,这为后期的系统测试、验收测试埋下了隐患。

W模型

  W模型是由Ⅴ模型演变而来的,它强调测试应伴随整个软件生命周期。其实W模型是个双V模型,软件开发是一个V模型,而软件测试是与开发同步进行的另一个V模型如下图所示。

W模型

  W模型的测试范围不仅包括程序,还包括需求分析、软件设计等前期工作,这样有利于尽早地全面发现问题。但是W模型也有自己的局限性,它将软件开发过程分成需求、设计、编码、集成等一系列的串行活动,无法支持迭代、自发性等需要变更调整的项目。

H模型

  为了解决V模型与W模型存在的问题,有专家提出了H模型,H模型将测试活动完全独立了出来,形成一个完全独立的流程,这个流程将测试准备活动和测试执行活动清晰地体现出来。测试流程和其他工作流程是并发执行的,只要某一个工作流程的条件成熟就可以开始进行测试。例如在概要设计工作流程上完成一个测试,其过程如下图所示。

H模型

  只是体现了软件生命周期中概要设计层次上的一个测试“微循环”。在H模型中测试级别不存在严格的次序关系,软件生命周期的各阶段的测试工作可以反复触发、迭代,即不同的测试可以反复迭代地进行。在实际测试工作中,H模型并无太多指导意义,读者重点是理解其中的设计意义。

X模型

  X模型的设计原理是将程序分成多个片段反复迭代测试,然后将多个片段集成再进行选代测试,如下图所示。

x模型

  X模型左边描述的是针对单独程序片段进行的相互分离的编码和测试,多个程序片段进行频繁的交接,在X模型的右上部分,将多个片段集成为一个可执行的程序再进行测试。通过集成测试的产品可以进行更大规模的集成,也可以进行封装提交给客户。

在X模型的右下部分还定位了探索性测试,它能够帮助有经验的测试人员发现更多测试计划之外的软件错误,但这对测试人员要求会高一些。

  上面共介绍了4种软件测试模型,在实际测试工作中,测试人员更多的是结合W模型与H模型进行工作,软件各个方面的测试内容是以W模型为准,而测试周期、测试计划和进度是以H模型为指导。X模型更多是作为最终测试、熟练性测试的模板,例如对一个业务测试已经有2年时间,则可以使用X模型进行模块化的、探索性的方向测试。

标签:迭代,软件开发,哪些,模型,测试,软件,软件测试
From: https://www.cnblogs.com/zero-song/p/18058157

相关文章

  • 什么是版本控制,常用的版本控制系统有哪些?
    1.什么是版本控制?版本控制(Revisioncontrol)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。简单来说就是用于管理多人协同开发项目的技术。2.为什么要有版本控制?没有进......
  • 阐述软件生命周期都有哪些阶段?常见的软件生命周期模型有哪些?
    软件生命周期是指一个计算机软件从功能确定、设计,到开发成功投入使用,并在使用中不断地修改、增补和完善,知道啊停止该软件的使用的全过程(从酝酿到废弃的过程)。生命周期从收到应用软件开始算起,到该软件不再使用为止。它有如下各方面的内容:初始构思、需求分析、功能设计、内......
  • 大语言模型常见的文本切分之语义嵌入
    语料准备选择了一篇新闻稿,有比较明显的段落区分,每个段落由若干句子构成,可用于验证切分效果。#节气释义小寒,是二十四节气中的第二十三个节气,太阳到达黄经285度时开始。《月令七十二候集解》中说:“十二月节,月初寒尚小,故云。月半则大矣。”冷气积久而寒,小寒是天气寒冷但还没有......
  • 大语言模型常见的文本切分方式整理汇总
    整理本文整理了一些简单的文本切分方式,适用于大语言模型经典应用RAG或相似场景。一般切分如果不借助任何包,很容易想到如下切分方案:text="我是一个名为ChatGLM3-6B的人工智能助手,是基于清华大学KEG实验室和智谱AI公司于2023年共同训练的语言模型开发的。我的目标是......
  • Java连接PostgreSQL数据库测试
    importjava.sql.DriverManager;importjava.sql.Connection;importjava.sql.SQLException;importjava.sql.ResultSet;importjava.sql.Statement;publicclassPG{publicstaticvoidmain(String[]args){System.out.println("PostgreSQLJDBC......
  • 俄罗斯套娃 (Matryoshka) 嵌入模型概述
    在这篇博客中,我们将向你介绍俄罗斯套娃嵌入的概念,并解释为什么它们很有用。我们将讨论这些模型在理论上是如何训练的,以及你如何使用SentenceTransformers来训练它们。除此之外,我们还会告诉你怎么用这种像套娃一样的俄罗斯套娃嵌入模型,并且我们会比较一下这种模型和普通嵌入模......
  • AI时代:大模型开发framework之langchain和huggingface
    langchain:提供了大模型相关应用开发的所有便利。https://python.langchain.com/docs/get_started/introductionBuildyourLLMapplicationwithLangChainTraceyourLLMapplicationwithLangSmithServeyourLLMapplicationwithLangServecookbook:Prompt+LLMRAG......
  • 大三下入学测试---数据分析练习
    分三部分:关键字提取,利用机器学习算法实现文本分类,获取行政区划编码,数据下钻后续再说关键字提取:利用jieba分词实现读取数据库的某一列,并对该列分词。importpymysqlimportpandasaspdfromjieba.analyseimportextract_tags#创建数据库连接db=pymysql.connect(host=......
  • 大三入学测试--数据分析练习(题目)
    一、 原始数据: 二、 地域维度标准化:地域属性在科技成果分析中作为一个重要维度,其标准取值非常必要,目前我国采用的标准行政区划代码由两部分组成,一部分为行政区划编码,六位数字组成,前两位表示省编码,中间两位代表市编码,后两位表示所属市的区或县编码。一部分为行政区划名称。两......
  • matlab用高斯曲线拟合模型分析疫情数据|附代码数据
    原文链接:http://tecdat.cn/?p=19211最近我们被客户要求撰写关于疫情数据的研究报告,包括一些图形和统计输出。本文用matlab分析疫情数据集 数据源我们检查解压缩的文件。包含:confirmed.csv-确诊病例的时间序列数据deaths.csv-死亡人数的时间序列数据recovered.csv-......