【软件测试】软件测试-----什么是Bug?Bug是如何分级的?Bug的生命周期是怎样的?如何描述一个Bug?

news2024/12/22 9:55:38

博客目录

  • 一.软件测试的生命周期
  • 二.BUG的定义和级别
    • 2.1 bug的概念.
    • 2.2 如何描述一个bug.
    • 2.3bug的级别
      • 2.3.1 bug分级的意义.
      • 2.3.2 bug的四种级别.
  • 三.BUG的生命周期.
  • 四.当与开发人员发生冲突该如何处理(高频面试)
  • 五.总结

一.软件测试的生命周期

  • 软件测试贯穿于软件的整个生命周期,针对这句话我们一起来看一下软件测试是如何贯穿软件的整个生命周期。
  • 软件测试的生命周期是指测试流程(从开始测试到测试全部完成),这个流程是按照一定顺序执行的一系列特定的步骤,去保证产品质量符合需求。在软件测试生命周期流程中,每个活动都按照计划的系统的执行。每个阶段有不同的目标和交付产物.

在这里插入图片描述

  • 各个阶段的具体工作内容以及交付产物:
需求分析测试计划测试设计与开发测试执行测试评估上线运行维护
用户角度: 软件需求是否合理.技术角度: 技术上是否可行,是否还存在优化空间. 测试角度: 是否存在业务逻辑错误,冗余,冲突等问题制定测试计划: 什么时候开始测试, 什么时候结束测试,测试要持续多长时间测试设计: 根据需求文档,技术文档等相关文档编写测试用例. 测试开发: 这个阶段结束之后会产出一个测试文档, 明确接下来的测试过程中要使用到的测试方法,测试工具,测试形式等等测试执行: 充分利用测试设计与开发阶段编写的测试用例, 测试文档对项目尽可能做到全方位的测试评估: 测试是否通过, 测试是否还留有BUG,这个阶段结束之后,会产出一个测试报告测试结束之后,会将项目发布到线上环境,测试人员需要继续跟进进行测试,确保程序在线上环境下能够正常运行测试人员需要在项目运行之后继续跟进,进行后续的维护,有问题及时反馈给负责人

二.BUG的定义和级别

2.1 bug的概念.

  • 定义: 一个计算机bug指的是在计算机程序当中存在一个错误, 缺陷, 疏忽, 或者故障, 这些bug使程序无法正常运行. bug产生于程序的源代码或者程序设计阶段的疏忽或者错误.
  • 准确的来说:
    • 当且仅当规格说明书是存在且正确的, 程序与规格说明说之间不匹配就是错误.
    • 当需求规格说明书没有提到的功能, 判断的标准最终以用户为准: 当程序没有实现用户合理预期的功能要求时,就是软件错误.下图就是一个软件没有实现用户合理功能预期的软件错误
    • 在这里插入图片描述

2.2 如何描述一个bug.

  • 描述bug的基本要素:
    1. 问题出现的版本号.------>比如你在谷歌浏览器的128.0.6613.120(正式版本) (64 位)发现问题. 就需要要把出现问题的版本号告诉开发人员.
    2. 问题出现的环境.------>问题出现的环境可能是Linux,也可能是Windows.
    3. 问题出现的步骤.------>如何操作才能出现这个bug, 需要把这个过程告诉开发人员.
    4. 预期出现的结果.------>开发人员按照上述步骤,预期会出现什么结果.
    5. 实际出现的结果.------>开发人员按照上述步骤,实际会出现什么结果. 实际结果和预期结果往往是不同的.
  • 举个例子:
    • 问题出现的版本—>128.0.6613.120(正式版本) (64 位)

    • 问题出现的环境—>Windows家庭版

    • 问题出现的步骤:

      1. 打开谷歌浏览器, 输入网址 https://www.baidu.com/
      2. 等待网页首页渲染完成.
    • 预期结果: 在这里插入图片描述

    • 实际结果:在这里插入图片描述

2.3bug的级别

2.3.1 bug分级的意义.

  1. 合理分配资源:根据Bug的严重性分配开发资源,确保重要问题得到优先解决。
  2. 制定修复策略:不同等级的Bug有不同的修复时间要求,有助于项目管理和进度控制。
  3. 提高沟通效率:明确的Bug分级使得开发与测试团队之间的沟通更加顺畅,减少误解。
  4. 提升用户体验:及时处理影响用户体验的Bug,确保产品的稳定和可靠。
  5. 促进持续改进:鼓励提出改进建议,持续优化产品功能和性能。

2.3.2 bug的四种级别.

  • Blocker(崩溃):此级别的Bug会影响整个产品,例如系统崩溃、数据丢失等。具体例子包括严重的内存泄漏、用户数据丢失、系统崩溃、模块无法启动以及导致无法测试的错误如服务器500错误。这些问题需要立即解决,否则整个产品无法正常工作。
  • Critical(严重):此级别的Bug会影响主要功能,但不会导致系统崩溃。具体问题包括功能未实现、功能错误、数据通讯错误、轻微的数值计算错误以及安全性问题。这类问题也需要尽快解决,以确保产品功能正常。
  • Major(一般):此级别的Bug会影响某些功能或用户体验,但不会对系统整体造成严重影响。具体包括操作界面错误、边界条件下错误、提示信息错误、性能问题以及兼容性问题。这些问题可以稍后解决,但需要在下一个版本发布前修复。
  • Minor(轻微):此级别的Bug主要是界面、性能缺陷或建议性问题。具体如界面格式不规范、辅助说明描述不清楚、个别错别字及文字排列不整齐。这些问题通常是非关键性的,可以在后续版本中逐步改进。
  • Suggestion(建议):此级别的Bug涉及对产品的优化和改进建议,不会影响现有功能。例如产品设计方面的意见和建议、界面优化以及增强用户体验的建议。这些问题可以根据项目进度和资源情况灵活处理。

三.BUG的生命周期.

  • New : 新发现的bug, 未经评审决定是否指派给开发人员进行修改。
  • Open : 确认是Bug,并且认为需要及进行修改,指派给相应的开发人员。
  • Fixed : 开发人员进行修改后标识成修改状态,有待测试人员的回归测试验证。
  • Rejected:如果认为不是Bug,则拒绝修改。
  • Delay : 如果认为暂时不需要修改或暂时不能修改,则延后修改。
  • Closed:修改状态的Bug经测试人员的回归测斌验证通过,则关闭Bug。
  • Reopen:如果经验证Bug仍然存在,则需要重新打开Bug,开发人员重新修改。
    无效的bug:open->closed open-rejected-closed

在这里插入图片描述

四.当与开发人员发生冲突该如何处理(高频面试)

  1. 先检查自己, 是否是bug描述不清楚.
    • 反省自己: 是不是在测试的时候出现了操作失误, Bug描述是不是不够清楚,开发人员没有get到bug点.
  2. 站在用户的角度考虑,并抛出问题
    • 功能正常只是测试的一部分, 还需要考虑用户的使用感受—>如果你是用户,这样设计你能接受吗?
  3. BUG的定级需要有理有据
    • bug定级描述文档拿出来, 然后将bug的表现和bug的定级描述文档进行匹配,说服程序员.
  4. 提高自身的业务技术水平, 做到不仅要能够提出问题, 也要能够提供解决bug的参考意见
    • 良好态度,相互协助才能开发出一款好的产品.
  • 如果上述的方法还是说服不了开发人员,此时就需要进行bug评审:
    • Bug评审主要有三个代表: 测试代表(通常是你和你的领导), 开发代表(通常是开发人员和他的领导), 产品代表
    • Bug评审主要解决的问题:
      1. 首先要决定如何处理这个bug
      2. 分析缺陷产生的原因,找出预防的策略.

五.总结

  • Bug对用户而言是出现与用户预期结果不同的现象. 对开发测试人员来说就是测试出现的结果和软件需求文档预期的结果不同.
  • 描述一个bug就是给开发人员描述你咋什么样的环境下出现了bug, 描述就是要让开发人员能够复现bug.
  • bug的分级,以及bug的生命周期,理解那张流程图.

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

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

相关文章

Day-02-QPushButton设置信号与槽一在UI界面直接设置槽函数

1.点击UI界面 2.选择Push Button按键 3.右键选择转到槽 4.根据自己的需要选择信号事件 5.在自动生成的函数内编写自己需要完成的动作

【网络安全】服务基础第一阶段——第十一节:Windows系统管理基础----PKI技术与应用

目录​​​​​​​ 一、加密技术 1.1 基本保密通信模型 1.2 密码学发展 1.2.1 古典密码学(1949年前) 1.2.2 近代密码学(1949~1975年) 1.2.3 现代密码学(1976年以后) 1.3 古典密码 1.3.…

基因组学中的深度学习

----/ START /---- 基因组学其实是一门将数据驱动作为主要研究手段的学科,机器学习方法和统计学方法在基因组学中的应用一直都比较广泛。 不过现在多组学数据进一步激增——这个从目前逐渐增多的各类大规模人群基因组项目上可以看出来,这其实带来了新的挑…

数字签名,数字证书,时间戳

简介 数字签名、数字证书和时间戳是现代网络安全技术中的重要组成部分,它们共同确保了数据传输的安全性和完整性。 数字签名 数字签名是一种基于公钥加密技术的电子签名方式。它通过使用发送方的私钥对消息进行加密生成一个特定的签名值,并将该签名值与…

四川财谷通抖音小店新宠儿,科技生活一键购!

在数字经济蓬勃发展的今天,电商平台如雨后春笋般涌现,其中抖音小店凭借其庞大的用户基础、精准的算法推荐以及创新的营销模式,成为了众多商家竞相入驻的热门选择。而四川财谷通信息技术有限公司,作为这一领域内的佼佼者&#xff0…

煤矿广播通信系统

在煤矿这样的特殊工作环境中,煤矿广播通信系统发挥着至关重要的作用。它就如同煤矿中的“传音使者”,保障着各项工作的顺利进行和人员的安全。 系统功能 煤矿广播通信系统具备多种强大的功能。首先,它拥有实时广播功能,能够及时传…

应用商店优化(ASO)的四大误区

应用商店优化 (ASO) 是移动营销中最重要的部分之一,可以帮助开发人员吸引自然流量并在应用推广方面取得预期效果。近年来ASO优化在开发者中越来越受欢迎。虽然它已经证明了其有效性和对应用成功的影响力,但尽管如此仍然存在与ASO相关的误解,导…

Rust 赋能前端:PDF 分页/关键词标注/转图片/抽取文本/抽取图片/翻转...

❝ 我从不幻想成功。我只会为了成功努力实践 大家好,我是柒八九。一个专注于前端开发技术/Rust及AI应用知识分享的Coder ❝ 此篇文章所涉及到的技术有 WebAssembly Mupdf Pdf操作( 分页展示/文本抽离/文本标注/获取超链接/Pdf转图片/翻转/截取) 因为,行文…

Chrome 浏览器插件获取网页 window 对象(方案一)

前言 最近有个需求,是在浏览器插件中获取 window 对象下的某个数据,当时觉得很简单,和 document 一样,直接通过嵌入 content_scripts 直接获取,然后使用 sendMessage 发送数据到插件就行了,结果发现不是这…

【unplugin-vue-router】超级实用的自动路由,具体使用教程!

一、安装 vite 创建vue项目的时候选择 auto import 【推荐】 二、使用 原理:参考 vite 官网 来看一个简单的例子: 这是项目的pages目录结构 src/pages/ ├── index.vue ├── about.vue └── users/├── index.vue└── [id].vueunplugin-…

C语言08--指针数组结合

前言: 这次的指针数组结合乃作者呕心沥血之作,大家翻翻进度条就知道了,内容十分干货,各位读者若能全部耐心解析读懂了,想必也能理解掌握C语言中的数组指针这两把利剑了。 指针数组结合: 指针数组 概念&a…

异步编程学习

UniTask UniTask 访问UniTask的GitHub的主页可以直接下载unity Package进行导入,或者通过 Package Manager导入,导入完成之后根据文档加一下 宏定义“UNITASK_DOTWEEN_SUPPORT” 这样就可以正常的控制DoTween了 2.UniTask 的简单使用 // UniTask 是可以作…

lambda表达式用法——C#学习笔记

“Lambda 表达式”是一个匿名函数,它可以包含表达式和语句,并且可用于创建委托或表达式目录树类型。 实例如下: 代码如下: using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.…

景联文科技:专业视频标注服务助力计算机视觉应用升级

视频标注是指对视频内容进行分析,并在视频中的特定对象、行为或事件上添加标签的过程。 视频标注包括: 1. 对象检测与跟踪 •对象检测:在每一帧中识别并定位特定的对象,如人、车、动物等。 •对象跟踪:跟踪这些对象…

你知道吗?Python现在这么火爆的真相!

Python之所以如此火爆,主要得益于其多方面的优势和广泛的应用场景。以下是对Python火爆原因的详细归纳: 1. 易学易用 语法简洁:Python的语法设计非常简洁、直观,易于学习和理解。初学者能够快速上手,减少编写代码时的…

解决linux云服务器ping不通另一台linux云服务器的问题

这里以华为云服务器为例 1、找到云主机详情:xxx实例 / 实例概览 / 服务器详情,找到安全组 2、找到云主机当前在使用的安全组,添加入向规则 注意这里要选择 ICMP 协议,因为 ping 的协议是基于 ICMP 协议工作的 3、再次ping即可通 …

多目标应用:四种多目标优化算法(NSGA2、NSPSO、NSDBO、NSCOA)求解柔性作业车间调度问题(FJSP),MATLAB代码

一、柔性作业车间调度问题 柔性作业车间调度问题(Flexible Job Scheduling Problem, FJSP) 的描述如下:n个工件 { J , J 2 , . . , J n } \{J,J_2,..,J_n\} {J,J2​,..,Jn​}要在 m m m 台机器 { M 1 , M 2 , . . , M m } \{M_1,M_2,..,M_m\} {M1​,M2​,..,Mm​} …

linux基础IO——动静态库——实现与应用学习、原理深度解析

前言:本节内容是基础IO部分的动静态库。 本节内容, 我们将站在实现者的角度上自己实现一下动静态库, 并且会站在使用者的角度上使用我们自己实现的库。过程中牵扯到许多新的知识, 最后我们会重谈一下我们的进程。 理解一下有了动静…

【Python基础】想学好Python,就必须要知道的Python知识。一篇文章带你了解Python,学好Python!!!

Python知识涵盖面非常广泛,从基础语法到高级特性,再到丰富的库和框架,都是Python学习的重要组成部分。 一、基础语法 变量与数据类型: Python是动态类型语言,变量无需声明类型,直接赋值即可。常见的数据类…

织梦dedecms后台文章列表显示空白或有页码显示不了文章的解决方案

cms系统在用的过程才会发现更多的问题,dedecms也不例外。 问题描述: 可以正常登录,列表正常显示,文章页码也是正常,就是无法显示文章的标题。 分析原因: 1、是否改动源码 2、数据库是否完整 在数据库是…