设计模式是测试模式咩?

设计模式和测试模式概述

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

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

软件的生命周期

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

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

在这里插入图片描述

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

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

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

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

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

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

软件的设计模式

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

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

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

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

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

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

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

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

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

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

在这里插入图片描述

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

测试模型

V模型

在这里插入图片描述

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

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

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

W模型

在这里插入图片描述

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/185910.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学习笔记4——JVM运行时数据区梳理

学习笔记系列开头惯例发布一些寻亲消息 链接:https://baobeihuijia.com/bbhj/contents/3/192489.html 类装载器classLoader: 将本地的字节码文件.class 加载到内存方法区中成为元数据模板(两个class对象是否为同一个类要求:完整…

单通道低压 H 桥电机驱动芯片AT9110H 兼容L9110 马达驱动芯片

H桥直流电机驱动电路是一种用于控制直流电机运转的电路,其主要特点是可以实现正反转控制,控制电机转速和方向,同时也具有过流保护功能。 H桥电路由四个功率晶体管和一些辅助电路组成,其中两个晶体管用于控制电机正转,…

【MySQL】一文学会所有MySQL基础知识以及基本面试题

文章目录 前言 目录 文章目录 前言 一、主流数据库以及如何登陆数据库 二、常用命令使用 三、SQL分类 3.1 存储引擎 四、创建数据库如何设置编码等问题 4.1操纵数据库 4.2操纵表 五、数据类型 六、表的约束 七、基本查询 八、函数 九、复合查询 十、表的内连和外连 十一、索引…

基于ssm的校园办公室报修管理系统

基于ssm的校园办公室报修管理系统 摘要 基于SSM的校园办公室报修管理系统是一个现代化的、高效的报修平台,它能够帮助校园内的教职工和学生更方便、更快捷地提交和处理报修请求。该系统基于Spring、SpringMVC和MyBatis(简称SSM)开发&#xff…

iOS 16.4 之后真机与模拟器无法使用Safari调试H5页面问题

背景 iOS 16.4之后用真机调试H5时候发现,Safari中开发模块下面无法调试页面 解决方案 在WKWebView中设置以下代码解决 if (available(iOS 16.4, *)) {[_webView setInspectable:YES];}然后再次调试就可以了

【C++类和对象中:解锁面向对象编程的奇妙世界】

【本节目标】 1. 类的6个默认成员函数 2. 构造函数 3. 析构函数 4. 拷贝构造函数 5. 赋值运算符重载 6. const成员函数 7. 取地址及const取地址操作符重载 1.类的6个默认成员函数 如果一个类中什么成员都没有,简称为空类。 空类中真的什么都没有吗&#xf…

迅为龙芯3A5000主板,支持PCIE 3.0、USB 3.0和 SATA 3.0显示接口2 路、HDMI 和1路 VGA,可直连显示器

性能强 采用全国产龙芯3A5000处理器,基于龙芯自主指令系统 (LoongArch)的LA464微结构,并进一步提升频率,降低功耗,优化性能。 桥片 桥片采用龙芯 7A2000,支持PCIE 3.0、USB 3.0和 SATA 3.0显示接口2 路、HDMI 和1路 …

Leetcode---370周赛

题目列表 2923. 找到冠军 I 2924. 找到冠军 II 2925. 在树上执行操作以后得到的最大分数 2926. 平衡子序列的最大和 一、找到冠军I 第一题模拟题,简单来说是看每一行(列)是否全是1,当然不包括自己比自己强的情况,需要特判 代码如下 …

xdcms漏洞合集-漏洞复现

目录 xdcms v3.0.1漏洞 环境搭建 代码审计 目录总览 配置文件总览 登陆处sql注入 漏洞分析 漏洞复现 注册处sql注入漏洞 漏洞分析 漏洞复现 getshell 任意文件删除 xdcms订餐网站管理系统v1.0漏洞 简介 环境搭建 全局变量的覆盖 漏洞分析 漏洞复现 后台任意…

Android平台上执行C/C++可执行程序,linux系统编程开发,NDK开发前奏。

Android平台上执行C/C可执行程序,linux系统编程开发,NDK开发前奏准备。 1.下载NDK,搭建NDK开发环境 下载地址 https://developer.android.com/ndk/downloads 下载过程中点击下面箭头的地方,点击鼠标右键,复制好下载…

分享vmware和Oracle VM VirtualBox虚拟机的区别,简述哪一个更适合我?

VMware和Oracle VM VirtualBox虚拟机的区别主要体现在以下几个方面: 首先两种软件的安装使用教程如下: 1:VMware ESXI 安装使用教程 2:Oracle VM VirtualBox安装使用教程 商业模式:VMware是一家商业公司,而…

ubuntu 安装redis详细教程

下载redis安装包 链接如下: http://redis.io/download 本例版本为:redis-7.2.3.tar.gz 下载安装包到目录/opt下,路径可修改,本例为/opt wget https://github.com/redis/redis/archive/7.2.3.tar.gz 解压安装包,并…

整理笔记——稳压直流电路知识

一、稳压直流电路的基本构成 稳压直流电路就是把生活中常用的220V交流电转换成稳压直流电。如生活中常见的手机充电器就是一个稳压直流电路。其主要功能是提供持续稳定且满足要求的电压。 直流稳压电路由一下几个模块组成: 下面具体分析下各个模块的功能。…

个人前端编程技巧总结

目录 1. 让界面位于当前屏幕的中心(屏幕中心)css代码示例 2. 界面透明但是内部元素不透明(毛玻璃)css代码示例 3. 将当前界面的参数传递到跳转的目标页面(携参跳转)js代码 1. 让界面位于当前屏幕的中心&…

API接口自动化测试

本节介绍,使用python实现接口自动化实现。 思路:讲接口数据存放在excel文档中,读取excel数据,将每一行数据存放在一个个列表当中。然后获取URL,header,请求体等数据,进行请求发送。 结构如下 excel文档内容如下&#x…

Python的版本如何查询?

要查询Python的版本,可以使用以下方法之一: 1.在命令行中使用python --version命令。这会显示安装在计算机上的Python解释器的版本号。 # Author : 小红牛 # 微信公众号:wdPython2.在Python脚本中使用import sys语句,然后打印sy…

Django(二、静态文件的配置、链接数据库MySQL)

文章目录 一、静态文件及相关配置1.以登录功能为例2.静态文件3.资源访问4.静态文件资源访问如何解决? 二、静态文件相关配置1. 如何配置静态文件配置?2.接口前缀3. 接口前缀动态匹配4. form表单请求方法补充form表单要注意的点 三、request对象方法reque…

【服务发现与配置】Consul特性及搭建

文章目录 一、前言二、概念2.1、什么是Consul?2.2、Consul具有哪些特点?2.3、Consul 架构图2.4、Consul的使用场景 三、安装3.1. 下载3.2. 解压3.3. 拷贝到usr目录下3.4. 查看 安装是否成功3.5. 启动 四、Consul 开机自启动4.1. 路径/usr/lib/systemd/system/&…

前端工程化(vue2)

一、环境准备 1.依赖环境:NodeJS 官网:Node.js 2.脚手架:Vue-cli 参考网址:安装 | Vue CLI 介绍:Vue-cli用于快速的生成一个Vue的项目模板。主要功能有:统一的目录结构,本地调试&#xff0…

电脑msvcp110.dll丢失怎么办,msvcp110.dll缺失的详细修复步骤

在现代科技发展的时代,电脑已经成为我们生活和工作中不可或缺的工具。然而,由于各种原因,电脑可能会出现一些问题,其中之一就是msvcp110.dll文件丢失。这个问题可能会导致一些应用程序无法正常运行,给我们的生活和工作…