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

2024-09-06 06:04

本文主要是介绍【软件测试】软件测试-----什么是Bug?Bug是如何分级的?Bug的生命周期是怎样的?如何描述一个Bug?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

博客目录

  • 一.软件测试的生命周期
  • 二.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的生命周期,理解那张流程图.

这篇关于【软件测试】软件测试-----什么是Bug?Bug是如何分级的?Bug的生命周期是怎样的?如何描述一个Bug?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1141207

相关文章

Maven(插件配置和生命周期的绑定)

1.这篇文章很好,介绍的maven插件的。 2.maven的source插件为例,可以把源代码打成包。 Goals Overview就可以查看该插件下面所有的目标。 这里我们要使用的是source:jar-no-fork。 3.查看source插件的example,然后配置到riil-collect.xml中。  <build>   <plugins>    <pl

【Vue】关于Vue3的生命周期

目录 Vue3中新增了一个setup生命周期函数:(1) setup执行的时机是在beforeCreate生命周期函数之前执行,在setup函数中是不能通过this来获取实例的;(2) 为了命名的统一性,将beforeDestroy 改名为 beforeUnmount,destroyed 改名为 unmounted 生命周期函数: setup —— 不能通过this来获

09 生命周期

生命周期 beforeCreatecreatedbeforeMountmountedbeforeUpdateupdatedbeforeDestorydestoryed 辣子鸡:香辣入口,犹如吃了炫迈一样 - - - 根本停不下来 <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport"

LabVIEW程序员是怎样成长为大佬

成为一名LabVIEW编程领域的“大佬”需要时间、实践、学习和解决复杂问题的经验。尽管LabVIEW作为一种图形化编程语言在初期可能相对容易上手,但要真正成为精通者,需要在多个层面上深入理解。以下是LabVIEW程序员如何逐步成长为“大佬”的路径: 1. 打好基础 LabVIEW的大佬们通常在初期会打下非常坚实的基础,理解LabVIEW编程的核心概念,包括: 数据流编程模型:Lab

zblog自定义关键词和描述,zblog做seo优化必备插件

zblog自定义关键词和描述,zblog做seo优化必备插件     首先说下用到的一款插件:CustomMeta自定义数据字段 ,我们这里用到的版本是1.1,1.1+版增加了列表页标签支持!     插件介绍:文章,分类等添加自定义数据字段。1.1+版适用于 Z-Blog 2.0 B2以上版本。     在zblog2.0beta1里面,这个插件是集成到了程序里面,beta2里面默认没有了

Maven生命周期:深入理解构建过程

目录 1. Maven生命周期简介 2. 默认生命周期的阶段 3. 清理生命周期 4. 站点生命周期 5. Maven生命周期的灵活性 6. 结论         在Java开发中,Maven是一个不可或缺的工具,它通过自动化项目的构建、依赖管理和文档生成等任务,极大地提高了开发效率。Maven的核心之一是其构建生命周期,它定义了项目构建过程中的一系列阶段。在这篇文章中,我们将深

十四、我们应当怎样做需求分析:子用例与扩展用例

用例模型作为UML中4+1视图中非常重要的一员,非常集中地体现了面向对象的分析与设计思想。用例模型将现实世界中连续的一个一个业务流程,按照场景划分到了一个一个的用例中。由于场景的出现,使得用例中的业务流程存在着高度的内聚性,从而成为了日后各种对象的雏形。同时,在用例分析中,又将那些存在于各个用例中的,相同或相近的业务操作提取出来,形成一个一个的子用例或扩展用例,又体现了面向对象设计中的复用性。现在

十三、我们应当怎样做需求分析:查询报表分析

在我以往的用例分析中,使用这样格式的用例模式,对于大多数业务操作流程来说是得心应手的,但对于有些功能来说总感觉不对劲。感觉不对劲的,就是那些查询、汇总与报表功能。对于这部分功能,需要我们描述的不是什么操作流程,而更重要的是那些数据项、数据来源、报表格式、数据链接,以及使用者、使用频率的说明。而这些,在以往的用例说明格式中统统都没有,怎么办呢?俗话说“东西是死的人是活的”,把我们的用例格式改改吧。

九、我们应当怎样做需求分析:功能角色分析与用例图

在我们进行一系列需求调研工作的同时,我们的需求分析工作也开始启动了。需求调研与需求分析工作应当是相辅相伴共同进行的。每次参加完需求调研回到公司,我们就应当对需求调研的成果进行一次需求分析。当下一次开始进行需求调研时,我们应当首先将上次需求分析的结果与客户进行确认,同时对需求分析中提出的疑问交给客户予以解答。这就是一个需求捕获->需求整理->需求验证->再需求捕获的过程。  但是,当我们经

八、我们应当怎样做需求调研:需求捕获(下)

前面我们讨论了,需求分析工作是一个迭代的过程:需求捕获->需求整理->需求验证->再需求捕获······需求捕获是这个迭代过程的开始,也是整个需求分析工作中最重要的部分。没有捕获哪来后面的整理与验证工作?但是,非常遗憾,按照我以往的经验,需求捕获是我们最薄弱的环节。前面我提到的许许多多项目开发的问题都可以归结为需求分析的问题,而许许多多需求分析的问题又都可以归结为需求捕获不完整的问题。需求捕获是整