Bug?!

如何更有效地说服开发接收你的bug?! 沟通一直都是个技术活,对技术人来说亦不例外,所以各位小伙伴在精进技术的时候也别忘了同步提升你的沟通能力。来来来,测试小伙伴们,看看以下这张图是不是觉得很熟悉。虽然这张图带点戏谑的成分,但确实折射出大部分IT公司测试人员在报bug时,与开发的沟通存在些许问题。 阅读详情

作为程序员,遇到Bug是很稀松平常的:)

Bug千奇百怪,分很多种,有平台相关的、有第三方工具相关的、有其它人开发的相关模块,当然也有自己的:)

在遇到Bug时,不同的人解决办法也是千差万别的。有的人马上感觉很紧张,特别是在接收别人的代码进行维护时,出现了莫名其妙的错误,马上头大。当面临着时间压力时,更加慌不择路。经过几天的调查,例会上,也无法说明Bug的原因,此时人的心态就会发生变化。有的会说:“这不是我做的”,直接甩锅。好一点的会说:“我再调查几天,但是何时解决,我心里没有底”。有的也会说:“我觉得这个问题,我估计解决不了,能不能请老马看看”,请求外援。

我觉得,遇到Bug时,千万不能心慌,要有自信。如果你没有自信和淡定的心态,小Bug也会被无限放大了。那我就说说遇到Bug时,该怎样办?

首先,心里要有充分的准备,那就是99%的Bug都是自己的,不要乱怀疑。特别是刚刚从事软件开发的人,更要有这样的心里。为什么?因为有这样的心态有两个好处,一个就是聚集你的注意力,分析你的代码;其次,会锻炼你的心态,让你的内心能够平静下来。你想想,反正这个Bug应该是我的,问题出在我这里,应该由我自己来解决。如果你能够这样想,离解决Bug的距离就更进一步了。

其次,遇到好几天都不能解决的Bug时,需要放下手头工作,尽快静一静。你可以离开座位,出去呼吸下新鲜空气,或者和其它同时讨论下。通过松弛下紧张的神经,可能你会有些脑洞打开的感觉。最不好的是,苦闷地做在位子上苦思冥想,你又不愿意跟其它人交流;你只能在例会上不断跟其它人被动解释,却解释不出原因,你的心情又一次受到打击;打击后,会更加影响你的解决Bug的效率。所以,我们不能被Bug牵着鼻子走。有些Bug在你看来比较小的,或者比较丢人的问题,但是要敢于放下自己的自强心里,平静地、谦和地和别人交流,你会收到不一样的解决办法的。

最后,如果处在只能自己维护这个模块,没有其他人能够帮助到你时,该怎样办?其实这样的情况,我是经常遇到。我觉得此时的解决Bug的方法很重要。对于比较成熟的软件,出现一些非常偶然的Bug是时有发生的。此时,我们不能东怀疑、西怀疑,一定要聚焦到Bug发生的现象,要尽量复现Bug。可是有时客户的环境与实验室的环境是不一样的,例如:客户的设备规模、网络环境、操作方法等,在实验室都无法测试出来的。对于这样的Bug,首先要尽量模拟客户的环境测试、增加日志的打印,实在不行就需要到客户现场测试,前提是客户允许你测试;也有可能无法复现,此时我们需要和客户充分沟通,仔细查看日志,不能放过任何细节。同时仔细阅读代码,看看Bug大概出现的地方是否存在漏洞。

还有很多Bug是历史问题造成的,例如代码的维护性差,导致后人修改会容易出现问题。此时,在代码新功能开发阶段结束或者代码开发中,尽量进行重构,具体重构的方法,请参考我之前的几篇博文。当代码经过你重构后,你对待Bug的感觉就完全不一样了,你会感觉游刃有余。

总之,解决Bug的功力最能体现一个软件工程师的能力、素养。我们应该不断锤炼这种能力和素养,将书本中学到的东西不断应用到实践中,处处留心,不断雕琢自己的代码,相信你在不久的将来会在任何Bug面前都会充满自信。

【OpenBMC 系列】4.启动流程 使用qume模拟ast2600-evb 1.安装openbmc适配的qume 2.启动bmc 3.使用bmc web 阅读详情

相关推荐

Python爬虫实战:5分钟搞定大众点评评论数据抓取(附完整代码)

本文详细介绍了使用Python爬虫高效获取大众点评评论数据的5个关键技巧,包括环境配置、智能页面解析、反反爬策略、数据存储与容错设计以及性能优化。通过实战案例和完整代码,帮助开发者快速掌握文本挖掘技术,适用于市场分析和商业决策。

weixin_30660027的博客 290

DataGridView的bug?!

昨天在查一个DataGridView当前焦点CheckBox不勾选问题,发现在修改DataGridView数据源的值很容易忽略的问题,或者叫DataGridView的bug 绑定数据 假定我们绑一个DataTable /// <summary> /// 当前数据。Form私有成员 /// </summary> DataTable curTable; ...

weixin_30376163的博客 132

Xshell 连接 VMware虚拟机操作 截图和使用

vmwareVMware总部位于美国加州帕洛阿尔托(Palo Alto),是全球云基础架构和移动商务解决方案厂商,提供基于VMware的解决方案,企业通过数据中心改造和公有云整合业务,借助企业安全转型维系客户信任,实现任意云端和设备上运行、管理、连接及保护任意应用Xshell(安全终端模拟软件)Xshell [1]是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。

小 tom的博客 800

[SQL]啊?!查询分析器的BUG?!

当我们用SQL Server的查询分析器察看一张表时,竟然看到了这样的记录:奇怪之处就在于“ReceiveTime”字段明明是datetime类型,怎么可能是“62016004”这个数字呢?SQL Server怎么会让这种数字插入呢?即使我们的程序写错了,想往记录里插,那也会得到异常的呀?还是做数据仓库的有经验,说可能是查询分析器的BUG。用VBScript写了一个查询的例子,把这条记录的每一

软件开发资料汇总 345

DoubletFinder实战:如何优化参数提升scRNA-seq双细胞识别准确率?

本文深入探讨了如何通过优化DoubletFinder参数提升scRNA-seq双细胞识别准确率。详细解析了pK和nExp参数的影响机制,提供了系统化的参数优化流程和多样本整合策略,并结合真实数据集演示了验证方法与高级应用场景,帮助研究人员获得更可靠的分析结果。

weixin_28523493的博客 339

锐明技术Crocus系统 DeviceState.do SQL注入漏洞复现

锐明技术Crocus系统 DeviceState.do 接口存在SQL注入漏洞,经过身份验证的远程攻击者除了可以利用SQL注入漏洞获取数据库中的信息(例如,管理员后台密码、站点的用户个人信息)之外,甚至在高权限的情况可向服务器中写入木马,进一步获取服务器系统权限。

0xSec 453

IE bug 如此多?!

不知道是否很多人在做网页时一直以IE为标准,最近我在学习《Agile Web Development with Rails》时,当案例做到store时却发现IE莫名其妙的出现了异常,当鼠标移动到Add To Cart超级链接上后,旁边的图片莫名其妙的被截去一截!最开始怀疑是CSS出现了问题,但使用FireFox访问同样网页却没有类似问题发生。在其示例CSS文件中有这样一段内容:/* === Use...

weixin_30709929的博客 66

SAP-ABAP:BAPI_INSPOPER_RECORDRESULTS 记录检验操作结果更新检验批状态详细解析

SAP-ABAP:BAPI_INSPOPER_RECORDRESULTS 记录检验操作结果更新检验批状态详细解析

baidu_35680696的博客 967

Tree控件的小bug?!

不知道是否是Tree控件的bug,下面的代码是可以从数据获得数据并填充Tree(多层次的),但如果把mx:HTTPService的resultFormat="xml" 属性去掉,界面上Tree仍然可以正常显示数据内容,但却无法获得Tree里结点Node的数据(包括label和data),无论是用AS还是数据binding都无效,不知道其它朋友又没有碰到过,希望有类似情况的同志别走我的弯路(我跟踪...

weixin_30621919的博客 83

tun虚拟网卡没有安装解决之道

目录 描述 过程 一、sstap 会提示你虚拟网卡没有安装; 二、还有会是这样的:病毒和威胁防护中无法启动;引擎不可以用等等,以及会显示需要IT管理员去处理;等等报错的信息; 系统升级地方会显示:Windows Defender Antivirus 的安全智能更新 - KB2267602 (版本 1.305.2147.0) - 错误 0xc8000442 Windows Defender报错; 三、还有就是会出现你搜自己家的WIFI搜不到,电脑端都不会显示WIFI名字; 解决方...

战神/calmness的博客 1万+

QT6实现USB摄像头接入显示与抓拍功能实现

QT实现USB摄像头接入显示 一、UVC协议简介 UVC全称是USB Video Class(USB视频类),是一种标准化的USB视频设备通信协议,它定义了摄像头与主机之间的数据传输协议和格式。 UVC协议的出现,解决了摄像头厂商之间互不兼容,以及摄像头应用开发与平台之间的散乱问题。 UVC标准是由USB-IF主导制定的,目前最新的版本是UVC 1.5,UVC的缺省设置类容易实现,不需要额外的驱动程序。

热土程序园,利他愉己~ 3416

扔掉bug跟踪系统?!

这个标题很疯狂,让人感觉不是从一个开发的人口中说出的话,太激进、太左了。 在InfoQ上面看到这个标题(http://www.infoq.com/cn/news/2009/03/testobsessed-on-agile-bugs),一下子被抓住了眼球,仔细一读,说得有点道理。   作者Elisabeth Hendrickson认为,敏捷中bug的定义应该是   在“完成”的故事(story)中的...

江畔何人初见月 131

AUTOSAR系统服务篇 - BswM的使用

本文档是对4.0.3版及更高版本的AUTOSAR模式管理应用的介绍。其主要目的是为AUTOSAR的用户和开发人员提供基于示例的AUTOSAR模式管理不同方面的详细概述,这些示例在文中进行了解释。本文中的代码清单共同构成了示例ECU的配置。第2章解释了基础的模式管理概念,例如一般的模式、如何实现模式切换、模式管理者和模式用户的角色等。其次介绍了应用模式管理和基础软件模式管理的依赖关系,两者密切相关。基础软件模式管理器是AUTOSAR R4.0中的中央模式管理模块。它具有很高的可配置性。

IOT2017的博客 846

难道是javaeye博客写作和附件上传bug?!

今天写作一文章时发现一个附件上传时的问题,不知道是不是bug!如图: 这个是在写作博客——Eclipse3.3的语言包Bug?! 时出现的图片上传的问题,注意图片最后部分,是点击插入时出现的 不过后来就没有这个问题了,包括我现在的图片上传也没有问题了?!  不知道是不是bug  ^ ^    ...

专栏 145

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

[Swift] 数组恒等 === 的 bug?!

Swift 中的数组是由结构体实现的: struct Array&lt;T&gt; : MutableCollection, Sliceable { typealias Element = T var startIndex: Int { get } var endIndex: Int { get } subscript (index: Int) -&gt; T ...

dawuafang 189

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

上一篇: 代码重构实践之分层重要性
下一篇: 关于机器学习与人类学习不同点的思考
pstrunner
博客等级 码龄19年 50粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值