软件测试-概念篇

目录

一、软件测试的定义

二、需求

三、开发模型

(一)、什么是模型?

(二)、软件的生命周期

(三)、瀑布模型

1、特点/优点

2、缺点

(四)、螺旋模型

1、特点/优点

2、缺点

(五)、增量模型、迭代模型

1、增量模型

2、迭代模型

(六)、敏捷模型

Scrum模型

(1)、三个角色

(2)、五个重要会议

(3)、Scrum流程

(七)、测试模型

1、V模型

(1)、优点

(2)、缺点

2、W模型(双V模型)

(1)、特点

(2)、优点

(3)、缺点


一、软件测试的定义

软件测试是验证软件产品特性是否满足用户的需求。
👧🏻:那为什么需要软件测试呢?
👩🏻‍💻:这是因为每一款软件都是企业创造出来给用户使用的,由用户直接或间接付费来使企业获得收益。如果这款软件的质量存在闪退、卡顿的问题,可能会给用户带来不好的体验,从而影响企业的盈利。然而,软件测试可以保证产品质量,提高用户满意度。
👧🏻:测试跟以前学习的调试有什么区别?
👩🏻‍💻:

|------|---------------|--------------------------|
| | 调试 | 测试 |
| 目的 | 通过定位来解决程序中的问题 | 发现问题 |
| 参与角色 | 开发人员 | 项目组所有成员,主要是由测试⼈员和开发⼈员来执⾏ |
| 执行阶段 | 开发阶段 | 测试贯穿整个软件开发⽣命周期 |


二、需求

在大多数软件公司,有 用户需求软件需求两部分需求。

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

比如:我想要做土豆丝 这属于 用户需求,通过评估之后可以实现。首先,准备所需要的材料;其次,开火、在锅里倒入油;之后,倒入土豆丝翻炒;最后,将炒熟的土豆丝放入盘中 这属于 软件需求。


三、开发模型

(一)、什么是模型?

说起模型,我们脑海下想到的是手机模型、车模型。其实,开发模型并不像手机模型、车模型那种,而是一种工作流程。
开发模型 是指 开发一款软件或者功能需要具备的开发流程。

(二)、软件的生命周期

在前面学习中,我们知道生命周期是从生命的开始到生命结束的那段时间。比如:人的生命周期是从生命开始、婴幼儿、儿童、青少年、青年、中年、中老年、老年、直到生命结束。而软件的生命周期也是如此。

举个例子:在暑期期间需要完成暑假作业,我想想要在一个月来完成暑假作业。完成暑假作业的生命周期是:明确目标:完成暑假作业;规划时间:从明天开始,30天结束;设计:每天完成三张;执行中:每天写暑假作业;检查:31天后,家长检查暑假作业进度;查漏补缺:在八月份,将作业中不会的知识点进行补充。

软件的生命周期:需求分析 ------ 计划 ------ 设计 ------ 编码------ 测试 ------ 运行维护

|------|-----------------------------------------------------------------------------------------------------------------|
| 阶段 | 具体内容 |
| 需求分析 | 需要从市场需求、技术等方面分析用户需求是否合理 |
| 计划 | 对成立的需求执行需求执行计划,多长时间内完成该需求,每段时间具体完成哪些功能 |
| 设计 | 将需求划分成一个个任务,团队成员领取自己的任务并进行技术设计 |
| 编码 | 开发人员参考需求文档、设计文档、交互图等文件进行代码的编写 |
| 测试 | 测试人员需要介入到软件的测试中,参考测试用例对软件进行测试 |
| 运行维护 | 项目测试结束后,项目需要进行上线,并对产品进行线上维护,分别进行修复性维护(对项目中未发现的问题进行修复)、完善性维护(对功能进行完善)、预防性维护(为了避免产品在线上出现一些不可预料的问题,进行一些防护的手段)的线上维护 |

(三)、瀑布模型


从图中可以看出,瀑布模型是一种线性结构,每个阶段只能执行一次。

1、特点/优点

  • 每一个阶段只能执行一次,是线性顺序进行的软件开发模式;
  • 是所有其他模型的基础框架。

2、缺点

  • 测试后置:前面各阶段遗留的风险到测试阶段才发现,导致项目大面积返工;没有足够的时间给测试,导致测试不充分,导致产品质量差;
  • 周期较长,产品很迟才能被开到和使用,可能导致需求/功能过时。

瀑布模型存在很严重的项目风险。然而,这种 瀑布模型可以使用在需求固定的小项目。

(四)、螺旋模型


这个图可能看不懂,可以结合瀑布模型图来理解螺旋模型:

从图中可以看出,和瀑布模型相比引入了原型和风险分析,并且是一个渐进式开发模型。

1、特点/优点

  • 在各阶段引入了原型和风险分析,为了避免各阶段遗留的风险问题到后面的阶段发现导致大面积返工;
  • 强调各开发阶段的质量;
  • 强调严格的全过程⻛险管理。

2、缺点

  • 项⽬中可能存在的风险性与风险管理⼈员的技能水平有直接关系;
  • 需求人员、资金、时间的增加和投入,可能会导致项目的成本太高。

这个螺旋模型适用于规模庞大、复杂度高、风险大。

(五)、增量模型、迭代模型

增量模型和迭代模型都是渐进式开发,都是为了开发出功能完善、高质量且稳定的产品。

1、增量模型

将软件功能分解为多个独立模块,分阶段依次开发并叠加新增模块,最终形成包含全部功能的完整产品的开发模型。

(将大需求拆成若干个小需求,每一个小需求独立开发上线)

2、迭代模型

以迭代周期为单位,围绕核心功能范围反复优化、完善现有功能,逐步提升产品质量和成熟度的开发模型。

(大需求 ------> 草稿版 ------> 优化版)

增量模型 迭代模型
核心逻辑 按 "功能模块" 逐步新增,强调 "功能的积累" 按 "完善程度" 逐步优化,强调 "质量的提升"
阶段目标 每个增量新增一部分独立的功能模块,最终凑齐全部功能 每次迭代对现有功能进行优化、重构或补充细节,逐步逼近 "完美版本"
功能变化方式 功能从 "少" 到 "多",新增功能为主 功能从 "粗" 到 "精",优化现有功能为主

总之, 增量是逐块建造,迭代是反复求精。这两种模型适用于大型项目。

(六)、敏捷模型

为了 帮助项目快速适应变更请求,可以使用敏捷模型。
敏捷模型的目的促进项目的快速完成。
在敏捷模型中,需求被分解成许多可以增量开发的小部分。敏捷模型采用迭代开发。 每个增量部分都是在迭代中开发的。 每次迭代都旨在小而易于管理,并且只能在几周内完成。⼀次为客户计划、开发 和部署⼀个迭代。没有制定长期计划。
敏捷模型中《敏捷宣⾔》的宣⾔内容: 个体与交互重于过程和⼯具,可⽤的软件重于完备的⽂档,客户协作重于合同谈判,响应变化重于遵循计划。通过敏捷宣言得到 敏捷模型的四个特点:轻文档、轻流程、重目标、重产出。

Scrum模型

敏捷模型中有一个Scrum模型,这个模型又称为 迭代式增量软件开发模型 。在Scrum模型中,主要有 三个角色五个重要会议

(1)、三个角色

三个角色是由产品经理、项目经理、研发团队组成。

  • 产品经理:赋值整理用户需求,定义其商业价值,对其进行排序,制定发布计划,对产品负责;
  • 项目经理:负责召开各种会议,协调项目,为研发团队服务;
  • 研发团队:是由开发人员、测试、交互、设计等不同技能的成员组成,完成每一次迭代的目标,交付产品。
(2)、五个重要会议
  • 发布计划会议:产品经理负责讲解用户需求,对其进行估算和排序,制定本次迭代要完成的需求列表;
  • 迭代计划会议:项目团队对每一个需求进行任务分解,明确任务负责人以及完成任务需要的时间;
  • 每日例会:每天项目经理召开会议,团队成员需要回答昨天做了什么、今天计划做什么、有什么问题;
  • 演示会议:迭代结束之后,召开演示会议,相关人员都受邀参加,团队负责向大家展示本次迭代取得的成果。在此期间将大家的反馈记录下来,形成新的需求;
  • 回顾会议:项目团队对本次迭代进行总结,发现不足,制定改进计划,下一次迭代继续改进,以达到持续改进的发展。
(3)、Scrum流程

四、测试模型

测试模型中有两个标志性的测试模型:V模型和W模型。

(一)、V模型

1、优点

明确的标注了测试过程中存在不同类型的测试,并且清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系,有效提升测试质量和效率。

2、缺点

只把测试作为在编码之后的一个阶段,未在需求阶段就介入测试,可能会导致测试后置。

(二)、W模型(双V模型)

1、特点

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

2、优点

有利于尽早发现问题。

3、缺点

  • 需求、设计、编码等活动被视为串行;
  • 测试和开发活动也保持着⼀种线性的前后关系,上⼀阶段完全结束,才可正式开始下⼀个阶段⼯作;
  • 重流程,⽆法⽀持敏捷开发模式的轻文档、轻流程。

在这篇文章中,学习了什么是软件测试、需求、软件的生命周期、几种开发模型和测试模型。

相关推荐
甜甜圈圈子12 小时前
JMeter配置全局变量token的方法
测试
俞凡15 小时前
掌握软件测试的艺术:策略、工具和最佳实践
测试
玄明Hanko1 天前
不想写测试脚本AI帮你搞定自动化测试
人工智能·测试
Apifox2 天前
如何在 Apifox 中给字段设置枚举(比如字符串、数组等)?
后端·ai编程·测试
Two_brushes.3 天前
自动化测试准备工作:概念篇
测试
人生都在赌5 天前
智能测试工作流实战案例——4个AI Agent协作重塑软件测试流程
agent·ai编程·测试
北京_宏哥8 天前
《刚刚问世》系列初窥篇-Java+Playwright自动化测试-30- 操作单选和多选按钮 - 番外篇(详细教程)
java·前端·测试
Apifox8 天前
Apifox 7 月更新|通过 AI 命名参数及检测接口规范、在线文档支持自定义 CSS 和 JavaScript、鉴权能力升级
前端·后端·测试
前端工作日常9 天前
我学习到的描述项目持续迭代具体成果
前端·测试