测试基础概念及常见开发模型和测试模型

news2024/11/15 13:52:58

目录

1.需求的概念

2.测试用例

3.什么是BUG

4.软件的生命周期

5.开发模型和测试模型

开发模型

瀑布模型

快速原型模型

螺旋模型

增量模型

敏捷方法

scrum三大角色

测试模型

V模型

W模型


1.需求的概念

衡量软件测试结果的依据—需求

概念:满足用户期望或正式规定文档(合同、标准、规范)所具有的条件和权能,包含用户需求和软件需求

用户需求:可以简单理解为甲方提出的需求,没有甲方,就是终端用户使用产品时必须要完成的任务。不涉及技术实现细节。用户需求是从用户交流、市场调研或需求分析等方式中获取的。

软件需求(功能需求):是对软件系统功能行为和操作的详细描述。规定了软件系统应该提供哪些功能和功能之间的关联。功能需求通常以用例、功能规范或需求规格说明书的形式进行描述,以便开发人员和测试人员理解和实现。

测试人员严重的需求:以用户登录注册业务为例

如何深入了解需求?

进行需求评审会议

需求评审会议是软件开发和测试过程中的一项重要活动,旨在审查、讨论和验证软件系统的需求。该会议通常由项目团队的相关成员参与,包括需求分析师、开发人员、测试人员、项目经理和其他利益相关者。

需求评审会议是项目团队协作和需求共识形成的重要环节,它可以帮助发现和纠正需求中的问题,减少后续开发和测试阶段的变更和风险。通过及时的需求评审会议,可以提高软件开发过程的效率和质量。

2.测试用例

测试用例是用来检验软件系统是否符合预期要求而设计的和执行的 测试环境,预期结果,操作步骤,和测试数据等 集合。用例叫做"case"

以博客系统登录业务为例:

测试环境:windows系统+chrome浏览器+本地

测试数据:账号+密码

操作步骤:输入账号,输入密码,点击登录

预期结果:登陆成功,跳转到个人博客页面

预期结果与实际结果相同,就说这个 测试用例 通过了

为什么会有测试用例?

提高测试人员工作效率、降低测试人员工作的重复性

测试用例是简历自动化测试的基础

3.什么是BUG

当且仅当规格说明存在并且正确,程序与规格说明书(软件需求)之间的不匹配(预期结果!=执行结果)就是BUG

需求规格书没提到的功能,判断标准最终以用户为准:当程序没有实现最终用户合理预期的功能要求时,就是软件系统出现BUG

在用户登录界面,密码是明文显示的,容易造成密码泄露,显然这就是一个BUG

4.软件的生命周期

六个阶段:需求分析,计划,设计,编码,测试,运行与维护

需求分析:注意需求是否合理,需求是否完整

计划:开发,测试,时间安排

编码:编写代码

测试:进行测试,生成测试报告

运维:项目上线后,如果出现问题,测试人员需要协助开发人员定位问题,解决问题后重新上线

5.开发模型和测试模型

开发模型

瀑布模型

需求分析后要产出:需求文档

设计阶段产出:技术文档,涉及哪些接口,库表,mq,定时任务,UI视觉稿

测试:执行测试用例,提交BUG

优点:每个阶段的工作很清晰

缺点:风险大,由于是单一的流程,测试人员介入晚,后期测试阶段显露的BUG失去及早纠正的机会,浪费人力物力

适用项目:项目小,开发周期短的项目

快速原型模型

快速原型模型(Rapid Prototype Model)是一种软件开发过程模型,它主要用于快速验证和演示概念、设计和功能。

快速原型模型的主要特点包括:

快速开发:快速原型模型侧重于快速迭代和开发。开发团队会迅速创建一个简化的原型,以展示系统的核心功能和外观。这有助于及早获取用户反馈和验证设计方案

用户参与:快速原型模型强调用户参与和反馈。原型可以用来与用户进行交互,并获取他们的意见和建议。这有助于确保最终的软件系统符合用户需求和期望

高度可视化:快速原型模型通常是基于图形界面的,通过图形元素和交互操作来展示系统的功能和界面。这使得用户能够更好地理解和评估系统的外观和行为

迭代改进:快速原型模型采用迭代的方式进行开发。根据用户反馈和需求变化,开发团队会不断改进和扩展原型,确保系统的质量和功能符合预期

缺点:快速原型模型可能导致在后续开发阶段遇到技术和复杂性挑战,需要谨慎评估和规划

适用场景:适用于对系统功能和界面进行快速验证和演示的项目

螺旋模型

特点: 

迭代循环:螺旋模型将软件开发过程分为多个迭代周期。每个迭代周期都包括需求分析、设计、开发、测试和评审等阶段。每个迭代周期都会逐步完善软件系统,并根据之前的经验进行调整和改进

风险驱动:螺旋模型注重风险管理。在每个迭代周期开始时,会进行风险评估和分析。开发团队会优先解决高风险的问题,从而降低项目失败的风险

原型开发:螺旋模型支持原型开发。在项目早期阶段,可以使用快速原型来验证需求和设计,获取用户反馈,并指导后续开发工作

阶段评审:螺旋模型中的每个迭代周期结束后,都会进行阶段评审。评审会对上一阶段的成果进行检查和审查,以确认其合理性和可行性,并确定下一阶段的方向

缺点:可能需要更多的资源和时间,且需要更加严格的管理和控制,以确保项目的成功

适用项目: 螺旋模型适用于大型、复杂和风险较高的软件项目

增量模型

将系统的开发和交付分解为多个增量或部分的迭代完成

增量模型的主要特点包括:

增量交付:将软件系统的开发和交付分成多个增量。每个增量都是完整的、可运行的子系统或功能集合。在每个增量完成后,可以交付给用户并获得反馈。

迭代开发:采用迭代方式进行开发。每个增量都是一个迭代周期,包括需求分析、设计、开发、测试和交付等阶段。每次迭代都会增加新的功能或改进现有功能。

优先级分配:在增量模型中,各个增量的开发优先级是可调整的。可以根据用户需求、风险程度和系统复杂性等因素来确定每个增量的优先级顺序。

增量集成:随着每个增量的完成,进行增量集成测试,确保增量之间的交互和整体系统的正常运行。这有助于及早发现和解决集成问题。

用户参与:强调用户参与和反馈。用户可以在每个增量完成后进行评审和测试,并提供对系统功能和性能的反馈意见

敏捷方法

个体与交互重于过程和工具:强调在软件开发中,个体成员之间的沟通和合作比过程和工具更重要。意味着团队成员应该更多地关注有效的沟通、协作和互动,而不是只依赖工具和流程。

可用的软件重于完备的文档:敏捷方法注重交付可用的软件产品,而不是过多强调繁琐的文档编写

客户协作重于合同谈判:强调与客户的紧密合作和持续反馈。团队和客户之间的协作和沟通比起相对僵硬的合同谈判更能推动项目成功

响应变化重于遵循计划:敏捷方法认识到需求是会变化的,因此强调对变化灵活响应

敏捷方法中后者并非没有价值,只是相比于前者是次要的

scrum三大角色

  1. 产品经理(Product Owner):代表利益相关者、客户或用户,并负责管理产品待办列表。他们与团队密切合作,明确产品需求、优先级和发布计划。产品负责人还参与冲刺计划会议、冲刺回顾会议和冲刺评审会议,确保团队交付符合用户期望的功能。

  2. 研发团队(Scrum Team):是一个跨职能的自组织团队,负责开发、测试和交付产品的增量。团队成员通常包括开发人员、测试人员和其他必要的技能。研发团队在冲刺计划会议中承诺完成的工作,并通过日常站会进行协调和信息共享。他们负责根据产品待办列表中的任务完成工作,并在冲刺回顾会议和冲刺评审会议中展示和讨论已完成的工作。

  3. 项目经理(Scrum Master):是团队的敏捷教练和迭代过程的卫道士。他们致力于促进Scrum方法的实施和持续改进。项目经理负责移除团队面临的障碍,确保团队遵守Scrum的规则和实践,并促进团队的自组织和跨功能性。还组织和引导冲刺回顾会议和日常站会,以及培训新成员加入Scrum团队。

流程 

 产品经理(收集用户需求)->项目经理(对需求进行优先级划分,计划项目日程)->每日站会(汇报昨天工作是否完成以及遇到的问题,今题的工作计划)->项目演示

测试模型

V模型

需求分析与系统设计:验证产品所给的软件需求是否正确;确定编程语言,使用框架

概要设计:设计项目结构

详细设计:设计每个接口,库表,定时任务

编码: 代码编写

此时测试人员介入进行后续测试

单元测试:java中测试每一个方法,类

集成测试:将许多方法集成到一起测试

系统测试:测试模块和模块之间是否有影响,测试所有功能

验收测试:项目上线之前,和产品,运营进行验收

特点:左侧是开发流程,右边是测试流程(类似于瀑布模型)

优点:测试过程被划分成许多类型

缺点:测试人员介入晚,发现问题时机太晚, 

W模型

也叫双V模型

特点:开发一个V,测试一个V

优点:测试人员能更早的介入需求

缺点:测试人员和开发人员一定程度上还是串行的;由于类似于瀑布模型,需求文档开始就确定了,V模型和W模型不能拥抱变化,不能适用于敏捷

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

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

相关文章

变量与数据类型

专栏简介:本专栏作为Rust语言的入门级的文章,目的是为了分享关于Rust语言的编程技巧和知识。对于Rust语言,虽然历史没有C、和python历史悠远,但是它的优点可以说是非常的多,既继承了C运行速度,还拥有了Java…

互联网未来信任锚点,后量子计算标准与迁移势在必行

作者 | 宋慧 出品 | CSDN 云计算 图片 | 视觉中国 IT、数字化正在深刻改变和加速全行业的效率与创新。不过,互联网的信息通信安全基石——密码学技术仍在使用第一代公钥密码算法,而随着量子计算的产生发展,以离散对数和大数分解这类等价的数…

深入理解网络通信和TCP、IP协议-01

1、网络协议 计算机网络是什么? 随着计算机技术发展,计算机的体积和价格都在下降,之前计算机多用于研究机构,现 阶段逐步进入一般的公司用于办公。原来计算机之间传输数据需要通过软盘等第三方存储介 质进行转存,人们…

【CXL】CXL ATS 介绍

🔥点击查看精选 CXL 系列文章🔥 🔥点击进入【芯片设计验证】社区,查看更多精彩内容🔥 📢 声明: 🥭 作者主页:【MangoPapa的CSDN主页】。⚠️ 本文首发于CSDN&#xff0c…

《代码随想录》专题:二叉树的遍历

0、二叉树的遍历方式总结 二叉树主要有两种遍历方式 深度优先遍历:先往深走,遇到叶子节点再往回走。广度优先遍历:一层一层的去遍历。 从深度优先遍历和广度优先遍历进一步拓展,才有如下遍历方式 深度优先遍历 前序遍历&#xff…

【网络编程】网络编程核心概念与模式

配套环境 vscode、gcc、ubuntu22.04 概念描述 网络编程的本质 使用操作系统提供的接口函数,使得应用程序具备收发网络数据的能力。 网络接口在代码层面是操作系统提供的函数 应用程序通过网络接口使用操作系统的联网能力 网络编程核心概念 协议:为进…

STM32——led灯的点亮+闪烁+流水灯的实现

文章目录 一、LED点亮1.原理2.寄存器方式--代码3.库函数--代码4.结果展示 二、LED闪烁三、LED流水灯1.代码2.结果展示 一、LED点亮 1.原理 其方式有两种一种是寄存器方式一种是库函数方式,但其原理都是一样的。如原理图所示,与LED相连接的IO口置低电平…

HTML学习 第一部分(前端学习)

参考学习网站: 网页简介 (w3schools.com) 我的学习思路是:网站实践视频。 视频很重要的,因为它会给你一种开阔思路的方式。你会想,噢!原来还可以这样。这是书本或者网站教程 所不能教给你的。而且,对一些教程&#…

【深度解析】OSPF-开放式最短路径优先协议

目录 重点: VPN---Virtual Private Network(虚拟专用网络隧道) OSPF网络类型: 表格视图: P2P---点对点协议 BMA---广播多路访问网络 NBMA---非广播多路访问网络 P2MP---点对多点协议 OSPF认证:检测类型+密码 …

陪诊师接单app开发|陪诊小程序开发|陪诊师接单系统开发

随着人们健康意识的提高和医疗服务的不断完善,陪诊服务逐渐受到人们的关注和需求。为了满足顾客的需求,陪诊小程序应运而生。下面将介绍陪诊小程序开发的几个优势。   1. 提供方便的预约和服务体验   陪诊小程序可以让顾客随时随地通过手机预约陪诊服…

Java034——反射(Reflection)

一、Java中的反射及作用 Java的反射(reflection)机制是指在程序的运行状态中: 可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法。 一句话&#…

3.类与对象

Java作为一种面向对象语言。支持以下基本概念: 多态继承封装抽象类对象实例方法重载 1.类与对象 对象:对象是类的一个实例,有状态和行为 类:类是一个模板,它描述一类对象的行为和状态 public class Dog {String bree…

编程语言里的转义字符真的叫转义字符吗?

我们先来看看别人是怎么说转义字符的? 这是我随便从两本书上截图来的,总的来说就是反斜杠加几个字符就是转义字符。 就问你晕不晕,斜杠加几个字符至少是两个字符,那还叫字符吗,那叫字符串吧,怎么取名转义字…

ModaHub魔搭社区:AI原生云向量数据库Zilliz Cloud与 LlamaIndex 集成搭建文档问答系统

目录 准备工作 准备数据 主要参数 处理数据 开始提问 本文将演示如何与集成 LlamaIndex 从指定源获取信息。 在 ChatGPT 占领各大头条时,越来越多的企业在考虑如何在它们的产品中使用 ChatGPT。一个比较大的使用场景就是如何使用 ChatGPT 来改造产品文档孱弱的搜索能力。…

【板栗糖GIS】——通过插件调教网页版b站首页

【板栗糖GIS】——通过插件调教网页版b站首页 参考视频:利用adblock关掉热搜和搜索推荐_哔哩哔哩_bilibili 在edge浏览器上使用的插件为Adblockplus,可以在插件中心查询到 拦截元素如下: bilibili.com##.adblock-tipsbilibili.com##.trend…

2023/7/15总结

JWT 在写项目的时候,本来想着把用户的数据全部存入session这样的话就不用每次都需要带用客户端的账号。后面了解到JWT,这个是在服务器无状态的一个方式。 具体是分为三个部分,第一个是头部主要存储用到的算法等信息,第二个是载荷…

51单片机--DS1302时钟

文章目录 DS1302引脚定义和应用电路内部结构框图寄存器的定义时序定义BCD码DS1302时钟代码 DS1302 DS1302是美国DALLAS公司推出的一款实时时钟电路芯片。它具有高性能和低功耗的特点,可以通过SPI三线接口与CPU进行同步通信。DS1302能够提供秒、分、时、日、星期、月…

HTML基础教程

1 什么是HTML HTML 是用来描述网页的一种语言。HTML 是一种在 Web 上使用的通用标记语言。HTML 允许你格式化文本,添加图片,创建链接、输入表单、框架和表格等等,并可将之存为文本文件,浏览器即可读取和显示。 HTML 指的是超文本…

复用cmake代码的其他方法

复用cmake代码的其他方法 函数和宏是代码复用的方法,在cmake3.18版本开始,cmake添加了cmake_language()命令,通过这个命令我们可以直接调用任意的cmake代码,无需将这些可复用的代码使用函数或者宏包起来. 当然cmake_language()命令不是为了代替函数和宏而设计的,而是希望通过…

ROS话题通信自定义msg

从21年至今写过不下10个ROS话题通信的工程,今天系统地记录下自定义msg的过程,让后来者少走弯路。 1、自定义msg简介 在 ROS 通信协议中,数据载体是一个较为重要组成部分,ROS 中通过 std_msgs 封装了一些原生的数据类型,比如:Stri…