【软件测试】软件测试的基本概念和开发模型

news2024/11/7 22:37:08

1. 前言

在进行软件测试的学习之前,我们要了解软件测试一些基本概念. 这些基本概念将帮助我们更加明确工作的目标以及软件测试到底要做什么.

2. 软件测试的基本概念

软件测试的基本概念有3个,分别是需求,测试用例和BUG.

2.1 需求

这里的需求还可以分为 用户需求和软件需求,用户需求: 简单理解为甲方提出的需求. 软件需求: 开发人员要实现的软件功能. 软件也会作为开发和测试的依据.

一般来说 用户需求不能直接作为软件需求. 我们要对用户需求进行分析,这里的分析可能是从技术上分析(看技术是否可行). 从市场上分析(市场需求量),从成本上分析(成本与收益占比).

2.2 测试用例

测试用例意义就是:测什么,怎么测. 明确出要测试的要素,测试用例的要素包括标题,测试环境,操作步骤,测试数据和预期结果这五大要素.

标题: 简要说明这个测试用例是干什么的

测试环境: 不同的环境测试出来的结果可能不同

操作步骤: 不同的操作步骤测试出来的结果也可能不同

测试数据: 根据测试环境和测试步骤得出的结果

预期结果: 期望得到的结果

2.3 BUG

与产品规格说明书(需求文档)不符就算的上是BUG

主要有以下几点:

当且仅当产品规格说明书(需求文档)存在且正确的时候,程序实现地功能与产品规格说明书(需求文档)要求不匹配时,那就是软件错误.

当产品规格说明书(需求文档)没有提出的功能时,以用户为准.当程序没有实现用户合理预期(需要测试人员具有良好的产品思维)的需求时,这也是软件错误

3. 开发模型

开发模型(Software Development Model)是指软件开发全部过程、活动和任务的结构框架

3.1 软件/软件开发 的生命周期

软件/软件开发 的生命周期一般分为6个阶段: 需求分析->计划->设计->编码->测试->运行维护

需求分析: 这里的分析与前面一致,要进行市场分析,技术分析(站在技术的角度上看技术是否支持),成本和收入占比分析.

计划: 什么时候开始,什么时候结束.耗时多久

设计: 将大的需求拆分成一个个小的可执行任务

编码: 开发人员参考测试文档和开发文档等进行功能实现

测试: 测试人员进行测试

运行维护: 运行维护要具有完善性,修复性和预防性.当产品上线之后,用户开始使用.当用户发现了测试人员没有发现的BUG,后面测试开发人员对BUG进行修复,同时也对可能出现的BUG进行处理

软件测试贯穿软件的整个生命周期

3.2 软件测试的生命周期

软件测试分为以下几个阶段: 需求分析->测试计划->测试设计与开发->测试执行->测试评估

需求分析: 1. 站在用户角度上思考问题: 判断软件需求是否合理. 2. 站在技术的角度上思考问题:技术上是否可行,还有没有优化空间. 3. 站在测试的角度上思考问题: 判断当前的业务逻辑是否存在冗余/冲突

测试计划: 什么时候开始测试,什么时候结束测试,测试耗时多久

测试设计与开发:1.写测试文档,明确标注测试方法,测试工具,测试形式等等. 2. 编写测试用例

测试执行:充分利用测试用例和其它工具对项目尽可能的全覆盖测试

测试评估: 评估产品是否有其它质量问题,功能演示

项目测试完成之后,需要进行项目上线.项目上线之后,测试人员也需要及时关注产品是否出现了问题.

如果出现了问题:

尝试复现,判断这个问题是普遍出现的还是个别情况.

尝试定位问题出现的原因,帮助开发人员定位尽快定位问题并解决问题

反思问题:为什么会出现问题,如何解决,今后如何避免问题.

3.3 瀑布模型

瀑布模型在软件工程中占有重要地位,是所有其他模型的基础框架。瀑布模型的每一个阶段都只执行一次,因此是线性顺序进行的软件开发模式。

瀑布模型流程图:

主要就是以下几个步骤:

瀑布模型的特点:

1.线性结构,每个结构只执行一次

2.是所有其他模型的基础框架

瀑布模型的缺点:

1.测试后置.(1)测试前的各阶段遗留的风险推迟到测试阶段才会被发现,这会导致项目大规模返工,失去了早点发现解决问题的机会. (2) 必须留足够的时间给测试阶段,如果测试不充分,缺陷就会暴露给用户.

2.周期太长,产品很迟才能被看到和使用,可能导致需求过时.

瀑布模型的适用场景: 需求固定的小项目

3.4 螺旋模型

螺旋模型流程图:

上面这张图不太好看,接下来我们用瀑布模型的方式来理解这张图.

看这张图:

螺旋模型与瀑布模型相比增加了 风险分析和原型. 在需求分析,计划和设计之后要进行风险分析,每次风险分析之后就会得到一个新的原型.而在经过设计之后的风险分析之后就会得到一个可执行原型.

螺旋模型的特点: 增加了 风险分析和原型

螺旋模型的缺点:

项目中可能存在的风险性和风险管理人才的技能水平有直接关系

需要人员,资金,时间的成本增加和投入,项目的成本太高

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

3.5 增量模型

增量模型流程图:

增量模型把一个大的需求分成了一个个可独立开发上线的功能.

例如一个项目里面要实现很多功能,可以先开发里面的一部分功能,开发完成之后就可以先进行上线,等其它也开发完成之后,再去上线其它功能. 这就是增量模型的流程

3.6 迭代模型

迭代模型就是先完成基本的功能,然后在根据需求不断地取改善优化这些基本的功能

3.7 敏捷模型

敏捷开发有很多种方式,其中scrum是比较流行的一种。

scrum模型中有三个角色: 产品经理,项目经理和研发团队.

五个重要会议:发布计划会议,迭代计划会议,每日例会,演示会议和回顾会议

发布计划会议: 确定最终的需求

迭代计划会议: 任务拆解,确定责任人,工时评估

每日例会: 了解当前项目的进度,每日会议后要给出"可交付的软件"

演示会议: 产出用户需求

回顾会议:总结当前迭代周期中的不足,并在下一次迭代中进行优化

敏捷模型的特点:1. 轻流程 2. 轻文档 3. 重目标 4. 重产出

4. 测试模型

以上都是开发模型,测试模型有V模型和W模型

4.1 V模型

V模型特点: 1.测试过程中存在不同类型的测试 2.测试阶段的参考标准以前面对应阶段为准

缺点: 测试后置(与前面相同)

4.2 W模型

W模型也称"双V模型"

W模型增加了软件各开发阶段中应同步进行的验证和确认活动。

W模型特点:测试的对象不仅是程序,需求、设计等同样要测试,测试与开发是同步进行的

W模型优点:1.有利于尽早地全面的发现问题。2. 对需求的测试也有利于及时了解项目难度和测试风险,及早制定应对措施,显著减少总体测试时间,加快项目进度。

W模型的缺点:1. W模型重流程,不适应与敏捷模型. 2.测试和开发活动也保持着一种线性的前后关系,前一项工作完成才能开展后一项工作

5. 总结

本文主要讲解了软件测试的三个基本概念,开发模型和测试模型的特点,缺点和适用场景. 概念较多,看起来也很枯燥乏味,但是掌握基本概念才能更好地学习软件测试.

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

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

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

相关文章

【博客646】将消息队列放在Prometheus前以提高可靠性并不总是“好主意“

将队列放在Prometheus前以提高可靠性并不总是"好主意" 为了防止突发流量,而在prometheus前加上消息队列以达到削峰填谷的目的 架构如下: 应用程序将指标推送到某种形式的队列(通常是 Kafka),暴露器二进制…

超详细IDEA创建Maven项目

文章目录 一、Maven概述二、创建Maven项目三、Maven项目简单介绍3.1 标准化的项目结构3.2 标准化的构建流程3.3 方便的依赖管理 一、Maven概述 Maven是一个专门用于管理和构建Java项目的工具。我们之所以要使用Maven,是因为Maven可以为我们提供一套标准化的项目结构…

Python单元测试框架《python 自动化框架 pytest》

​ 编辑切换为居中 添加图片注释,不超过 140 字(可选) Pytest 简介 pytest 是python 的一种单元测试框架,不python 自带的unittest 测试框架类似,但是比 unittest 框架使用起来更简洁,效率更高。根据pyt…

智警杯半决赛知识点

hive: 启动hadoop 启动本地连接,连接外网 主机就是外网IP 1.修改云主机host文件,添加内网ip,对应映射名为hadoop000,实现云主机自身使用root用户ssh访问hadoop000免密登录 改host文件 vim/etc/hosts 比赛时会提…

【论文阅读】(2023.05.10-2023.06.03)论文阅读简单记录和汇总

(2023.05.10-2023.06.08)论文阅读简单记录和汇总 2023/05/10:今天状态,复阳大残,下午淋了点雨吹了点风,直接躺了四个小时还是头晕- -应该是阳了没跑了。 2023/06/03:前两周出差复阳,这两周调整作息把自己又…

第十三届蓝桥杯c++b组国赛题解(还在持续更新中...)

第十三届蓝桥杯Cb组国赛真题pdf自取 试题A:2022 解题思路: 有2022个物品,它们的编号分别是1到2022,它们的价值分别等于它们的编号。也就是说,有2022种物品,物品价值等于物品编号。 从2022个物品种选取10个…

虹科案例 | 虹科Dimetix激光测距传感器可实现无接触式监测采矿设备健康状况!

Part.01 行业挑战 采矿业机器的环境条件通常非常恶劣,损坏的设备会导致生产力和利润下降。虹科虹科Dimetix激光测距传感器为采矿设备和危险区域机器的机器健康监测提供了非接触式解决方案。 采矿操作中的处理设备通常包括分离、混合和粉碎矿石的机械设备。许多重型…

客户线上反馈:从信息搜集到疑难 bug 排查全流程经验分享

写在前面:本文是我在前端团队的第三次分享,应该很少会有开发者写客户反馈处理流程以及 bug 排查的心得技巧,全文比较长,写了一个多星期大概1W多字(也是我曾经2年工作的总结),如果你有耐心阅读&a…

因数据库字段可存储长度设置的小了,已达到设置字符类型的存储上限,导致数据存储时报错 及 常用的数据类型

项目场景: 提示:这里简述项目相关背景: 使用MySQL数据库,因数据库字段可存储长度设置的小了,已达到设置字符类型的存储上限,导致数据存储时报错 问题描述 提示:这里描述项目中遇到的问题&am…

2天刷完这套八股文,offer到手啦?

前言 大家好,最近有不少小伙伴在后台留言,得准备面试了,又不知道从何下手!为了帮大家节约时间,特意准备了一份面试相关的资料,内容非常的全面,真的可以好好补一补,希望大家在都能拿…

我的GIT练习Three

目录 前言 GIT安装教程 Git作者 GIT优点 GIT缺点 为什么要使用 Git GIT练习Three 总结 前言 Git 是一个分布式版本控制及源代码管理工具;Git 可以为你的项目保存若干快照,以此来对整个项目进行版本管理 GIT安装教程 点击进入查看教程:点击进入 G…

(深入浅出)详解虚拟内存

概述 我们都知道一个进程是与其他进程共享CPU和内存资源的。正因如此,操作系统需要有一套完善的内存管理机制才能防止进程之间内存泄漏的问题。 为了更加有效地管理内存并减少出错,现代操作系统提供了一种对主存的抽象概念,即是虚拟内存&am…

从未尝试过的 7 种处理 CSS 的方法

啊,Web 开发的世界——您可以从学习 HTML、JavaScript,当然还有 CSS 等基础知识开始。 但是一旦你在现实世界中构建应用程序,纯 CSS 就不再适用了。 挣扎是真的。 因此,今天我们将深入探讨使用 NextJS 为 React 应用程序编写 CSS…

NLP与GPT联合碰撞:大模型与小模型联合发力

目录标题 NLP是什么东西?Al大小模型联合发力 NLP是自然语言处理,而GPT是自然语言生成模型。 它们的联合碰撞结果是大模型与小模型联合发力,是因为大模型可以提供更好的语言理解和生成能力,而小模型则可以更快地进行推理和预测。 …

考虑微网新能源经济消纳的共享储能优化配置(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

【剑指offer专项突破版】字符串篇——“C“

前言 剑指offer专项突破版(力扣官网)——> 点击进入 本文所属专栏——>点击进入 一.字符串中的变位词 题目分析 总结 要求——在字符串2中找到字符串的1的排列顺序之一 数据格式——仅包含小写字母——哈希表! 返回值——bool值 思路分…

国产数据库有哪些?关键行业数据库为何一定要国产化?

国产数据库主要有以下几种: 1. 中国数据库(ChinaDB):由中国科学院计算技术研究所开发的关系型数据库系统。 2. 华为GaussDB(高斯数据库):国内首个软硬协同、全栈自主的国产数据库GaussDB&…

操作系统-内存管理-内存管理

目录 一、内存概念 1.1程序的链接 静态链接 装入时动态链接 运行时动态链接 1.2 程序的装入 绝对装入 可重定位装入(静态重定位) 动态运行时装入(动态重定位) 1.3内存空间的扩充 1.3.1覆盖 1.3.2交换技术 1.4连续管理分配管理方式 1.4.1单一连续分配 1.4.2固定分区分…

设计师必备!Axure RP10汉化版下载,一站式工具满足所有需求!

Axure RP10 汉化版是一款全新的原型、设计、交付工具,它兼容 Axure、Figma、Sketch 和 Adobe XD 等格式,提供一站式协同设计,帮助团队高效工作。在本文中,我们将为你介绍 Axure RP10 汉化版即时设计的下载和安装步骤,让…

c++学习——多态

多态 **多态的语法****多态的底层原理图****多态案1——计算机类****纯虚函数和抽象类****多态案例2——饮品****虚析构和纯虚析构****多态案例3—— 电脑组装** 多态是C面向对象三大特性之一 多态分为两类 静态多态:函数重载和运算符重载属于静态多态,复用函数名 动…