当前位置: 首页 > news >正文

设计模式是测试模式咩?

设计模式和测试模式概述

    • 软件的生命周期
    • 为什么要进行测试(测试的目的)?
    • 软件的设计模式
        • 1. **瀑布模型**
        • 3. 增量和迭代模型
        • 4. 敏捷模型
        • 5. 喷泉模型
    • 测试模型
      • `V`模型
      • `W`模型

一个应用程序从出生到“死亡”会经过非常漫长的流程……

软件的生命周期

我们知道一段旅行的周期:

确认旅行地点—>计划旅行时间—>设计旅行内容—>前往旅行目的地—>执行旅行计划—>完成本次旅行

在这里插入图片描述

软件的生命周期何尝不是如此:

  1. 需求分析:分析软件需求,可以从用户角度或者甲方要求切入,输出需求文档
  2. 计划:根据需求分析出的功能点做好项目计划
  3. 设计:根据计划设计出功能,输出设计文档
  4. 编码:根据设计文档,使用合适的计算机语言进行应用程序的编写
  5. 执行测试用例:根据设计文档和需求文档进行测试,输出测试报告
  6. 运行维护:软件后期的修复过程,在软件的运行阶段需要对软件进行不断完善的过程。
  7. 下架:停止对这个软件的一切行为,回收软件资源

为什么要进行测试(测试的目的)?

在软件的生命周期中,我们可以看到,在编码完成之后,需要进行测试,测试的目的是什么?难道开发人员做的应用程序不能用吗?

不是的测试的目的是为了确保软件解决了应该解决的问题,发现软件中可能存在或者已经存在的问题,是一个尽可能去将软件完善的过程

如果想要一个软件合乎用户的需求,就必须要进行相应的测试,避免非常多的意外情况出现,不能去让用户发现这个错误,作为测试人员应该要有责任感

软件的设计模式

1. 瀑布模型
  • 该设计模式与软件的生命周期是一样的,需求分析—》计划—》设计—》编码—》测试—》运行维护—》下架

由此我们可以观察到,在这种模型下的软件设计,测试人员是在编码阶段后才加入到项目中,这种设计模式的存在一定的优缺点。

优点:更注重开发的阶段性。强调早期计划及需求调查。

缺点:依赖于早期需求调查,不能适应变化。在开发时中的经验不能反馈到对本产品的一些过程中。风险延后发现,直到测试阶段才发现风险,导致风险无法及时纠正,错过改正错误的最佳时机。

应用场景:更适合于小项目开发,变化幅度小的项目。

在这里插入图片描述#### 2. 螺旋模型

  • 是一种渐进式开发的代表之一,对于一些复杂度高,规模庞大,风险大的项目非常合适,这种迭代开发的模式给软件测试带来了新要求和新规范,它不允许独立测试,测试必须要和开发的迭代进行相关联。其中的回归测试是非常重要的。

    优点:在需求阶段就加入测试,非常严谨的风险管理。重视各阶段的开发质量。提供选择机会这个计划是否可行。

    缺点:引入非常严格的风险识别、风险分析和风险控制,需要投入大量时间,人力、物力。

    应用场景:复杂度高的项目,风险大的项目适配螺旋模式是一个不错的选择。

在这里插入图片描述

3. 增量和迭代模型
  • 增量模型可以显著降低项目风险,结合软件持续构建机制,现今成为最流行的开发区模型之一。增量模型是从功能量上进行划分的,每阶段完成一定的功能。

    优点:降低项目风险,提高项目安全性。

    缺点:可用在完整项目中时的难度大。

    应用场景:适用于项目中功能成熟度高。

  • 迭代模型是从深度或细化的程度进行划分的,每阶段功能得到完善,增强,适用于需求不明显,难度大的软件开发。在进行软件开发的时候一般是将系统的项目划分为一个个非常小的模块,每个部分都要经过设计、编码、测试等多个环节。

    优点:每个迭代都有一个清晰的目标和可交付成果,避免盲目编码。

    缺点:项目变动快,设计、编码和测试的时间线会拉长。

    应用场景:受用于一些本就不成熟的阶段,一步步进行改进。

  • 两个设计模型的互相补充,一个设计项目中可以掺杂增量和迭代两种开发模式,会使得项目开发更加高效。

4. 敏捷模型
  • 是一种以迭代进行开发的一种软件开发模式,强调快熟反应和价值驱动。项目在构建初期分为好几个子项目,具备可视,可集成,可运行等特征。

    优点:严格按照规则执行,步骤成果是检验程序进度的方法。增加项目的可维护性,允许需求和设计改变。

    缺点:更高的成本和更高的人力需求,存在风险和不确定性。

    应用场景:适用于多变的数据模型中,适用于复杂场景,因为它灵活多变。

5. 喷泉模型
  • 是一种用于描述用户需求的软件开发过程,这种测试过程以用户需求作为动力,以对象为驱动力。在执行软件生命周期中的每一步时,不需要按照规则,可以进行交叉执行,迭代执行。

    优点:风险防范做的好,可以随时补充需求与功能,测试中也可以进行交叉测试

    缺点:需要消耗大量人力、物力和时间。

    应用场景:在一些大规模项目中,可能会改动需求的项目中适用

测试模型

V模型

在这里插入图片描述

准确描述了测试过程中不同类型的测试,并且清晰地描述了测试阶段和开发阶段中的对应关系。

该模型指出,测试是存在顺序的,单元测试是在集成测试之前,所以在执行测试时应该要先保证前方功能实现成果。

  • 局限性:把测试的时间摆放在编码后期,未在需求开始之前就进入测试阶段。

W模型

在这里插入图片描述

该模型配合两个 V 模型进行软件测试,增加了各个阶段性的测试过程,明确表达了测试与开发的并行行为。

特点:测试和开发是同步进行的,测试工作在早期需求分析就加入项目中。

优点:有助于早日发现软件问题,及时修复缺陷。对需求的测试也有益于理解项目难度和测试风险。可以早点制定测试对策,以修复缺陷。

局限性:虽然上图是并行,实则也是串行,只有执行完上一个工作才可以进行下一项工作。无法支持敏捷开发模型,对于当前环境复杂多变,该软件测试模型也同样会面临瓶颈。

相关文章:

设计模式是测试模式咩?

设计模式和测试模式概述 软件的生命周期为什么要进行测试(测试的目的)?软件的设计模式1. **瀑布模型**3. 增量和迭代模型4. 敏捷模型5. 喷泉模型 测试模型V模型W模型 一个应用程序从出生到“死亡”会经过非常漫长的流程…… 软件的生命周期 …...

Aspose.OCR for .NET 2023Crack

Aspose.OCR for .NET 2023Crack 为.NET在图片上播放OCR使所有用户和程序员都可以从特定的图像片段中提取文本和相关的细节,如字体、设计以及书写位置。这一特定属性为OCR的性能及其在扫描遵循排列的记录时的功能提供了动力。OCR的库使用一条线甚至几条线来处理这些特…...

conda环境中pytorch1.2.0版本安装包安装一直失败解决办法!!!

conda环境中pytorch1.2.0版本安装包安装一直失败解决办法 cuda10.0以及cudnn7.4现在以及安装完成,就差torch的安装了,现在torch我要装的是1.2.0版本的,安装包以及下载好了,安装包都是在这个网站里下载的(点此进入&…...

后端面试问题(学习版)

JAVA相关 JAVA语言概述 1. 一个".java"源文件中是否可以包含多个类?有什么限制? 可以。 一个源文件可以声明多个类,但是最多只能有一个类使用public进行声明 且要求声明public的类的类名与源文件相同。 2. Java的优势&#xff…...

数据管理系统-week1-介绍

文章目录 一、数据它是什么?二、电子存储设备三、持久存储设备1、硬盘驱动器(HDD)、硬盘、硬盘驱动器是一种用于存储和检索数字信息的机电持久存储设备。2、固态硬盘(SSD)使用非易失性存储器,即使用NAND闪存…...

【SpringBoot】手写模拟SpringBoot核心流程

依赖包 新建一个工程,包含两个 module: springboot 模块,表示 springboot 源码实现;user 模块,表示业务系统,使用 springboot 模块; 依赖包:Spring、SpringMVC、Tomcat 等&#xff…...

应对.locked勒索病毒:恢复、预防全方位攻略

导言: .locked勒索病毒并非简单的数字威胁,它是一场对个人和企业数字资产的精密审判。这种病毒通过各种方式感染系统,从而以瞬间之间将用户的关键文件变成数字拼图,无情地要求赎金以换取解锁的密钥。如果您正在经历勒索病毒数据恢…...

基于DS1302时钟液晶12864显示2路闹钟仿真及源程序

一、系统方案 1、本设计采用51单片机作为主控器。 2、DS1302采集年月日时分秒送到液晶12864显示。 3、按键年月日时分秒,两路闹钟。 二、硬件设计 原理图如下: 三、单片机软件设计 1、首先是系统初始化 uchar clock_time[6] {0X00,0X59,0X23,0X09,0X…...

AGC034E Complete Compress

AGC034E Complete Compress 洛谷[AGC034E] Complete Compress 题目大意 给你一棵有 n n n个节点的树,并用 01 01 01串告诉你哪些节点上有棋子(恰好一棵)。 你可以进行若干次操作,每次操作可以将两颗距离至少为 2 2 2的棋子向彼…...

python设计模式12:状态模式

什么是状态机? 关键属性: 状态和转换 状态: 系统当前状态 转换:一种状态到另外一种状态的变化。 转换由触发事件或是条件启动。 状态机-状态图 状态机使用场景: 自动售货机 电梯 交通灯 组合锁 停车计时…...

JS对图片尺寸和DPI进行编辑修改(1寸照修改为2寸照)

各种报名都对照片有大小限制&#xff0c;鉴于这种情况&#xff0c;网上搜了后拼凑出了如下代码&#xff0c;用于解决1寸照片修改为2寸照片&#xff0c;同时将DPI修改为300&#xff0c;当然也可以根据自己的情况修改代码&#xff1a; HTML <input type"file" id&…...

EDA实验----四选一多路选择器设计(QuartusII)

目录 一&#xff0e;实验目的 二&#xff0e;实验仪器设备 三&#xff0e;实验原理&#xff1a; 四&#xff0e;实验要求 五&#xff0e;实验内容及步骤 1.实验内容 2.实验步骤 六&#xff0e;实验报告 七.实验过程 1.创建Verilog文件&#xff0c;写代码 2.波形仿真 …...

从windows iso文件中提取install.wim

1、首先从微软官方下载需要的windows镜像 https://www.microsoft.com/zh-cn/software-download/windows10/ 2、在下载的iso文件右键&#xff0c;打开压缩包&#xff0c;在sources文件夹下&#xff0c;应该就可以看到install.wim了。但似乎在最新的win10版本&#xff0c;微软采…...

Python的flask网页编程的GET和POST方法的区别

关于flask网页编程的GET及POST方法之间存在哪些区别问题&#xff0c;我们主要从以下六个关键点予以详细阐述&#xff1a; 首先需要明确的是&#xff0c;GET与POST两种不同类型的HTTP方法所采用的请求模式有所差别。其中&#xff0c;GET方法采用的是基于URL请求的机制&#xff…...

15 # 手写 throttle 节流方法

什么是节流 节流是限制事件触发的频率&#xff0c;当持续触发事件时&#xff0c;在一定时间内只执行一次事件&#xff0c;这个效果跟英雄联盟里的闪现技能释放差不多。 函数防抖关注一定时间连续触发的事件只在最后执行一次&#xff0c;而函数节流侧重于一段时间内只执行一次…...

puzzle(1612)拼单词、wordlegame

目录 拼单词 wordlegame 拼单词 在线play 找出尽可能多的单词。 如果相邻的话&#xff08;在任何方向上&#xff09;&#xff0c;你可以拖拽鼠标从一个字母&#xff08;方格&#xff09;到另一个字母&#xff08;方格&#xff09;。在一个单词中&#xff0c;你不能多次使用…...

【解决方案】pytion 运行时提示 import psutil ModuleNotFoundError: No module named ‘psutil‘

报错原因分析 import psutil ModuleNotFoundError: No module named psutil报错原因分析 当前环境pytion中缺少了psutil包&#xff0c;使用pip命令进行安装 解决方案 pip install psutil...

CSS3 过度效果、动画、多列

一、CSS3过度&#xff1a; CSS3过渡是元素从一种样式逐渐改变为另一种的效果。要实现这一点&#xff0c;必须规定两相内容&#xff1a;指定要添加效果的CSS属性&#xff1b;指定效果的持续时间。如果为指定持续时间&#xff0c;transition将没有任何效果。 <style> div…...

java使用geotools解析矢量数据kml、geojson、shp文件

geotools解析kml、geojson geotools环境准备公共获取属性方法解析kml解析geojson解析shp geotools环境准备 这里使用的是maven引用geotools包&#xff0c;引用geotools包需要添加maven仓库&#xff0c;pom.xml文件如下&#xff1a; <properties><!-- geotools版本 -…...

原生 JS DOM 常用操作大全

DOM DOM文档对象模型 又称为DOM树 DOM树 由文档、元素、节点 组成文档&#xff1a;一个页面就是一个文档&#xff0c;元素&#xff1a;文档中的所有标签都称为元素。DOM中使用Element表示节点&#xff1a;文档中的所有内容&#xff0c;在文档中都是节点&#xff08;标签、属性…...

企业级语音合成方案一文详解:IndexTTS-2-LLM生产落地

企业级语音合成方案一文详解&#xff1a;IndexTTS-2-LLM生产落地 1. 项目概述与核心价值 IndexTTS-2-LLM智能语音合成服务是一个基于先进大语言模型技术的高质量语音生成解决方案。这个系统专门为企业级应用设计&#xff0c;能够将文本内容实时转换为自然流畅的语音输出。 传…...

收藏!小白/程序员入行AI应用开发必看,别被招聘要求吓退(附实操资源)

如果你是程序员小白&#xff0c;或是想转型AI应用开发的从业者&#xff0c;听我一句劝——大胆投简历&#xff0c;别被招聘启事上的“精通大模型底层原理”“2年以上AI相关经验”吓住&#xff01;很多时候&#xff0c;招聘要求写的只是企业的“理想画像”&#xff0c;我和身边不…...

扫地机器人的价值重估:当狂欢落幕,谁在裸泳?

2026年的春天,扫地机器人行业迎来了一场始料未及的倒春寒。 2月27日,石头科技发布2025年业绩快报:全年营收186.16亿元,同比大增55.85%,出货量稳居全球第一;但归母净利润仅13.60亿元,同比暴跌31.19%,扣非净利润降幅更达32.90%。同一时间,昔日“扫地茅”科沃斯的股价已…...

List.Sort与LINQ排序哪种更高效

在C#开发里头&#xff0c;针对集合操作排序这件事儿&#xff0c;那可是极为常见的。List.Sort方法&#xff0c;还有LINQ给出的OrderBy以及OrderByDescending方法&#xff0c;它们都能够轻易地达成排序任务。然而呢&#xff0c;它们在底层所遵循的机制&#xff0c;就连使用的场景…...

Java面试通关宝典,内容涵盖Java所有热门技术!

金三银四快过去了&#xff0c;不少人找LZ咨询&#xff0c;问我现在的面试需要提前准备什么&#xff1f;为了造福更多的开发者&#xff0c;也为了让更多的小伙伴通过面试&#xff1b;LZ近期也一直想着怎么才能帮到大家。所以近期在各大渠道整合大厂相关面试题&#xff0c;并结合…...

扩展异常对象的批量处理脚本

该PL/SQL脚本可自动识别扩展使用率≥95%的段对象(表、索引、分区等),并批量将其MAX_EXTENTS设置为UNLIMITED,解决“段无法扩展”的核心问题,避免手动逐个修改的低效与遗漏。 一、批量处理脚本 SET SERVEROUTPUT ON; DECLARE-- 定义变量:存储对象信息V_SEGMENT_NAME …...

学习CRUISE M热管理的视频教程及文档解说,无需模型,轻松入门

录的CRUISE M热管理视频&#xff0c;有文档解说&#xff0c;没有模型&#xff0c;可用来学习了解。最近在研究CRUISE M的热管理系统&#xff0c;手头只有官方视频和文档&#xff0c;模型文件倒是没给。不过这样也好&#xff0c;反而能逼着自己动手撸代码理解底层逻辑。就拿他们…...

spring boot社区养老保障系统小程序(文档+源码)_kaic

第五章 系统实现 5.1老人家属前台功能模块&#xff08;前端&#xff09; 社区养老保险系统小程序登录界面&#xff0c;通过填写账号、密码等信息进行登录&#xff0c;如图5-1所示。 图5-1登录界面图 注册&#xff0c;通过填写账号、密码、昵称、手机、邮箱、身份等信息&…...

AI Agent vs Web3:哪个赛道更有钱景

如果实在没啥项目经验&#xff0c;可以看看知乎知学堂的AILLM开发课&#xff0c;最为讲的就是ai agent的应用开发&#xff0c;除了模型调用、对接、搭建外&#xff0c;还有很多「实战项目」拆解&#xff0c;自己做完可以写到简历里&#xff0c;求职面试的时候也不虚。 现在很多…...

引入注意力机制的YOLOv5小目标检测方法

1. 引言 小目标检测是计算机视觉领域中的一个极具挑战性的问题。在诸如无人机航拍、卫星图像分析、自动驾驶、视频监控等应用场景中,小目标(通常定义为像素面积小于3232的目标)普遍存在。由于小目标在图像中占据的像素区域极小,特征信息匮乏,传统的目标检测算法往往难以取…...