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

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. 总结

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

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

  1. 文档获取方式:

  2. 加入我的软件测试交流群:680748947免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)

这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取

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

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

相关文章

python 第三方库(PyPinyin\shortuuid\json)

PyPinyin库 简介 PyPinyin库是一个支持中文转拼音输出的Python第三方库,它可以根据词组智能匹配最正确的拼音,并且支持多音字,简单的繁体, 注音,多种不同拼音/注音风格的转换。 安装 (framework-learn) C:\Users\zzg>pip …

python类对象

类提供了把数据和功能绑定在一起的方法。创建新类时创建了新的对象 类型,从而能够创建该类型的新 实例。实例具有能维持自身状态的属性,还具有能修改自身状态的方法(由其所属的类来定义)。 和其他编程语言相比,Python…

QT for Mcu的学习建议

QT for MCU(微控制器单元)是一个相对较新的领域,它允许在资源受限的微控制器上运行Qt框架,从而为嵌入式设备带来丰富的用户界面和跨平台的开发体验。以下是一些建议,可以帮助你开始学习Qt for MCU: 理解Qt…

从遍历上来说,list是单向的,vector是双向的。这句话对吗

从遍历的角度来说: 对于list来说,虽然它是双向链表,每个节点都包含指向前一个节点和后一个节点的指针,但在实际遍历时,我们通常只能沿着一个方向(比如从头到尾或从尾到头)进行遍历,因…

图像去噪--(1)

系列文章目录 文章目录 系列文章目录前言一、图像噪声1.1 噪声定义1.2 基本特征 二、按照噪声概率分布分类1.高斯噪声2.泊松噪声 三、去噪算法3.1 线性滤波3.1.1 高斯滤波3.1.2 均值滤波 3.2 非线性滤波3.2.1 中值滤波3.2.2 双边滤波 四、深度学习总结 前言 一、图像噪声 1.1 …

条款09:绝不在析构和构造中调用virtual函数

1.为什么 #include<iostream> using namespace std;class Transaction//交易信息类 {Transaction();virtual void logTransaction()const 0;//交易日志 };Transaction::Transaction() {logTransaction(); }class BuyTransaction : public Transaction//买入操作 {virtu…

Springboot全局异常处理

Springboot全局异常处理 一、不使用全局异常处理器二、全局异常处理器1.自定义常量&#xff08;返回状态码&#xff09;2.手动抛出异常3.编写全局异常处理器4.测试结果 三、全局异常处理方式二1.定义状态码常量2. 定义基础接口&#xff08;面向接口编程&#xff09;3.定义枚举类…

湖南麒麟SSH服务漏洞

针对湖南麒麟操作系统进行漏洞检测时&#xff0c;会报SSH漏洞风险提醒&#xff0c;具体如下&#xff1a; 针对这些漏洞&#xff0c;可以关闭SSH服务&#xff08;前提是应用已经部署完毕不再需要通过SSH远程访问传输文件的情况下&#xff0c;此时可以通过VNC远程登录方法&#x…

JMeter基础 — JMeter聚合报告详解

提示&#xff1a;聚合报告组件的使用和察看结果树组件的使用方式相同。本篇文章主要是详细的介绍一下聚合报告组件内容&#xff0c;不做示例演示。 1、聚合报告介绍 在使用JMeter进行性能测试时&#xff0c;聚合报告(Aggregate Report)可以说是必用的监听器。 &#xff08;1&…

Internet协议的安全性

Internet协议的安全性 文章目录 Internet协议的安全性1. 网络层1. IP*62. ARP*33. ICMP * 3 2. 传输层协议1. TCP1. * SYN-Flood攻击攻击检测* 防御 2. TCP序号攻击攻击 3. 拥塞机制攻击 2. UDP 3. 应用层协议1. DNS攻击*3防范*3: 2. FTP3. TELNET: 改用ssh4. 电子邮件1. 攻击2…

【Javascript编程实操06】1、反转数组和字符串 2、将二维数组转一维数组

前言 1、反转数组和字符串 代码&#xff1a; 实现效果&#xff1a; 2、将二维数组转一维数组 代码&#xff1a; 实现效果&#xff1a; 总结 前言 本次主要是针对Javascript阶段的字符串与数组的实操练习&#xff0c;共有2个实操&#xff0c;大家可以在实操的过程中更加深…

什么时候去检测大数据信用风险比较合适?

什么时候去检测大数据信用风险比较合适?在当今这个数据驱动的时代&#xff0c;大数据信用风险检测已经成为个人的一项重要需求。本文将从贷前检测、信息泄露检测和定期检测三个方面&#xff0c;阐述何时进行大数据信用风险检测较为合适。 一、贷前检测 大数据信用风险检测在贷…

Docker使用(二)Docker安装和常见典型操作

Docker使用(二)Docker安装和常见典型操作 二、软件安装 1、Docker安装 &#xff08;1&#xff09;环境准备 [rootlocalhost ~]# uname -r 3.10.0-327.el7.x86_64 # cat /etc/os-release &#xff08;2&#xff09;卸载旧版本 $ sudo yum remove docker \ ​ docker-cli…

折半搜索.

折半搜索 知识点折半搜索的原理折半搜索的过程 例题题目&#xff1a;世界冰球锦标赛题目描述输入样例输出样例提示 世界冰球锦标赛题解思路代码 知识点 折半搜索的原理 折半搜索是一种技巧&#xff0c;实际上就是将一个次搜索过程分成两次进行&#xff0c;然后将两次搜索的结果…

145 Linux 网络编程1 ,协议,C/S B/S ,OSI 7层模型,TCP/IP 4层模型,

一 协议的概念 从应用的角度出发&#xff0c;协议可理解为“规则”&#xff0c;是数据传输和数据的解释的规则。 典型协议 传输层 常见协议有TCP/UDP协议。 应用层 常见的协议有HTTP协议&#xff0c;FTP协议。 网络层 常见协议有IP协议、ICMP协议、IGMP协议。 网络接口层 常…

作业-逆序和定位

目录 字符串逆序 题目描述 输入 输出 样例 解题思路&#xff1a; 单词倒排 题目描述 输入 输出 样例 解题思路&#xff1a; 首字母大写 题目描述 输入 输出 样例 解题思路&#xff1a; 统计句子中单词个数 题目描述 输入 输出 样例 解题思路&#xff1a; 大小写字母互换 题目描…

springboot“涛宝”大学生二手物品交易商城

摘 要 二十一世纪我们的社会进入了信息时代&#xff0c;信息管理系统的建立&#xff0c;大大提高了人们信息化水平。传统的管理方式对时间、地点的限制太多&#xff0c;而在线管理系统刚好能满足这些需求&#xff0c;在线管理系统突破了传统管理方式的局限性。于是本文针对这一…

Kubernetes operator系列:webhook 知识学习

云原生学习路线导航页&#xff08;持续更新中&#xff09; 本文是 Kubernetes operator学习 系列文章&#xff0c;本节会对 kubernetes webhook 知识进行学习 本文的所有代码&#xff0c;都存储于github代码库&#xff1a;https://github.com/graham924/share-code-operator-st…

免费接口调用 招标信息自动抽取|招标信息|招标数据解析接口

一、开源项目介绍 一款多模态AI能力引擎&#xff0c;专注于提供自然语言处理&#xff08;NLP&#xff09;、情感分析、实体识别、图像识别与分类、OCR识别和语音识别等接口服务。该平台功能强大&#xff0c;支持本地化部署&#xff0c;并鼓励用户体验和开发者共同完善&#xf…

浅谈性能测试中的基准测试

在性能测试中有一种测试类型叫做基准测试。这篇文章&#xff0c;就聊聊关于基准测试的一些事儿。 1、定义 通过设计合理的测试方法&#xff0c;选用合适的测试工具和被测系统&#xff0c;实现对某个特定目标场景的某项性能指标进行定量的和可对比的测试。 2、特质 ①、可重…