【软件测试】软件测试生命周期与Bug

news2024/11/22 14:38:49

目录

📕 前言

🌴软件测试的生命周期

​编辑🌲BUG

🚩 概念

🚩描述bug的要素

🚩bug的级别

🚩bug的生命周期

🏀先检查自身,是否bug描述不清楚

🏀站在用户的角度考虑并抛出问题

🏀BUG定级要有理有据

🏀提高自身技术和业务水平,做到不仅能提出问题,最好也能给出解决方案

🏀BUG评审


📕 前言

本篇文章主要内容如下:

  • 软件测试的生命周期
  • 如何描述一个bug
  • 描述bug的要素
  • 如何定义bug的级别
  • bug的生命周期
  • 与开发起争执了怎么办

🌴软件测试的生命周期

软件测试贯穿于软件的整个生命周期,针对这句话我们一起来看一下软件测试是如何贯穿软件的整个生命周期。

软件测试的生命周期是指测试流程,这个流程是按照一定顺序执行的一系列特定的步骤,去保证产品质量符合需求。在软件测试生命周期流程中,每个活动都按照计划的系统的执行。每个阶段有不同的目标和交付产物。

各阶段具体内容:

🌲BUG

🚩 概念

定义:一个计算机bug指在计算机程序中存在的一个错误(error)、缺陷(flaw)、疏忽(mistake)或者故障 (fault),这些bug使程序无法正确的运行。Bug产生于程序的源代码或者程序设计阶段的疏忽或者错误。

准确的来说:

  1. 当且仅当规格说明(需求文档)是存在的并且正确,程序与规格说明之间的不匹配才是错误。
  2. 当需求规格说明书没有提到的功能,判断标准以最终用户为准:当程序没有实现其最终用户合理 预期的功能要求时,就是软件错误。

🚩描述bug的要素

描述bug的基本要素:问题出现的版本、问题出现的环境、问题出现的步骤、预期结果、实际结果

例如:二维码被遮挡了

  • 问题出现的版本:⾕歌浏览器版本123.0.6312.123(正式版本)(64位)
  • 问题出现的环境:Windows家庭版
  • 问题出现的步骤:
  •     1、打开谷歌浏览器,输入⽹址https://www.101eduyun.com/
  •     2、等待首页页面渲染完成
  • 预期结果:二维码与登陆模块不会出现遮挡,二维码可以正常扫描实际结果:二维码被登陆模块遮挡,二维码扫描失败

🚩bug的级别

通过定义bug的级别,能够明确看出问题的严重程度。工作中开发人员通常需要按照bug的级别来分配优先级来处理bug,除此之外,通过bug级别也能够体现出开发人员的开发质量。

案例:

  • 男朋友多看了几眼美女:次要
  • 男朋友跟美女加微信聊天:一般
  • 男朋友跟美女私下去吃饭:严重!!!
  • 男朋友跟美女去做头发:崩溃!坚决踹了!!!

bug级别⼀般分为:崩溃、严重、⼀般、次要(有的公司定义为P0,P1,P2,P3)

🚩bug的生命周期

测试人员在执行测试的过程中如有发现bug,需要在对应的bug管理平台来创建bug(bug生命起 源),创建好的bug需要被开发人员修复,以及测试人员的持续跟踪和测试。

测试人员应该跟踪一个Bug的整个生命周期,从Open到Closed的所有状态。

BUG状态转换图如下:

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

🚩与开发产生争执怎么办(高频考题)

在测试工作中,最常遇到的是和开发人员的PK,作为测试经理还会和项目经理、产品经理的PK进度、 质量。作为一名测试人员,一般会遇到以下几种情况:

遇到争执不要怕,要理性的分析和反馈问题。

🏀先检查自身,是否bug描述不清楚

如果能正确地、高质量地录入一个Bug,那么基本上已经成功地与开发人员沟通了一大半的关于Bug 的信息。但是总有“书难达意”的时候,这时就需要测试人员主动与开发人员进行沟通了。如果测试人员发现在写完一个缺陷后,好像还有很多关于Bug的信息没有表达出来,或者很难用书面语言表达出来时, 就应该在提交Bug后,马上找相关的程序员解释刚才录⼊的Bug,确保程序员明白Bug描述的意思, 而不要等待开发人员找自己了解更多的信息。

🏀站在用户的角度考虑并抛出问题

站在用户角度考虑问题应该让开发人员了解到Bug对用户可能造成的困扰,这样才能促使开发人员 更加积极地、高质量地修改Bug。在争执时,可以问一句:如果你是用户,你可以接受么?

🏀BUG定级要有理有据

BUG定级时,不仅要参考BUG级别,还要考虑BUG是否会影响到流程,往往用户的BUG级别和我们的是有区别的,需站在用户的角度定考虑定位级别。将BUG定级描述文档拿出来,然后将BUG的表现和BUG定级描述文档进行匹配,说服程序员。

🏀提高自身技术和业务水平,做到不仅能提出问题,最好也能给出解决方案

提高自身的业务和技术水平,不但要做到能提出问题,还能够提出解决问题的思路。这样才能更让人信服。在工作中,你会发现同一个bug,资深测试工程师提出和初级测试工程师提出,两者的结果完全不同,两者最大的差别是资深测试工程师往往会提出解决方案。而长此以往,权威性逐渐的建立起来,那么开发人员看到bug的第⼀反应,就是这是一个bug,而不是这是⼀个bug吗? 注意:可以给出解决方案,但是不能喧宾夺主,命令式让开发人员按照自己的想法来修改。

🏀BUG评审

若是开发人员比较犟,怎么说都不听的情况下,就需要进行bug评审        

bug评审主要解决两个问题:

  • 决定如何处理bug
  • 分析缺陷产生的原因,找出预防的对策

bug评审至少需要项目组各个方面的代表参加:

  • 1)测试代表

测试代表主要从Bug的具体表现、严重程度等方面提供信息,并提出自己对Bug的处理意见。需要注意的是,测试人员不应该一味地要求对Bug进行修改,因为修改可能带来回归的风险,同时带来的是回归测试的工作量,如果时间比较紧迫,修改后剩余的时间若不足以做一次有效的回归测试,可能不修改是个明智的选择。

  • 2)开发代表

开发代表主要从修改缺陷的难度和风险出发,考虑缺陷修改需要付出的代价,以及可能影响的范围、 可能引发的风险等,如果决定要修改,还要讨论出修改的初步方案。

  • 3)产品代表

产品代表主要从产品的整体计划、用户的要求等方面对缺陷的修改必要性、缺陷修改的时间和版本提出自己的意见

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

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

相关文章

JavaScript学习文档(9):事件流、事件委托、其他事件、元素尺寸与位置

目录 一、事件流 1、事件流的两个阶段 2、事件捕获 3、事件冒泡 4、阻止冒泡 5、解绑事件 (1)解绑事件 (2)鼠标经过事件区别 二、事件委托 1、优点 2、原理 3、实现 4、tab栏切换案例改造 三、其他事件 1、页面加载…

不可不知的HDMI之前世今生

1、HDMI的产生 2002年4月,来自电子电器行业的7家公司——日立、松下、飞利浦、SiliconImage、索尼、汤姆逊、东芝,共同组建了HDMI接口组织——HDMIFounders(HDMI论坛),开始着手制定一种符合高清时代标准的全新数字化视…

nginx转发接口地址【非常实用】

使用场景 由于客户的需求是要访问一个外网接口 比如http://58.20.57.190:6652 实例 http://58.20.57.190:6652//uploadBasePatient?Barcode1000000073&customerCode1 比如外网才能访问,科室电脑是访问不了外网的 我们就需要中间在一个既有外网又有内网的前置…

数据结构(邓俊辉)学习笔记】串 09——BM_BC算法:以终为始

文章目录 1. 不对称性2. 善待教训3.前轻后重4.以终为始 1. 不对称性 上一节所介绍的 KMP 算法计算时间,在最坏情况下也可以保证不超过线性。这的确是一个好消息。然而,倘若我们因此就停下继续优化的脚步,那就大错特错了。 实际上&#xff0c…

如何在Java爬虫中设置代理IP:详解与技巧

在进行网络爬虫时,使用代理IP可以有效地避免被目标网站封禁,提升数据抓取的成功率。本文将详细介绍如何在Java爬虫中设置代理IP,并提供一些实用的技巧和示例代码。 为什么需要代理IP? 在进行爬虫操作时,频繁的请求可能…

深度学习基础—彩色图片的卷积运算

深度学习基础—卷积运算http://t.csdnimg.cn/2mRei 上篇文章卷积运算实际是灰度图像的运算(2维空间),但是实际中我们彩色图片使用的更多,和灰度图像不同的是:彩色图片是由三原色(红、绿、蓝)组成…

C# 对桌面快捷方式的操作设置开机启动项

首先在项目中引入Windows Script Host Object Model,引入方式如下图。 对于桌面快捷方式的修改无非就是将现有的快捷方式修改和添加新的快捷方式。 1、遍历桌面快捷方式,代码如下。 string desktopPath Environment.GetFolderPath(Environment.Special…

机器学习:DBSCAN算法(内有精彩动图)

目录 前言 一、DBSCAN算法 1.动图展示(图片转载自网络) 2.步骤详解 3.参数配置 二、代码实现 1.完整代码 2.代码详解 1.导入数据 2.通过循环确定参数最佳值 总结 前言 DBSCAN(Density-Based Spatial Clustering of Applications w…

World of Warcraft [CLASSIC][80][Grandel] Call to Arms: Strand of the Ancients

Call to Arms: Strand of the Ancients - Quest - 魔兽世界怀旧服CTM4.34《大地的裂变》数据库_大灾变85级魔兽数据库_ctm数据库 Call to Arms: Strand of the Ancients 战斗的召唤:远古海滩 打掉最后一个门【古代圣物之厅】,人跳进去就赢了

算法之二分查找法和双指针

用二分查找法刷leetcode算法题目的时候&#xff0c;经常遇到视频看着理解很透彻&#xff0c;当上手写时一看就会&#xff0c;一写就废。二分查找法涉及边界条件很多&#xff0c;逻辑很简单&#xff0c;就是写不好。何时写 while(left<right)&#xff0c;while(left<right…

【动态规划】背包问题 - 二维费用的01背包问题

文章目录 1. 前言2. 二位费用的01背包问题2.1_一和零2.2_盈利计划2.3_珠宝的最高价值 3. 似包非包问题3.1_不同的二叉搜索树3.2_组合总和Ⅳ 1. 前言 关于 动态规划的理解 与例题&#xff0c;点击&#x1f447; 【动态规划】C解决斐波那契模型题目&#xff08;三步问题、爬楼梯…

winXP下构建python开发环境

近期车间有个动平衡检测仪数采的需求&#xff0c;工控机是xp系统&#xff0c;原理也很简单&#xff0c;监控文件变化&#xff0c;发现有新的检测数据就调用远程接口传输到服务器上去。 通常python监控文件变化会用watchdog这个库&#xff0c; 可是xp太老了&#xff0c;测试了一…

身份实名认证-身份证实名认证-身份证实名-实名认证-身份证二要素-身份证实名认证-身份实名认证-身份证号码实名认证核验校验接口

身份证号码实名认证接口API是一种服务&#xff0c;它允许开发者或企业通过编程方式验证用户提供的身份证号码是否真实有效&#xff0c;以及该身份证号码与提供者的姓名是否匹配。这种服务对于确保用户身份的真实性、防止欺诈行为以及遵守相关法律法规&#xff08;如反洗钱法、网…

自博弈-PSRO类方法综述

参考文章&#xff1a;PSRO2024最新综述 关键名词 解释 Meta-Strategy Solver (MSS) 元博弈求解器&#xff0c;从现有策略集合中提取meta-strategy&#xff08;策略集合中每个策略对应一个权重&#xff09;用于构造新策略的优化目标 Response Objective&#xff08;RO&#…

【系统分析师】-缓存

目录 1、常见分类 2、集群切片方式 3、Redis 3.1、分布式存储方式 3.2、数据分片方式 3.3、数据类型 3.4、持久化方案 3.5、内存淘汰机制 3.6、Redis常见问题 4、布隆过滤器 1、常见分类 1、MemCache Memcache是一个高性能的分布式的内存对象缓存系统&#xff0c;用…

RocketMQ:高速消息中间件的秘密武器

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 关于RocketMQ的详细图表&#xff0c;包含了Producer、Consumer、Broker和NameServer等关键组件&#xff0c;展示…

你知道有哪些Spring MVC扩展点可以解析接口参数和处理返回值吗?

1.概述 Spring MVC 是一个灵活且强大的框架&#xff0c;它允许开发者在框架的基础上进行深度定制&#xff0c;以满足各种复杂的业务需求。HandlerMethodArgumentResolver 和 HandlerMethodReturnValueHandler 是 Spring MVC 提供的两个重要扩展点&#xff0c;分别用于处理控制…

SLF4J 警告 - SLF4J: Class path contains multiple SLF4J bindings.

SLF4J 警告是因为类路径中存在多个 SLF4J 绑定。SLF4J 是一个抽象的日志接口&#xff0c;它可以与不同的日志实现&#xff08;如 Logback 或 SLF4J Simple&#xff09;一起使用。这个警告表明在你的项目中&#xff0c;SLF4J 找到了多个实现&#xff0c;导致它不知道该使用哪一个…

python如何判断回文

打开JUPTER NOTEBOOK&#xff0c;新建一个PYTHON文档。 n input("Please input string: ") print(n) 我们首先让用户输入要进行判断的字符串&#xff0c;然后打印出来查看一下。 n input("Please input string: ") is_palidrome n[::-1] if n is_palid…

Windows IPv6漏洞CVE-2024-38063

2024年8月&#xff0c;微软发现Windows10、Windows11、Windows Server2008~Server2022系统里&#xff0c;有个TCP/IP栈的远程代码执行漏洞&#xff0c;它通过目标系统的445端口&#xff0c;走IPv6协议&#xff0c;向目标系统发生特制的TCP包&#xff0c;执行任意代码&#xff0…