软件测试之基础概念学习篇(需求 + 测试用例 + 开发模型 + 测试模型 + BUG)

news2024/9/22 13:42:31

文章目录

  • 1. 什么是软件测试
  • 2. 软件测试和软件开发的区别
  • 3. 软件测试和软件调试的区别
  • 4. 什么是需求
    • 1)以需求为依据设计测试用例
  • 5. 测试用例是什么
  • 6. 什么是 BUG(软件错误)
  • 7. 五个开发模型
    • 1)瀑布模型
    • 2)螺旋模型
    • 3)迭代模型、增量模型
    • 4)敏捷开发模型
  • 8. 测试模型
    • 1)V 模型
    • 2)W 模型
  • 9. 软件测试的生命周期(软件测试的流程)
  • 10. 如何描述一个 BUG
  • 11. BUG 的级别
    • 1)崩溃
    • 2)严重
    • 3)一般
    • 4)建议(次要)
  • 12. BUG 的状态转移图

1. 什么是软件测试

软件测试就是验证软件功能是否满足用户需求

在具体业务中表现为,最终交付的产品是否和用户的需求一致,如果不一致,则需要找出不一致的点

2. 软件测试和软件开发的区别

  • 难易程度方面

    开发对于知识的广度小,专业度高,测试的广度大,专业度低

  • 技能要求方面

    测试比开发要求更广泛,测试人员需要具备一定的业务能力、沟通能力、对测试工具的收敛使用,是需要有一定的编程能力

3. 软件测试和软件调试的区别

  • 目的

    软件测试的目的是验证软件是否满足用户的需求

    软件调试的目的是验证软件是否实现了开发人员想让它实现的功能

  • 角色

    软件测试是由开发人员和测试人员共同完成的

    软件调试是由开发人员完成的

  • 阶段

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

    软件调试只是在开发阶段

软件开发的生命周期

需求分析 -> 计划 -> 设计 -> 开发 -> 测试 -> 运维

4. 什么是需求

需求就是实现用户的期望或者满足文档(合同、标准、规范)所需要的条件或者权限

需求包括软件需求和用户需求

用户需求就是用户想要软件实现的功能,用户需求比较粗略直接实现比较困难

软件需求是从用户需求转化而来的,是对用户需求的细化和具体实现

软件需求是测试人员进行测试工作的基本依据

1)以需求为依据设计测试用例

首先验证需求,保证需求正确可实现,然后细化需求,从需求中提炼出一个个测试项

以 “ 用户登录 ” 为例,具体过程如下:

请添加图片描述

5. 测试用例是什么

测试用例是为了实施测试向被测试系统提供的一组集合,包含:测试环境、测试步骤、测试数据、预期结果等因素

测试用例告诉我们该测什么,怎么测

设计一条网易邮箱登录的测试用例:

请添加图片描述

测试环境: Chrome PC端 Windows操作系统

测试数据: 用户名:123456 密码:h123456789

测试步骤:

  1. 在 Chrome 浏览器打开网易邮箱 URL
  2. 输入用户名和密码
  3. 点击登录

预期结果: (操作完测试步骤后的结果)登陆成功

6. 什么是 BUG(软件错误)

  • 当且仅当规格说明书(软件需求)存在且合理,程序和软件需求之间不匹配的情况就是 BUG
  • 当软件需求不存在,用户需求存在且合理,软件功能和用户需求不符合,就说明是软件错误

软件测试在需求分析阶段时需要验证需求的合理性和正确性

7. 五个开发模型

软件开发的生命周期

需求分析 -> 计划 -> 设计 -> 开发 -> 测试 -> 运维

1)瀑布模型

瀑布模型是严格按照软件开发的生命周期进行的分阶段的开发模型

请添加图片描述

优点: 强调开发的阶段性,强调早期的需求分析和后期的测试

缺点: 测试在编码后才开始介入,导致前期的问题后期才发现,可能会失去错误补救的机会

2)螺旋模型

一般在软件开发初期阶段需求不是很明确时,采用渐进式的开发模型,螺旋模型就是典型的 渐进式开发模型,螺旋模型适用于 规模庞大复杂度高风险大 的项目

请添加图片描述

优点: 强调严格的风险管理,强调各开发阶段的质量

缺点: 引入严格的风险管理,需要更多人员、时间和金钱的投入

3)迭代模型、增量模型

将一个系统分为四个模块,A、B、C、D,在两周内将四个模块开发完成

迭代模型:

第一周先开发 A、B、C、D四个模块的基础功能

第二周再在第一周的基础之上完成其他的功能

增量模型:

第一周开发 A、B 两个模块的功能

第二周开发 C、D 两个模块的功能

增量模型和迭代模型抗风险能力都很强,迭代模型相比较增量模型还要更强些

4)敏捷开发模型

敏捷开发是一种可以应对快速变化的用户需求的一种软件开发模式

特点:

轻文档、轻流程、重目标、重产出

拥抱变化,客户可以在整个流程中对需求进行更改

周期短,团队人员少但精干

敏捷宣言:

个体与交互重于过程和工具

可用的软件重于完备的文档

客户协作重于合同谈判

响应变化重于遵循计划

Scrum 中的角色

  • PO(product owner)产品经理,负责整理用户需求,形成 userstory
  • SM(scrum master)项目经理,管理整个团队,负责敏捷流程的顺利实施,以及各种会议的顺利召开
  • ST(scrum team)研发团队,负责整个项目的研发,由各种技能的工程师组成

Scrum 流程

请添加图片描述

  • 发布计划会议: 产品经理收集需求相乘 userstory,讲解 userstory,决定本次迭代需要开发的 userstory 形成 sprint backlog
  • 迭代计划会议: 分析 userstory,把 userstory 分解成一个个的任务,分配给开发人员,制定开发计划
  • 每日会议: 讲解昨天干了什么,遇到的问题、今天的计划
  • 产品演示会议: 给客户演示研发的成果,产品经理整理和手机演示后客户的意见形成新的 userstory,放到下一次迭代中
  • 回顾计划会议: 回顾整个迭代过程,把不足的地方找出,在下一次迭代过程中改进,优化迭代流程

8. 测试模型

1)V 模型

特点: 明确标注了测试过程中存在的不同类型的测试,并且清楚的描述了这些测试阶段和开发过程各阶段的对应关系

缺点: 测试在编码之后才被引入,会失去对错误及时纠正的机会

请添加图片描述

2)W 模型

特点:

  • 测试贯穿整个软件开发的生命周期,对需求、代码等都会进行测试测试
  • 测试更早的介入,可以尽早发现错误并解决
  • 测试与开发独立并行

缺点:

  • 测试和开发保持一种线性的前后关系,上一阶段完全结束才可开始下一阶段工作
  • 无法支持敏捷开发模型

请添加图片描述

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

生命周期: 需求分析 -> 测试计划 -> 测试设计、测试开发 -> 测试执行 -> 测试报告

  1. 需求分析

    测试人员对需求进行分析,验证需求的合理性和正确性,细化需求,根据需求提炼测试点

  2. 测试计划

    确定测试的范围、目的、人员名单、测试工具以及测试环境

  3. 测试设计、测试开发

    测试人员根据提炼的测试点编写测试用例

  4. 测试执行

    在开发人员提交代码之后,测试人员根据测试用例和计划执行测试,记录测试过程中发现的 BUG 并提交

  5. 测试报告

    对本次测试进行分析和总结,记录在本次测试中使用了哪些测试用例,发现了哪些 BUG,修改了多少,剩余的 BUG 有哪些比较好的解决方案

10. 如何描述一个 BUG

一个合格的 BUG 描述包括以下几部分:

  1. 发现 BUG 的版本

    开发人员提交代码时代码的版本号

  2. 测试环境

    在不同的测试环境下问题出现的情况可能不一样

  3. 测试步骤

    告诉开发人员测试数据和执行测试时的具体步骤,以便于开发人员复现 BUG

  4. 实际结果

  5. 预期结果

  6. BUG 产生时的日志、错误截图等

11. BUG 的级别

1)崩溃

系统崩溃、死机、死循环,黑屏、闪退等导致系统不能运行的问题

如果系统已经发布,用户在使用过程中出现崩溃级别 BUG 怎么办?

  • 可以采用停服维修的方式来对 BUG 进行维护,但是这样会影响用户的体验和产品的利润
  • 最高效且损失最低的方法是,回到上一个稳定可用的历史版本

2)严重

系统可以用,但是不稳定,继续使用会产生严重的错误,如数据库插入用户数据时出错,用户数据的安全性问题等

3)一般

系统可以正常使用,但是一些次要的功能没有实现,如系统的提示语不完善,删除时没有确认弹窗等

4)建议(次要)

一些建议性的问题或者可以对系统进一步优化的方案,比如界面排版不符合用户习惯等

12. BUG 的状态转移图

请添加图片描述

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

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

相关文章

有哪些方法可以防止企业内部数据泄露?

企业内部数据安全威胁多数源于企业内部,企业内部存在许多安全威胁,主要包括: 1. 员工误操作或疏忽:这是导致内部安全事故的最主要原因之一。员工对安全程序缺乏认识或执行不严谨,可能会无意中泄露敏感数据或引发系统漏洞。 2. 未经…

Windows 服务监控工具

在任何企业中,Windows 服务都是面向业务的应用程序的核心组件。这些 Windows 服务的有效运行对于防止网络和应用程序停机至关重要。这使得 Windows 服务监视成为任何网络管理策略的关键部分。 Windows 服务监视使管理员能够确保关键 Windows 服务的可用性&#xff…

mysql的函数 --- MySQL总结(二)

mysql的函数 文章目录 mysql的函数日期函数字符串函数其他函数 日期函数 上面的所以的函数都可以使用select进行展现相应的数据 这里的使用current_date()时间戳,其他日期都可以相似的操作进行对于时间的操作 字符串函数 后面这里的操作查找name表之中的id的字符集&…

重构这件“小”事儿 | 得物技术

本文以一个Web项目的业务代码重构实践作为依据,来探讨项目业务代码重构过程中遇到的开发问题,以及重构过程中的一些注意点,希望可以给项目开发和服务开发维护重构提供一些通用的参考与思路。 这里不探讨大型项目的重构实践,毕竟一…

SHELL的脚本编写(2)

目录 1.编写脚本for1.sh,使用for循环创建20账户,账户名前缀由用户从键盘输入,账户初始密码由用户输入,例如:test1、test2、test3、......、test10 首先创建并编写for1.sh 查看结果 2.编写脚本for2.sh,使用…

Java - Lambda 表达式

一、背景 Lambda表达式是Java SE 8中一个重要的新特性。lambda表达式允许你通过表达式来代替功能接口。 lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体(body,可以是一个表达式或一个代码块)。 Lambda 表达式(Lambda expression&am…

【数据库】— 2NF、3NF、BCNF、最小函数依赖集例题

判断范式级别 设有关系模式W(C,P,S,G,T,R),其中各属性的含义是:C课程,P教师,S学生,G成绩,T时间,R教室,根据定义有如下数据依赖集 D{ C→P,(S,C)→G,(T,R)→C&…

时序预测 | MATLAB实现SSA-LSTM、LSTM麻雀算法优化长短期记忆神经网络时间序列预测(含优化前后对比)

时序预测 | MATLAB实现SSA-LSTM、LSTM麻雀算法优化长短期记忆神经网络时间序列预测(含优化前后对比) 目录 时序预测 | MATLAB实现SSA-LSTM、LSTM麻雀算法优化长短期记忆神经网络时间序列预测(含优化前后对比)预测效果基本介绍程序设计参考资料 预测效果 基本介绍 麻雀搜索算法(…

Redis最新版本安装教程——Linux操作系统(Centos7)

Redis是基于C语言编写的,因此首先需要安装Redis所需要的gcc依赖: yum install -y gcc tcl 下载安装包并解压 Redis的官方网站地址:RedisRedis is an open source (BSD licensed), in-memory data structure store, used as a database, cach…

【前端下载文件流详解】前端实现多种类型文件(word,excel,pdf,rar,zip等)的下载,接口返回文件流形式(附源码)

【写在前面】其实之前我也写了有关java实现文件的下载,但是当时是局限于excel文档,针对其他类型的并没有介绍,这次刚好有个客户现场反馈回来的,说我们系统确实能下载报告,但是甲方领导要看所有的报告,这不我…

【持续升级】Vue3 系统入门与项目实战无密分享闻郎江上唱歌声

Vue3 系统入门指南:开发高效、可维护的Web应用 【持续升级】Vue3 系统入门与项目实战 下栽のke呈:https://www.666xit.com/3811/ Vue.js是目前最流行的JavaScript框架之一,它的最新版本Vue3已经发布。Vue3具有更好的性能和可维护性&#x…

HNU数据结构与算法分析-小班6

HNU数据结构与算法分析-小班6

一文带你入门MySQL

目录 一、MySQL登陆1.配置MySQL环境变量2.MySQL登陆命令 二、MySQL基础知识1.数据类型(1)整型(2)浮点型(3)日期型(4)字符型(5)数据类型小结 2.MySQL的约束【重…

​力扣解法汇总1105. 填充书架

目录链接: 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣 描述: 给定一个数组 books ,其中 books[i] [thicknessi, heighti] 表示第…

【c语言习题】return中途结束 函数调用

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 给大家跳段街舞感谢支持&#xff01;ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ…

王道计组(23版)6_总线

总线概述 特点 分时&#xff1a;同一时刻只允许一个部件向总线发送信息 共享&#xff1a;总线上可以挂接多个部件&#xff0c;各个部件互相交换的信息都可以通过这组线路分时共享&#xff0c;多个部件可以同时从总线接收相同的信息 分类 片内总线&#xff1a;CPU芯片内部AL…

如何实现延时任务(订单到期关闭)

目录 一、被动关闭 二、定时任务 三、JDK自带的DelayQueue 四、Netty的时间轮 五、Kafka的时间轮 六、RocketMQ延迟消息 七、RabbitMQ死信队列 八、RabbitMQ插件 九、Redis过期监听 十、Redis的zset 十一、Redisson Redis 总结 在电商、支付等系统中&#xff0c;…

【某软件消息的加解密分析】

首先来熟悉一下ida的使用。 首先找到打开ida&#xff0c;点击"debugger"-> “run” -> “local windows debugger"后&#xff0c;从Application中找到程序并点击"ok”&#xff0c;程序停在入口处。 因为我们要调试的是接收数据包的加解密过程&…

MIT6.S081操作系统实验2021(xv6系统)——lab1 Xv6 and Unix utilities

MIT6.S081操作系统实验2021——lab1 参考文章 sleep 要求为xv6实现UNIX 程序sleep&#xff1b;其应该暂停用户指定的ticks number。tick是 xv6 内核定义的时间概念&#xff0c;即计时器芯片的两次中断之间的时间&#xff08;两次时钟中断之间的时间&#xff09;。您的解决方…

从服务员到高级测试工程师,我的坎坷之路谁又能懂

首先要感谢那些嘲讽我代码写的烂的人&#xff0c;五年开发经验嘲笑刚出校门踏入社会的我&#xff0c;让我放弃了开发工作&#xff0c;走向测试的康庄大道。此外&#xff0c;曾经的开发经验对我测试工作的帮助是无与伦比的。数据库&#xff0c;编程语言&#xff0c;liunx&#x…