8年经验之谈:4步解决测试与开发人员有争议的bug问题...
“开发认为不是bug,测试如何处理?”很多面试中,测试工程师都会被问到这个问题,不仅仅是面试,工作中测试人员也会遇到这类问题,甚至可能由于某种原因,无论是开发人员还是开发经理就是不愿修改程序,那该如何处理这个棘手的问题呢?
首先,当与开发出现分歧意见后,测试工程师应首先做如下分析:
一、问题确认与评估
再次论证该问题确实是程序缺陷,并评估该缺陷的重要程度并对其分类。比如可存在以下分类:
- 1、设计文档范围内的功能性缺陷
- 2、影响到程序的安全性和稳定性缺陷
- 3、界面缺陷
- 4、一般性错误(如未考虑边界检查等)
- 5、边缘死角,规律不明显,不太容易重现的错误
- 6、兼容性错误(例如旧机型、CPU\MEM,旧标准等等)
- 7、安全性或易用性等的修改建议
- ……(可扩展)
二、明确Dev不修改该缺陷的确切原因
比如可存在以下原因:
- 1、规律不明显,不好重现
- 2、dev认为是不影响主要功能的一般性bug,因时间处于版本的稳定期,担心牵一发动全身引起更多错误
- 3、调用了第三方组件或库函,是第三方程序存在的缺陷
- 4、存在技术难点
- 5、设计本身存在问题,程序逻辑是正确的,但实现结果并非用户所需(换言之,dev说这是设计问题,不是程序问题)
- 6、Dev的个人主观意见:
该瑕疵可以容忍,没必要修改
修改该瑕疵会引起更大的问题
- 7、Tester和dev对错误的理解有分歧:
tester理解错误,该问题并不是bug
tester没有说服dev这是个bug
……(可扩展)
三、具体问题具体分析
分析完第一、二步之后,也就基本上明确了问题的争议焦点,然后具体问题具体分析。分析什么Bug会让开发认为不是bug?
1. 测试人员描述不清晰
工作中也有测试人员把某些“Bug操作步骤”描述的只有自己看得懂,开发人员按照步骤复现Bug不知所云,搞错了问题所在。
解决方法:
修改Bug操作步骤:清晰描述、无歧义、无冗余步骤,要达到即使给一个不懂的人去重现这个Bug,也能按照你的操作步骤复现。
2. 难以复现的Bug
不是所有的问题都能用同样的操作步骤来复现的,有的Bug概率出现甚至偶现,或者是只在测试环境里出现。
解决办法:
针对难以复现的Bug,需要保存截图或者记录log保留证据;对于只在测试环境下才会出现的,找研发在测试环境进行确认。这类Bug要慎重对待,规避风险。
3.有争议的Bug
有争议的Bug多发生于建议类型的Bug:与同类软件不符、易用性、美观性等类型的Bug。
解决办法:
这种问题是否要修改需要根据公司的项目类型进行讨论。开Bug评审会,在开发能实现的情况下说出自己的理由,改善产品。
4.功能性Bug
与需求不符、与原型设计不符。有时候研发对需求没有深入了解可能会忽略或者搞错个别功能。
解决办法:
拿证据(需求、设计说明书)给他看,这种bug自然合情合理。
四、发挥TM与PM的沟通职责
强调沟通
TM和PM有团队沟通的职责。在bug分类、指派和反馈过程中出现有争议的问题时,TM和PM有责任和义务进行干预。根据问题的重要程度和轻重缓急,采取不同的方式进行沟通,达成一致的解决意见,解决方法形成备忘录。
对因各种原因继续保留在发布版本中的bug,尤其可能影响功能的,应予以说明,提醒用户绕过。
经验教训库:这里的每个内容都是一个你犯过的错误,你在这里也记录的总结和反思;随着系统开发不断往前迭代,BUG的内容也会越来越丰富,沉淀了越来越多的经验,帮助我们了解错误原因所在,避免再犯。必须要说的是,一个团队要强大起来,先从自己的BUG系统开始做起。
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取
相关文章:
8年经验之谈:4步解决测试与开发人员有争议的bug问题...
“开发认为不是bug,测试如何处理?”很多面试中,测试工程师都会被问到这个问题,不仅仅是面试,工作中测试人员也会遇到这类问题,甚至可能由于某种原因,无论是开发人员还是开发经理就是不愿修改程序…...
Linux日常小技巧shell脚本
在工作中我们常用shell脚本处理一些问题,这里整理了一些工作中常用的简单shell脚本。 定时备份文件 #!/bin/bash backup_dir="/data1/backup" src_dir="/data1/app" date_time=$(date +%Y%m%d_%H%M%S) tar -czvf ${backup_dir}/${date_time}.tar.gz ${sr…...
技术创业者必读:从验证想法到技术产品商业化的全方位解析
导语 | 技术创业之路往往充满着挑战和不确定性,对于初入创业领域的人来说,如何验证自己的创业想法是否有空间、如何选择靠谱的投资人、如何将技术产品商业化等问题都需要认真思考和解决。在「TVP 技术夜未眠」第六期直播中,正马软件 CTO、腾讯…...
Docker Registry 本地镜像发布到私有库
本地镜像发布到私有库流程 是什么1 官方Docker Hub地址:https://hub.docker.com/,中国大陆访问太慢了且准备被阿里云取代的趋势,不太主流。2 Dockerhub、阿里云这样的公共镜像仓库可能不太方便,涉及机密的公司不可能提供镜像给公…...
Pytorch构建ResNet-50V2
🍨 本文为🔗365天深度学习训练营 中的学习记录博客 🍦 参考文章地址: 365天深度学习训练营-第J2周:ResNet-50V2算法实战与解析 🍖 作者:K同学啊 一、ResNetV2与ResNet结构对比 改进点 (a)origi…...
【01】PointNet论文解析
PointNet的应用 1.点云图像的分类(整片点云是什么物体) 2.点云图像的部件分割(整片点云所代表的物体能拆分的结构) 3.点云图像的语义分割(将三维点云环境中不同的物体用不同的颜色区分开) 补充 PointN…...
nuxt.js 在IE浏览器||其他浏览不识别document/window 情况处理
1 第一步注册到nuxt.config.js文件 2 第二步建立js 文件 import Vue from vue (function(){ if(process.client){ console.log(process.client) }else{ console.log(process.client) } if (!!window.ActiveXObject || "ActiveXObject" i…...
JavaEE简单示例——基于注解的SSM整合
基于注解的SSM整合 在之前我们进行了基于XML配置文件的整合,这次我们介绍基于注解的SSM框架的整合。基于注解的含义是将我们之前所有的配置文件用java类来代替,也就是我们会在Java类中编写之前我们之前在配置文件中编写的内容。 首先我们将之前我们编写…...
EFBG-06-250双比例阀放大器
EFBG-06-250双比例阀放大器特点: 1.本阀系仅供应驱动元件所需最低的压力及流量的入口节流式节能阀。 2.本阀可使油泵及马达侧的压力随时维持大于负载压0.6-0.9MPa的压差,因而可节省能耗。 3.外置比例放大器参数可调,维修更换简单。...
初级算法-栈与队列
主要记录算法和数据结构学习笔记,新的一年更上一层楼! 初级算法-栈与队列一、栈实现队列二、队列实现栈三、有效的括号四、删除字符串中的所有相邻重复项五、逆波兰表达式求值六、滑动窗口最大值七、前K个高频元素栈先进后出,不提供走访功能…...
菜鸟教程之Android学习笔记Service
Service初步 一、StartService启动Service的调用顺序 MainActivity.java package com.example.test2;import androidx.appcompat.app.AppCompatActivity;import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View;…...
半个月狂飙1000亿,ChatGPT概念股凭什么?
ChatGPT 掀起了AI股历史上最疯狂的一轮市值狂飙。 自春节后至今,ChatGPT概念股开始了暴走模式,短短半月时间,海天瑞声、开普云等ChatGPT概念股市值累计增加了近1400亿。 如此的爆炸效应,得益于ChatGPT所展现出商业化落地的巨大潜…...
linux使用systemctl
要使用 systemd 来控制 frps,需要先安装 systemd,然后在 /etc/systemd/system 目录下创建一个 frps.service 文件 安装systemd # yum yum install systemd # apt apt install systemd创建并编辑 frps.service 文件 [Unit] DescriptionFrp Server Serv…...
交换机和VLAN简介
一.二层设备(交换机和网桥)的区别简介 1.交换机: 2.网桥: 二.交换机原理介绍 三.VLAN概念介绍 1.VLAN将一个物理区域LAN划分为多个区域 2.作用: 3.标识方式VLAN ID 4.VLAN配置下MAC地址表的三元素 5.交换中的…...
想要拯救丢失的海康威视硬盘录像数据?可采用这三种恢复方法
海康威视作为全球领先的视频监控产品及解决方案提供商,其硬盘录像机可用于对大型公共场所、企事业单位及个人住宅等场所的安全监控。然而在实际使用中,有时会发生硬盘录像数据丢失的情况,这将对用户带来不小的损失和困扰。 硬盘录像数据丢失…...
每周一算法:高精度乘法(一)大整数乘整数
高精度乘法 乘法是我们在比赛中常用到运算之一,但在利用C++进行乘方或者阶乘计算时,由于其结果的增长速度很快,很容易就溢出了。例如: 13 ! = 6 , 227 , 020 , 800 13!=6,227,020,800 13!=6...
c++华为od面经
手撕代码: 力扣1004 最大连续1的个数 给定一个二进制数组 nums 和一个整数 k,如果可以翻转最多 k 个 0 ,则返回 数组中连续 1 的最大个数 。 输入:nums [1,1,1,0,0,0,1,1,1,1,0], K 2 输出:6 解释:[1,1,1…...
【郭东白架构课 模块二:创造价值】18|节点一:架构活动中为什么要做环境搭建?
你好,我是郭东白。在第 16、17 讲,我们讲解了架构师在架构活动中要起的作用,主要有达成共识、控制风险、保障交付和沉淀知识这四个方面。这是从架构师创造价值的维度来拆解的。 那么从这节课开始,我将从架构活动生命周期的维度上…...
15个awk的经典实战案例
目录 一、插入几个新字段 二、格式化个空白 三、筛选IPV4地址 命令及结果 第一种查询方式 第二种查询方式 第三种查询方式 四、读取.ini配置文件中的某段 命令及结果 第一种查询方式 第二种查询方式 五、根据某字段去重 命令及结果 第一种方式 第二种方式 六、…...
【JAVA】本地代码获取路径乱码
本地代码获取路径乱码 获取resources下资源乱码 解决方法: 获取路径后把返回值decode下就可以了. 用utf-8编码 String path this.getClass().getResource("").getPath();...
大厂Agent开发工程师亲授!这份核心技术学习路线助你轻松拿下高薪Offer!
结合个人实际的工作内容和招聘市场对于Agent开发的能力要求(阅读汇总了大量大厂的Agent开发招聘面经),我总结了一份核心技术学习路线。 这个学习路线由浅到深,基本覆盖了现在大厂对于Agent开发的技术要求,技术栈完全可…...
告别手动重复!用Python+ArcPy实现多要素批量裁剪年度影像的保姆级教程
PythonArcPy自动化遥感影像裁剪:从原理到实战的完整解决方案 遥感影像处理是GIS工程师的日常必修课。每当拿到新一年的土地利用数据或行政区划影像时,最头疼的莫过于要为每个行政单元单独裁剪每年的数据。我曾花费整整一周时间手动处理30个乡镇5年的NDVI…...
B站成分检测器:3分钟快速识别评论区同好身份
B站成分检测器:3分钟快速识别评论区同好身份 【免费下载链接】bilibili-comment-checker B站评论区自动标注成分油猴脚本,主要为原神玩家识别 项目地址: https://gitcode.com/gh_mirrors/bi/bilibili-comment-checker 还在为B站评论区难以分辨用户…...
保姆级教程:NotaGen一键部署,小白也能生成贝多芬风格交响乐
保姆级教程:NotaGen一键部署,小白也能生成贝多芬风格交响乐 1. 引言:AI音乐创作新体验 你是否曾经梦想过创作一首属于自己的交响乐?现在,NotaGen让这个梦想变得触手可及。这个基于大语言模型(LLM)的音乐生成工具&…...
为什么你的Windows 11需要专业优化:4步高效解决方案
为什么你的Windows 11需要专业优化:4步高效解决方案 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and cust…...
计算机毕业设计:Python汽车销售数据爬虫可视化分析平台 Flask框架 requests爬虫 可视化 数据分析 大数据 机器学习 大模型(建议收藏)✅
博主介绍:✌全网粉丝50W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战8年之久,选择我们就是选择放心、选择安心毕业✌ > 🍅想要获取完整文章或者源码,或者代做,拉到文章底部即可与…...
告别复杂安装:用快马AI一键生成opencode可运行原型
最近在折腾一个开源项目时,被各种依赖安装和环境配置搞得头大。作为一个经常需要快速验证想法的开发者,我一直在寻找能跳过这些繁琐步骤的工具。直到发现了InsCode(快马)平台,它彻底改变了我的开发流程。 传统安装的痛点 以前要运行一个openc…...
从游戏引擎到自动驾驶:聊聊八叉树(Octree)这个‘空间管理大师’的跨界打工史
从游戏引擎到自动驾驶:八叉树的跨界进化论 1980年代的一个深夜,约翰霍普金斯大学实验室里,一位计算机图形学研究员正对着闪烁的CRT显示器皱眉。他需要找到一种方法,让当时性能有限的计算机也能流畅渲染三维场景。这个看似普通的需…...
[Python3高阶编程] - 异步编程深度学习指南二(补充1): 什么是 Barrier 原语 【异步!!!】
asyncio.Barrier 是 Python 3.11(2022 年 10 月)新增的高级同步原语,用于解决特定并发协作场景。一、Barrier 产生的背景:为什么需要它?核心问题:“多协程阶段对齐”在并发编程中,经常遇到这样的…...
OpCore-Simplify:3步搞定黑苹果EFI配置,告别繁琐手动调试
OpCore-Simplify:3步搞定黑苹果EFI配置,告别繁琐手动调试 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 你是否曾经被黑苹果复…...
