软件测试 | 概念(1)

news2024/11/16 3:32:41

目录

前言

需求的概念

开发模型

软件的生命周期

常见开发模型

瀑布模型

螺旋模型

增量模型,迭代模型

敏捷模型

Scrum模型

测试模型 

V模型

W模型(双V模型)


前言

测试:验证软件的特性是否满足用户的需求 用户的需求指 提升用户使用的满意度。

软件测试领域:软件测试工程师 和 软件测试开发工程师。

详情点击软件测试 - 认识-CSDN博客

虽然软件测试人员主要的工作职责是保障产品的测试质量,但是!软件的质量并不只由测试人员赖保障!!项目组(产品经理,前端开发,后端开发,测试,交互,设计...)所有成员都需要为产品质量负责。

开发和测试出现冲突怎么办?

  1. 反思自己是否是bug描述的不清楚,或者由于自己的疏忽导致误判。
  2. 站在用户的角度反问开发人员:如果你是用户你能接受这样的情况吗?
  3. 不仅能提出问题,最好也能给出解决方案。

自动化测试是中大型企业中要掌握的一项必不可少的技术事务;对于测试人员来说,设计测试用例也是工作中必不可少的一环。 

需求的概念

在企业中,经常听到两个词:用户需求 软件需求

  • 用户需求:没有经过合理的评估,通常就是一句话。
  • 软件需求:是开发人员和测试人员执行工作的依据

用户的需求不能直接作为开发和测试的依据。针对用户的需求,产品经理需要进行需求分析(技术可行性,市场可行性,成本投入和收益占比等)后才可以转变为软件需求。

软件测试初学者,推荐《软件测试的艺术》一书。

开发模型

规范的流程是在时代的演变下逐渐成型,并不是一开始就是规范的流程。认识具体的开发模型之前先了解软件的生命周期。

软件的生命周期

就像人的生命周期一样,生命的开始,经历幼儿,儿童,青少年,青年,中年,中老年,老年,直到生命的结束...软件也具有生命周期。

案例:假设要建造一套房子(用户需求),房子的生命周期(流程)是什么样的?

步骤总结映射软件流程
为什么要建房子?商品房还是普通住宅?建造100层技术上是否可行?明确合理的建房目标需求分析(软件需求
什么时候开发建房子?计划竣工时间?多久可以交房?计划好时间计划
建房前明确流程:先打地基,做基础框架,砌墙,粉刷,水电工程...设计好具体的建房流程设计(不同的角色涉及到的工作是不同的
按照前面流程和时间实施建房中...施工中编码
房屋建造完成,开发商验收成果买家验收房子品质(是否牢固,是否按照规定来建造的...)检查房屋建造结果测试
检查结束开始逐步入住,使用中出现的各种情况如房屋漏水,墙面掉皮,下水道堵塞等问题,一边使用一边找物业修理使用并及时维护运行维护

 解析:

设计阶段(不同的角色涉及到的工作是不同的):

  • 开发:设计开发文档(用什么技术,用什么框架等)。开发是统称(包括前端开发,1后端开发,客户端开发)
  • 测试:明确需求,设计测试用例,测试计划,(明确本次测试涉及到的工具,测试类型...)

运行维护阶段:

  • 软件上线后,在线上环境使用下可能会出现一些意想不到的情况。所以项目测试结束之后,项目需要进行上线并对产品进行线上的维护。
  • 线上维护主要分为三个方面:修复性维护(对项目中未发现的问题进行修复),完善性维护(对功能进行完善),预防性维护(居安思危,为了避免产品在线上出现一些其他不可预测的问题,进行一些防护的手段)。
  • 正常使用没有问题,但是在极端的情况下会出现问题(性能问题)

因此,我们就得到了软件开发的生命周期:

需求分析---计划---设计---编码---测试---运行维护

⭐软件的生命周期实际就是软件的开发模型。

常见开发模型

瀑布模型

  • 特点:

每个流程只执行一次线性的开发流程。 (同软件的生命周期基础流程)

  • 缺点:

测试后置。

        前面各阶段遗留的风险推迟到测试阶段才被发现,导致项目大面积返工,失去了及早修          复的机会;必须留有足够的时间给测试活动,否则导致测试不充分,将缺陷直接暴露给          用户(产品质量差)。

周期太长,产品很长时间才能被看到和使用,可能会导致需求/功能过时。

  • 使用场景:

需求固定的小项目。

螺旋模型

  •  特点:

螺旋模型中各阶段都引入了风险分析 + 原型。

引入的目的是减少各阶段遗留的风险问题,避免把问题留到后面的阶段。

  • 优点

强调严格的全过程风险管理;

强调各开发阶段的质量;

增加风险分析和原型。

  • 缺点

在螺旋模型中需要额外招聘专业的风险分析人才~(各阶段是否遗留问题完全取决于风险分析人员,这跟风险分析人员的技术完全挂钩。)

需求人员,资金,时间的增加和投入,可能会导致项目的成本太高。

  • 适用场景

规模庞大,复杂度高,风险大的项目。

增量模型,迭代模型

p1增量模型,p2迭代模型

增量模型:将大需求拆分成小需求,每个小需求独立开发上线~

迭代模型:简单来说,就是先上线一个基础版本,再出优化版本1,优化版本2...

  • 区别:

 增量是逐块建造的概念,迭代是反复求精的概念。

  • 适用场景:

大型项目,需求不明确。

        迭代模型和增量模型在现在已经不会单独去使用,而是配合着去使用。

敏捷模型

在早期,迭代瀑布模型⾮常流⾏来完成⼀个项⽬。但是现在开发⼈员在使⽤它开发软件时⾯临着各种 各样的问题。主要困难包括在项目开发期间处理来自客户的变更请求以及合并这些变更所需的高成本和时间。为了克服瀑布模型的这些缺点,在1990年代中期提出了敏捷软件开发模型。

实际工作中,一款产品的功能是不断在变化的~

敏捷模型中有一个非常重要的《敏捷宣言》,宣言内容:

强调高效的沟通;

强调轻文档,文档不应该作为工作验收的标准;

主动及时了解当下的需求;

能够主动迎接变化。

 总结出敏捷模型的四个特点:轻文档,轻流程,重目标,重产出

Scrum模型

Scrum是敏捷模型中的⼀种,⼜称为迭代式增量软件开发模型。

在scrum模型中,主要有三个角色五个重要会议

三个角色: 

scrum由product owner(产品经理)、scrum master(项目经理)和team(研发团队)组成。

• 其中product owner负责整理user story(用户需求),定义其商业价值,对其进⾏排序,制定发布计划,对产品负责。(产品经理收集需求,产出软件需求文档)

• scrum master负责召开各种会议,协调项目,为研发团队服务。

• 研发团队则由不同技能的成员组成,通过紧密协同,完成每⼀次迭代的目标,交付产品。(由很多角色组成,开发人员(前端后端),测试,交互,设计...) 

 五个重要会议:

 scrum的基本流程如上图所示:

  • 产品经理负责整理用户需求,形成 product backlog“产品待办事项列表”。
  • 发布计划会议:product owner负责讲解user story(用户需求),对其进行估算和排序,发布计划会议的产出 就是制定出这⼀期迭代要完成的story列表,sprint backlog。
  • 迭代计划会议:项目团队对每⼀个story进行任务分解,分解的标准是完成该story的所有任务,每个任务都有明确的负责⼈,并完成工时的初估计。
  • 每日例会:每天scrum master召集站立会议,团队成员回答昨天做了什么今天计划做什么,有什么问题。
  • 演示会议:迭代结束之后,召开演示会议,相关⼈员都受邀参加,团队负责向大家展示本次迭代取得的成果。期间大家的反馈记录下来,由po整理,形成新的story。
  • 回顾会议:项目团队对本期迭代进行总结,发现不足,制定改进计划,下⼀次迭代继续改进,以达到持续改进的效果。

特点:轻文档 和 快速迭代。

文档指测试用例,测试计划文档,测试报告等。

测试模型 

两个⾮常重要且具有标志性的测试模型:V模型和W模型

V模型

  • 优点:明确的标注了测试过程中存在的不同类型的测试。
  • 缺点:仅把测试作为在编码后的一个阶段 未在需求阶段就介入测试。缺点同瀑布模型。

W模型(双V模型)

V模型中未将测试前置的问题在W模型中得以解决。W模型由两个V字型模型组成,分别代表测试开发过程,图中明确表示出了测试与开发的并行关系。

测试的对象不仅是程序,需求、设计等同样要测试,测试与开发是同步进行的。

开发V模型并不是单单指编码阶段,而是为产品开发流程而实施的各个阶段

  • 优点:

有利于尽早地全⾯的发现问题。

  • 缺点:

需求、设计、编码等活动被视为串行的;

• 测试和开发活动也保持着一种线性的前后关系,上一阶段完全结束,才可正式开始下一个阶段工作。

• 重流程,无法支持敏捷开发模式(轻文档轻流程)。对于当前软件开发复杂多变的情况,W模型并不能解除测试管理面临着困惑。


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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue3前端界面布置到服务器,使用户能用网址访问到界面

1.下载Nginx: nginx: download 2.下载好的Nginx解压缩, 在解压缩的文件夹下找到conf > nginx.conf,修改nginx.conf中的server,配置服务器的ip地址和端口号 3.执行npm run build命令,vue生成的dist下的文件全部放置在…

基于微信小程序的行李寄存管理系统的设计与实现(论文+源码)_kaic

基于微信小程序的行李寄存管理系统的设计与实现(论文源码)_kaic 摘 要 人们外出旅行的时候,经常会需要到行李寄存的服务。行李寄存处在全国各地都很常见。现存的行李寄存方式很传统,适合小规模的行李寄存,当行李数量较多时,就…

【领域驱动设计 打通DDD最小闭环】三 模型的建立-领域建模

本篇BLOG为DDD流程的第二步,在模型的建立阶段,领域专家与技术人员通过领域建模来完成更为细致的模型建立讨论 领域建模的目的 领域建模主要有两个目的: 将知识可视化,准确、深刻地反映领域知识,并且在业务和技术人…

神经网络——非线性激活

1 非线性激活 1.1 几种常见的非线性激活: ReLU (Rectified Linear Unit)线性整流函数 Sigmoid 1.2代码实战: 1.2.1 ReLU import torch from torch import nn from torch.nn import ReLUinputtorch.tensor([[1,-0.5],[-1,3]])inputtorch.reshape(…

HT97226 160mW免输出耦合电容的立体声耳机放大器

特点: 输出无需隔直流电容 卓越的低音效果 无咔嗒/噼噗声,50uV (typical) Vos 低THDN:最低0.002% 低噪声,VN: 8.5uV 支持单端输入和全差分输入 2.5V至6V较宽的电源工作范围 输出功率:80mW(fIN1kHz,VDD3.6V,RL32Ω, THDN1%) 160mW(PVDD5V,fIN1kHz,RL32Ω…

Java中的抽象类 abstract

抽象方法: 将共性的行为(方法)抽取到父类之后。由于每一个子类执行的内容不一样,所以,在父类中不能确定具体的方法体。该方法就可以定义为抽象方法。 抽象类 如果一个类中存在抽象方法,那么该类就必须声…

【软件测试】软件测试-----概念篇

软件测试相关概念 一.需求的相关概念1.1 用户需求1.2 软件需求 二. 开发模型2.1 模型的基本概念.2.2 软件的生命周期2.2.1 理解软件生命周期每个阶段的具体任务 2.3 常见的开发模型.2.3.1 瀑布模型(适用场景:需求固定的小项目).2.3.2 螺旋模型(适用场景:…

ollama+llama3.1 405B 简介

ollamallama3.1 简介 Llama 3.1是一款来自Meta的最新型号,提供8B、70 B和405 B模型。 llama3.1:latestllama3.1:8bllama3.1:70bllama3.1:405bllama3.1:8b-instruct-fp16llama3.1:8b-instruct-q2_Kllama3.1:8b-instruct-q3_K_Sllama3.1:8b-instruct-q3_K_Mllama3.1…

python如何调用另一个文件中的函数

在同一个文件夹下 调用函数: A.py文件: def add(x,y):print(和为:%d%(xy)) B.py文件: import A A.add(1,2) 或 from A import add add(1,2) 在不同文件夹下 A.py文件的文件路径:E:\PythonProject\winycg B.py文件&a…

构建并升级openssh至OpenSSH_9.8p1

组件说明OpenSSH_9.8p1最新版本(2024年8月)OpenSSL 1.1.1pCentOS7中默认是OpenSSL 1.0.2k-fips 26 Jan 2017版本,OpenSSH_9.8p1不支持CentOS7主要是因为有大量CentOS老版本需要升级RPM,需要适配,故选择此版本。AnolisO…

输入一个正的奇数n(1≤n≤9),打印一个高度为n的、由“*”组成的沙漏图案。当n=5时,输出如下沙漏图案:

输入一个正的奇数n&#xff08;1≤n≤9&#xff09;&#xff0c;打印一个高度为n的、由“*”组成的沙漏图案。当n5时&#xff0c;输出如下沙漏图案&#xff1a; int main(){int i,j,n,m;scanf("%d",&n);m n / 2;for(im1;i<1;i--){ //m1是中间数for(jm1-i;j&g…

音频筑基:为啥一个压缩率概念,中文搜索结果都是错的?

音频筑基&#xff1a;为啥一个压缩率概念&#xff0c;中文搜索结果都是错的&#xff1f; 缘起概念分析小结 缘起 最近看一些数据压缩类的文章&#xff0c;对不同场合下表达的压缩率概念分歧&#xff0c;产生了疑问。有的说&#xff0c;压缩率越小越好&#xff0c;有的又说&…

信刻光盘摆渡机——完全物理隔离,安全合规

信刻光盘摆渡机是一款跨网安全数据摆渡设备&#xff0c;用于不同等级网络之间数据跨网安全传输的需求&#xff0c;采用智能光盘机械手臂&#xff0c;模拟人工取放光盘&#xff0c;在保持物理隔离的条件下&#xff0c;安全合规实现网间信息系统数据库及文件同步、网间信息数据交…

下载B站视频作为PPT素材

下载B站视频作为PPT素材 1. 下载原理2. 网页分析3. 请求页面&#xff0c;找到数据4. 数据解析5. 音频、视频下载6. 合并音频与视频7. 完整代码 其实使用爬虫也不是第一次了&#xff0c;之前从网站爬过图片&#xff0c;下载过大型文件&#xff0c;如今从下载视频开始才想到要写一…

搭建自己的GPT

搭建自己的GPT 文章说明核心代码效果展示源码下载 文章说明 目前GPT的使用比较主流&#xff0c;现有开源大模型&#xff0c;可以拉取到本地进行部署&#xff0c;搭建属于自己的GPT对话工具&#xff1b;主要用于熟悉大模型的本地搭建&#xff1b;本文采用开源的Ollama进行服务提…

MyBatis中的#{}和${}区别、ResultMap使用、MyBatis常用注解方式、MyBatis动态SQL

#{}和${}区别&#xff1a; #{}&#xff1a;是占位符&#xff0c;采用预编译的方式sql中传值&#xff0c;防止sql注入&#xff0c;如果我们往sql中列值传递一般使用 #{}。 ${}&#xff1a;采用字符串拼接的方式直接拼接到sql语句中&#xff0c;一般不用于sql列值传递&#xf…

高可用 Go 服务开发

高可用的含义是尽量减少服务的不可用&#xff08;日常维护或者突发系统故障&#xff09;时长&#xff0c;提升服务的可用时长。如何衡量一个服务的可用性呢&#xff1f;或许你也听说过&#xff0c;通常企业可能会要求服务的可用性能能够达到三个 9(也就是 99.9%)或者 4个 9 &am…

C# 自动化抢购脚本:基于商品链接的实现方案

实现思路&#xff1a; 启动参数: options.AddArgument("start-maximized"); 用于启动浏览器时使其窗口最大化。 创建 EdgeDriver 实例: EdgeDriver driver new EdgeDriver(options); 用于初始化 WebDriver 实例。导航到 URL: driver.Navigate().GoToUrl("请输入…

详谈进程等待

目录 前言1. 进程等待的必要性1.1 进程等待的定义 2. 如何进行进程等待2.1 wait 单进程2.2 wait 多进程2.3 status && 退出情况2.3.1 status 参数构成2.3.2 简证 status 参数构成2.3.3 进程等待失败2.3.4 宏调用查看退出信息 3. 进程等待的原理 前言 本篇文章继上一篇…

一款免费且功能强大的图像查看和编辑软件

IrfanView是一款免费且功能强大的图像查看和编辑软件&#xff0c;以其小巧的体积、快速的运行速度和丰富的功能而闻名。它不仅支持多种图像格式&#xff0c;如JPEG、PNG、BMP、GIF等&#xff0c;还支持视频和音频文件的播放。 IrfanView的主要特点包括&#xff1a; 广泛的文件…