详解BUG(又名:BUG的生命周期)
测试人员最本质的工作就是寻找bug,提交bug、验证bug、推进bug的解决,直至软件达到发布的标准,提高软件的质量,及研发的工作效率和质量。
一、什么是bug
软件的BUG,狭义概念是指软件程序的漏洞或缺陷,广义概念除此之外还包括测试工程师或用户所发现和提出的软件可改进的细节、或与需求文档存在差异的功能实现等。
二、bug的生命周期
生命周期中缺陷状态:新建-->指派-->已解决-->待验-->关闭
发现BUG-->提交BUG-->指派BUG-->研发确认BUG-->研发去修复BUG-->回归验证BUG-->是否通过验证-->关闭BUG
1、发现bug
1)按照测试用例进行操作,发现和测试用例的预期结果不一致的,都可以被称之为Bug。
2)测试用例不可能穷尽,总有超出你预料之外的因素,或者是神操作出现的bug。
3)成本问题,没有充足的时间编写测试用例,发现的bug
2、提交bug
在提交一个缺陷的缺陷,首先尽量描述这个缺陷的属性。Bug重现环境,bug类型,bug等级,bug的优先级以及详细的重现步骤,结果与期望等。
当然,我们在提交一个问题之前首先应该保证,这个缺陷是没有被提过的,以免造成重复缺陷单。
3、指派bug
这一步不是必须的,跟项目模式有关,有些公司测试部门与开发部门独立,那么测试人员就不确定自己测试的模块是由哪位开发人员负责的,在这种情况下,测试人员统一把问题指派给项目组长或经理,由项目组长(或经理)对问题进行确认后再次分配给相应的开发人员。
有些测试人员是穿插到不同研发团队中的,所以对不同的开人发员负责的开发模块非常清楚,这个时候就可以将问题直接指派给相应的开发人员。
也有一种情况,本来此问题应该由A开发人员负责,但由于A开发人员的调离或辞职,些问题为转交给其它人员处理。“分配”强调是上级对下级;“转交”强调的是平级之间。
4、确认缺陷
当开发人员接到一个缺陷时,首先是对其进行分析与重现,如果对其进行分析发现不是缺陷(可能由于测试人员不了解需求)或无法对此问题进行重现,那么就需要将此问题反回给测试人员,并注明原因。如果确认为缺陷则需要对其进行处理。
5、修复BUG
推迟处理
在处理问题之后,还需要进行一次判断,是否需要推迟处理,有些需求已经确认了是问题,由于其可能在极端情况下才会出现,或需要对系统架构进行改动,或其优先级非常低,所以暂时不需要对此问题进行处理(或到下个版本进再进行修复)。
固定
对于推迟处理的问题可以暂时进行固定(“固定”为QC中的叫法。)一般固定的问题需要经过项目经理与测试经理协商后才能固定。
处理缺陷
开发人员在确认完一个问题需要处理时,那么就对其进行处理工作。(例如,redmine 是支持处理人时时更新问题处理进度的,如 已处理30% ,已处理80% 等,当然,对于短时间内可以修复的问题就没必要时时的去更新处理进度。)
6、回归验证BUG
回归缺陷对于测试人员来说是非常重要的工作,其有三个入口两个出口。
确认非缺陷问题:对于提交的一个缺陷,开人员处理为非问题或无法重现,然后直接转交给测试人员回归。测试人员再次确认,如果真如开发人员所说,则将问题关闭。如果非开发人员所说,是由于问题描述模糊或其它原因喂重现问题,则再次注明原因转给开发人员。
确认修复问题:对开发人员修复的问题再次进行确认,确认能过,则关闭问题。确认不通过,将问题再次打开并转给开发人员。
确认固定问题:有计划的对固定问题进行确认,有些固定问题随着时间的推移,版本的更新或已经不存在了,对这类问题应该及时关闭。有些固定问题依然存在且变得紧急,对于这类问题应该及时打开交给开发人员处理。
7、关闭缺陷
对于已经修复的缺陷进行关闭,这也是一个缺陷的最后一个状态。
在做接口测试的时候可以使用国产的接口测试和接口文档生成工具apipost
详解BUG(又名:BUG的生命周期)相关推荐
- alert 返回页面 刷新_详解 HTML 页面原生的生命周期事件
DOMContentLoaded,load,beforeunload,unload HTML 页面的生命周期包含三个重要事件: DOMContentLoaded -- 浏览器已完全加载 HTML,并构 ...
- 详解.NET Core 依赖注入生命周期
前言 .NET Core 自带依赖注入框架,支持三种不同生命周期的注入模式: Singleton 单例模式 Scoped 区域模式 Transient 瞬时模式 但是常常不知道什么时候使用哪种模式才 ...
- android Fragments详解六:处理fragement的生命周期
把条目添加到动作栏 你的fragment们可以向activity的菜单(按Manu键时出现的东西)添加项,同时也可向动作栏(界面中顶部的那个区域)添加条目,这都需通过实现方法onCreateOptio ...
- 详解android之activity的生命周期
android中用到最多的就是activity,它也是android的四大组件之一,开发过程中也是最常用到的组件,所以我们有必要去掌握它在程序运行的生命周期是怎么回事 在了解activity的生命周期 ...
- [KANZI]详解Kanzi One应用程序生命周期事件
添加启动逻辑 你可以用以下逻辑去在应用中定义你的启动逻辑 Kanzi在启动应用程序后立即调用Application::onStartup() 函数一次,再它加载初始化UI内容之前,可以添加需要修改已初 ...
- 一分钟详解initUndistortRectifyMap函数bug修复方法
本文首发于微信公众号「3D视觉工坊」--一分钟详解initUndistortRectifyMap函数bug修复方法 在上一篇文章OpenCV中initUndistortRectifyMap函数存在bu ...
- 软件测试基础知识(二)------------等价类划分法、边界值分析法、场景法、错误推测法、bug定义/类型/优先级/生命周期/跟踪管理
等价类划分法 是把程序的输入域划分成若干个子集合(等价类),然后从每个子集合(等价类)中选取少数具有代表性的数据作为测试的输入数据. 在该子集合中,所有的输入数据对于揭露软件中的错误都是等效的.--- ...
- 【JavaWeb】一文Servlet全解:继承关系、生命周期、容器和请求转发与重定向等
文章目录 一.Servlet 概述 二.Servlet HelloWorld 三.Servlet 继承关系 四.Servlet 生命周期 五.ServletConfig 和 ServletContex ...
- Android7 WIFI系统 PNO机制流程详解和隐藏BUG修改
WIFI启动过程,WifiStateMachine加载驱动固件,连接上wpa_s的socket并检查好配置文件后,进入到DisconnectedState状态.在DisconnectedState状态 ...
- [转载]Android7 WIFI系统 PNO机制流程详解和隐藏BUG修改
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/zhangdaxia2/article/ ...
最新文章
- 如果有的明星不会使用计算机,盘点娱乐圈不会用电脑手机的10大原始明星:最后一位出书都是手写...
- Dataset之Boston:Boston波士顿房价数据集的简介、下载、使用方法之详细攻略
- 「数据ETL」从数据民工到数据白领蜕变之旅(三)-除了Excel催化剂之外PowerQuery新物种同样值得期待...
- 关于Asp.Net开发中导入外部JavaScript文件的问题
- tdms打开闪退问题
- Python实现:某个用户登录后,查看自己拥有所有权限
- 是否进行“ git导出”(如“ svn导出”)?
- 3.2 Zend_Db_Select
- linux中ldd命令查看二进制文件(程序或库)所依赖的其他库(LIBTIFF_4.0未定义的引用问题)
- 数据统计分析(1):数据分析流程
- for(atuo x : s)
- 马氏距离 java实现_马氏距离(Mahalanobis Distence) [python]
- 1+xbim证书含金量_bim证书哪个含金量高
- Qt-------->第六天,Qt高级编程
- 藏苹果 HNSUT 1889
- 华为云服务器双十一报价表出炉最新内容
- MES系统数据采集实现方法
- B站粉丝数显示器代码解析学习
- 2022-D^3CTF-Web-Writeup
- 重温:求知若饥,虚心若愚
热门文章
- 贪心算法---礼堂的安排
- oj. 1008——最长公共子序列
- 笔试练习题001...to be continued...
- 探索自助报表BI的现状和未来(文末送福利)
- Fatal error: Uncaught Error: Call to undefined function mysql_connect() in C:\tniuwamp\Apache24\htdo
- 解决宝塔面板Nginx反向代理Cloudflare出现502或403错误
- vSphere/ESXI 6.0 服务器U盘安装详细教程
- 一个简单的shell脚本--判断网段主机IP存活情况
- 一生的读书计划——影响中国历史进程的中国名人
- spring同类方法调用事务使用说明