【软件测试专栏】软件测试 — 概念篇

2024-09-02 02:52
文章标签 概念 软件测试 专栏

本文主要是介绍【软件测试专栏】软件测试 — 概念篇,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


  • 博客主页:Duck Bro 博客主页
  • 系列专栏:软件测试专栏
  • 关注博主,后期持续更新系列文章
  • 如果有错误感谢请大家批评指出,及时修改
  • 感谢大家点赞👍收藏⭐评论✍

软件测试 — 概念篇

关键词:软件需求、用户需求、开发模型、测试模型

目录

  • 软件测试 — 概念篇
    • 一、需求
      • 1. 用户需求
      • 2. 软件需求
    • 二、开发模型介绍
      • 1. 什么是模型
      • 2. 软件生命周期
        • 2.1 软件(开发)生命周期的各阶段
    • 三、开发模型
      • 1. 瀑布模型
      • 2. 螺旋模型
      • 3. 增量模型&迭代模型
      • 4. 敏捷模型
        • 4.1 scrum模型
    • 四、测试模型
      • 1. V模型
      • 2. W模型(双V模型)
    • 五、软件测试生命周期
      • 1. 软件测试的生命周期(测试流程)
      • 2. 各阶段具体内容


一、需求

1. 用户需求

用户需求是指用户对某个产品或服务的期望和要求。它反映了用户在使用产品或服务时的具体需求和问题,以及他们希望产品或服务解决的具体需求和问题。

用户需求通常是基于用户的实际需求和体验,以及他们对产品或服务的期望和预期。 通过了解和理解用户需求,企业和开发者可以设计和开发出满足用户需求的产品或服务,从而提供更好的用户体验和满足用户的期望。

2. 软件需求

软件需求是指对于软件系统功能和性能的规定和描述,包括系统的输入、输出、功能、约束和限制等。软件需求是软件开发过程中的第一步,对于软件开发的成功与否具有重要的影响。

软件需求的定义明确和准确性决定了软件开发过程中的各个阶段的实施和效果。 软件需求的定义包括用户需求、功能需求、非功能需求和约束条件等方面的内容。


二、开发模型介绍

1. 什么是模型

软件工作的范围不仅仅局限在程序编写,而是扩展到了整个软件⽣命周期,如软件基本概念的形成、需求分析、设计、实现、测试、安装部署、运行维护,直到软件被更新和替换新的版本。
在这里插入图片描述

2. 软件生命周期

需求分析⸺计划⸺设计⸺编码⸺测试⸺运⾏维护
2.1 软件(开发)生命周期的各阶段
阶段具体内容产出
需求分析分析⽤⼾需求是否合理,分别从市场需求、技术等⽅⾯进⾏分析。该阶段会输出需求等⽂档。
计划对成⽴的需求执⾏需求执⾏计划,多⻓时间内完成该需求,每段时间具体完成哪些功能。该阶段会输出计划等⽂档。
设计将需求细化成⼀个个任务,团队成员各司其职领取任务并进⾏技术设计(如何进⾏架构设计,设计哪些接⼝、采⽤什么技术)该阶段会输出技术等⽂档。
编码开发⼈员参考需求⽂档、设计⽂档、交互图等等⽂件进⾏代码的编写。代码⽂件等⽂档。
测试测试⼈员需要介⼊到软件的测试中来,参考测试⽤例对软件进⾏测试。测试⽤例、测试设计与计划、测试报告等⽂档
运⾏维护项⽬测试结束之后,项⽬需要进⾏上线,并对产品进⾏线上的维护。线上的维护主要分为三个⽅⾯。分别为修复性维护、完善性维护和预防性维护。

不同的角色完成各部分内容

角色工作内容
产品经理定需求,明确需求是否正常执行中
项目经理为整个项目负责,人员调配
交互设计交互图
前端设计前端内容(框架、技术、工具)
后端设计后端内容(框架、技术、工具)
测试测试用例、测试计划(测试类型、工具)

三、开发模型

1. 瀑布模型

在这里插入图片描述
瀑布模型在软件⼯程中占有重要地位,是所有其他模型的基础框架。瀑布模型的每⼀个阶段都只执⾏⼀次,因此是线性顺序进⾏的软件开发模式。

优缺点

优点/特点缺点
• 强调开发的阶段性

• 线性结构,每个阶段只执⾏⼀次

• 是其他模型的基础框架
• 测试后置
1. 前⾯各阶段遗留的⻛险推迟到测试阶段才被发现,导致项⽬⼤⾯积返⼯,失去了及早修复的机会
2. 必须留有⾜够的时间给测试活动,否则导致测试不充分,将缺陷直接暴露给⽤⼾(产品质量差)
• 周期太⻓,产品很迟才能被看到和使⽤,可能会导致需求/功能过时

适用场景
瀑布模型适⽤于需求固定的小项⽬

2. 螺旋模型

螺旋模型对于那些规模庞⼤、复杂度⾼、⻛险⼤的项⽬尤其适合。这种迭代开发的模式给软件测试带来了新的要求,它不允许有⼀段独⽴的测试时间和阶段,测试必须跟随开发的迭代⽽迭代。因此,回归测试的重要性就不⾔⽽喻了。
在这里插入图片描述
优缺点

优点缺点
• 强调严格的全过程⻛险管理。
• 强调各开发阶段的质量。
• 增加⻛险分析和原型
• 项⽬中可能存在的⻛险性与⻛险管理⼈员的技能⽔平有直接关系
• 需求⼈员、资⾦、时间的增加和投⼊,可能会导致项⽬的成本太⾼

适用场景
螺旋模型适用于规模庞大、复杂度高、风险大的项目

3. 增量模型&迭代模型

在这里插入图片描述
增量开发:增量开发能显著降低项⽬⻛险,结合软件持续构建机制,构成了当今流⾏的软件⼯程最佳实践之⼀。增量开发模型,⿎励⽤⼾反馈,在每个迭代过程中,促使开发⼩组以⼀种循环的、可预测的⽅式驱动产品 的开发。因此,在这种开发模式下,每⼀次的迭代都意味着可能有需求的更改、构建出新的可执⾏软件 版本,意味着测试需要频繁进⾏,测试⼈员需要与开发⼈员更加紧密地协作。

迭代开发:迭代开发其核心思想是将开发过程分为多个短期的迭代周期,每个周期都包含需求分析、设计、编码、测试等开发活动。每个迭代周期都会生成一个可用的、经过测试的部分功能,也称为一个增量版本。在每个迭代周期的开始,开发团队和客户或用户会一起评估上一个迭代版本的效果,并确定下一个迭代版本的需求和优先级。

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

适用场景
现在迭代模型和增量模型现在不会单独去进行使用,而是配合着使用,主要用于大型项目,需求不明确的项目

4. 敏捷模型

敏捷模型主要旨在帮助项⽬快速适应变更请求。因此,敏捷模型的主要⽬的是促进项⽬的快速完成。
要完成这项任务,需要敏捷。敏捷性是通过使过程适应项⽬,删除对特定项⽬可能不是必需的活动来
实现的。此外,避免任何浪费时间和精⼒的事情。

在敏捷模型中,需求被分解成许多可以增量开发的⼩部分。敏捷模型采⽤迭代开发。每个增量部分都
是在迭代中开发的。每次迭代都旨在⼩⽽易于管理,并且只能在⼏周内完成。⼀次为客⼾计划、开发
和部署⼀个迭代。没有制定⻓期计划。

敏捷模型中有⼀个⾮常重要的《敏捷宣⾔》,宣⾔内容:

  • 个体与交互重于过程和⼯具
  • 可⽤的软件重于完备的⽂档
  • 客⼾协作重于合同谈判
  • 响应变化重于遵循计划

通过敏捷宣⾔可以总结出敏捷模型的四个特点:轻⽂档,轻流程,重⽬标,重产出

4.1 scrum模型

Scrum是敏捷模型中的⼀种,⼜称为迭代式增量软件开发模型。在scrum模型中,主要有三个角色五个重要会议

三个角色:
scrum由product owner(产品经理)、scrum master(项⽬经理)和team(研发团队)组成。

  • 其中product owner负责整理user story(⽤⼾故事),定义其商业价值,对其进⾏排序,制定发布
    计划,对产品负责。
  • scrum master负责召开各种会议,协调项⽬,为研发团队服务。
  • 研发团队则由不同技能的成员组成,通过紧密协同,完成每⼀次迭代的⽬标,交付产品。

迭代开发

与瀑布不同,scrum将产品的开发分解为若⼲个⼩sprint(迭代),其周期从1周到4周不等,但不会超过
4周。参与的团队成员⼀般是5到9⼈。每期迭代要完成的user story是固定的。每次迭代会产⽣⼀定的
交付。

在这里插入图片描述

scrum的基本流程:

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

四、测试模型

1. V模型

V模型最早是由Paul Rook在20世纪80年代后期提出的,⽬的是改进软件开发的效率和效果。是瀑布模
型的变种 。

在这里插入图片描述

优缺点
优点:

  • 明确的标注了测试过程中存在的不同类型的测试,并且清楚的描述了这些测试阶段和开发过程期间各阶段的对应关系,有效提升测试的质量和效率。
  • V模型指出:
    ◦ 单元和集成测试应检测程序的执⾏是否满⾜软件设计的要求;
    ◦ 系统测试应检测系统功能、性能的质量特性是否达到系统要求的指标;
    ◦ 验收测试确定软件的实现是否满⾜⽤⼾需要或合同的要求

缺点:

  • 仅仅把测试作为在编码之后的⼀个阶段,未在需求阶段就介⼊测试。
  • 缺点同瀑布模型。

2. W模型(双V模型)

W模型增加了软件各开发阶段中应同步进⾏的验证和确认活动。W模型由两个V字型模型组成,分别代
表测试与开发过程,图中明确表⽰出了测试与开发的并⾏关系。

在这里插入图片描述
优缺点
优点:

  • 有利于尽早地全⾯的发现问题。例如,需求分析完成后,测试⼈员就应该参与到对需求的验证和确认活动中,以尽早地找出缺陷所在。同时,对需求的测试也有利于及时了解项⽬难度和测试⻛险,及早制定应对措施,显著减少总体测试时间,加快项⽬进度。

缺点:

  • 需求、设计、编码等活动被视为串⾏的;
  • 测试和开发活动也保持着⼀种线性的前后关系,上⼀阶段完全结束,才可正式开始下⼀个阶段⼯作。
  • 重流程,⽆法⽀持敏捷开发模式。对于当前软件开发复杂多变的情况,W模型并不能解除测试管理⾯临着困惑。

五、软件测试生命周期

1. 软件测试的生命周期(测试流程)

软件测试贯穿于软件的整个⽣命周期
软件测试的⽣命周期是指测试流程,这个流程是按照⼀定顺序执⾏的⼀系列特定的步骤,去保证产品质量符合需求。在软件测试⽣命周期流程中,每个活动都按照计划的系统的执⾏。每个阶段有不同的⽬标和交付产物
在这里插入图片描述

2. 各阶段具体内容

需求分析测试计划测试设计与开发测试执⾏测试评估上线运⾏维护
⽤⼾⻆度:软件需求是否合理技术⻆度:技术上是否可⾏,是否还有优化空间测试⻆度:是否存在业务逻辑错误、冗余、冲突等问题制定测试计划:什么时候开发测试,什么时候结束测试,耗时多久参考需求⽂档、技术⽂档等编写测试⽤例写测试⽂档,明确标注使⽤到的测试⽅法,测试⼯具,测试形式等等充分利⽤测试⽤例和测试⼯具对项⽬尽可能做到全⽅⾯的测试覆盖测试是否通过,本次测试是否有遗留的BUG,最终测试⼈员需要产出⼀个测试报告项⽬测试结束后,将项⽬发布到线上环境,测试⼈员需求跟踪上线并测试线上环境下软件的运⾏是否正确测试⼈员需要参与项⽬的实施⼯作。测试⼈员对项⽬产品的业务和操作⾮常了解,加上测试⼈员 的沟通表达能⼒⼀般都⽐较强,所以测试⼈员可以参与⽤⼾使⽤软件的培训,在试运⾏项⽬时收集问题并及时反馈给相关负责⼈

在这里插入图片描述

这篇关于【软件测试专栏】软件测试 — 概念篇的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1128797

相关文章

【VUE】跨域问题的概念,以及解决方法。

目录 1.跨域概念 2.解决方法 2.1 配置网络请求代理 2.2 使用@CrossOrigin 注解 2.3 通过配置文件实现跨域 2.4 添加 CorsWebFilter 来解决跨域问题 1.跨域概念 跨域问题是由于浏览器实施了同源策略,该策略要求请求的域名、协议和端口必须与提供资源的服务相同。如果不相同,则需要服务器显式地允许这种跨域请求。一般在springbo

【MRI基础】TR 和 TE 时间概念

重复时间 (TR) 磁共振成像 (MRI) 中的 TR(重复时间,repetition time)是施加于同一切片的连续脉冲序列之间的时间间隔。具体而言,TR 是施加一个 RF(射频)脉冲与施加下一个 RF 脉冲之间的持续时间。TR 以毫秒 (ms) 为单位,主要控制后续脉冲之前的纵向弛豫程度(T1 弛豫),使其成为显著影响 MRI 中的图像对比度和信号特性的重要参数。 回声时间 (TE)

计算机网络基础概念 交换机、路由器、网关、TBOX

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、VLAN是什么?二 、交换机三、路由器四、网关五、TBOXTelematics BOX,简称车载T-BOX,车联网系统包含四部分,主机、车载T-BOX、手机APP及后台系统。主机主要用于车内的影音娱乐,以及车辆信息显示;车载T-BOX主要用于和后台系统/手机APP通信,实现手机APP的车辆信息显示与控

01 Docker概念和部署

目录 1.1 Docker 概述 1.1.1 Docker 的优势 1.1.2 镜像 1.1.3 容器 1.1.4 仓库 1.2 安装 Docker 1.2.1 配置和安装依赖环境 1.3镜像操作 1.3.1 搜索镜像 1.3.2 获取镜像 1.3.3 查看镜像 1.3.4 给镜像重命名 1.3.5 存储,载入镜像和删除镜像 1.4 Doecker容器操作 1.4

【机器学习-一-基础概念篇】

机器学习 定义分类算法 应用 定义 机器学习最早是被Arthur Samuel 提出的一个概念,指计算机无需明确编程即可学习的研究领域。1950年他发明的跳棋程序,这个人机对弈游戏让他的声名鹊起,机器学习这个概念才进入大众的是视线。 在这个跳棋程序里,他编程了一种算法,这个程序与Arthur下了数万次跳棋,计算机逐渐学会了下在哪里有更大的可能会赢得比赛,哪里会输,通过这种方法,最

【吊打面试官系列-Redis面试题】说说 Redis 哈希槽的概念?

大家好,我是锋哥。今天分享关于 【说说 Redis 哈希槽的概念?】面试题,希望对大家有帮助; 说说 Redis 哈希槽的概念? Redis 集群没有使用一致性 hash,而是引入了哈希槽的概念,Redis 集群有 16384 个哈希槽,每个 key 通过 CRC16 校验后对 16384 取模来决定放置哪个槽, 集群的每个节点负责一部分 hash 槽。

AI辅助编程里的 Atom Group 的概念和使用

背景 在我们实际的开发当中,一个需求往往会涉及到多个文件修改,而需求也往往有相似性。 举个例子,我经常需要在 auto-coder中需要添加命令行参数,通常是这样的: /coding 添加一个新的命令行参数 --chat_model 默认值为空 实际上这个需求涉及到以下文件列表: /Users/allwefantasy/projects/auto-coder/src/autocoder/auto

读软件设计的要素04概念的关系

1. 概念的关系 1.1. 概念是独立的,彼此间无须相互依赖 1.1.1. 一个概念是应该独立地被理解、设计和实现的 1.1.2. 独立性是概念的简单性和可重用性的关键 1.2. 软件存在依赖性 1.2.1. 不是说一个概念需要依赖另一个概念才能正确运行 1.2.2. 只有当一个概念存在时,包含另一个概念才有意义 1.3. 概念依赖关系图简要概括了软件的概念和概念存在的理

【生物信息学算法】图算法1:概念和算法

文章目录 1. 图的定义、分类、表达方式图的定义图的分类表达方式Python实现 2.相邻节点和度概念定义python实现 3.路径、距离和搜索路径和距离搜索环 4.图论中的欧拉定理 1. 图的定义、分类、表达方式 图的定义 图G可以由两个集合来定义,即G=(V,E)。其中,V是对象的集合,称为图的顶点或节点; E是V中(u,v)顶点对的集合,称为边或弧,表示u和v之间的关系

数据库系统原理概念整理(备考)

基本概念 数据模型 描述数据的概念和工具 关系数据模型 用关系描述数据 数据模型 包含三个方面 结构 操作 约束 对应于 关系数据模型 关系(表) 关系代数 主外键约束,断言 逻辑数据模型:详尽的描述数据,不关心具体的物理层实现,如关系数据模型中,设计实体及实体间的关系,属性,约束等等。业务逻辑的体现。 逻辑模型 --------查询处理----------物理模型 逻辑方面:SQL结构化查询