作者 | Dan Makarov
译者 | 弯月,责编 | 郭芮
以下为译文:

人们会在哪些时段报告bug?你可能从未认真想过这个问题,这就是我们想要探索这个问题的原因之一。第二个原因是我们手头有合适的数据,因为我们的工具可以帮助团队报告和修复bug。简而言之,我们希望进一步了解软件开发团队处理bug的流程。为此,我们随机抽取了过去的两个月中上传到我们的数据库中的3000个bug记录。
以下是我们的发现。
下午两点是报告bug的黄金时段
看来,下午2点是报告bug的黄金时段。有趣的是,从早上9点开始,陆陆续续出现bug报告,一直到下午2点的时候达到最高峰。5点钟的时候也有一个小高潮。很难确定为什么会这样。可能是因为有些人在一天的工作结束之前进行了一系列测试。那么问题就来了:人们的工作时间是从几点到几点?
我曾经怀疑北美的软件开发界甚至都没有标准的工作时间。然而,事实证明并非如此。我们比较了常规时间段(早9点-晚5点)内上传的bug记录,以及其他时间段内上传的bug记录。
两个时间段的比例几乎相等,起初我们有些惊讶。从上一张图(各个时段报告的bug数)看来,似乎常规工作时间内人们的活动更多。因此,我们完全没想到会出现几乎完美的50/50分布。然而,原因很简单:因为早9点-晚5点仅为一天的1/3。因此,剩余时间是常规时间段的两倍,但是报告bug的速度却仅为1/2。那么问题来了:现如今产品团队工作人员的工作时间是否更加灵活?还是说如今我们的工作时间更长,而且我们应该反省我们的工作习惯?
四分之一的bug报告发生在周二
我们以为周五和周末提交的bug报告会的于其他时间段。事实证明,我们的猜测是正确的。但我们没想到的是,每周开头两天的活动量很高。而我们以为周一、周二、周三和周四之间没有太大差异。
2/3的bug都是在预生产环境中报告的
根据Capers Jones在2009年进行的一项研究,85%的bug都已经在代码进入生产环境之前被发现了。如今也是这样吗?
在我们的样本中,2/3的bug报告来自预生产环境(本地和暂存环境)。这个数字远低于Capers Jones最初的研究。
其中一个原因可能是因为用户组不同。Capers Jones主要关心软件开发团队,但我们的产品用户不仅限于工程师、测试人员、项目经理和设计师。例如,我们发现客服团队的活动有所增加。这意味着两件事。首先,通常业务和运营岗位上的人不会使用暂存环境,所以他们只能报告生产环境中的bug。其次,他们报告的有些bug实际上并不是bug。即便是一个完全通晓产品的人也无法立即判断出某个问题是否真的是bug。某些行为的起因可能是隐藏得很深的设置,也可能是由于广告拦截器导致的,或者是连接问题等。
我们无法断定,这种假设是否足以解释预生产环境报告的bug数高出20%的现象。因为其中的因素有很多:公司规模、开发方法论(敏捷/瀑布)、质量保证流程、业务逻辑的复杂性,甚至公司如何定义bug等。
“Bug”是bug报告中最常见的词
在此次的分析中,我们利用bug报告的标题创建了词云,并发现了最常见的主题。
这个结果与我们的预想非常接近。Bug、Error、Page、Test等都是最常见的词。坦白说,我们没想到\"Collection\"和\"Date\"会如此醒目,可能是由于我们的样本数据所致。
接下来,我们删除了频率最高的7个单词,以更好地理解其他词语。如上所示,很明显形容词和动词也显现了出来。尽管如此,大多数单词还是名词。
我们发现了一件最有趣也最令人欣慰的事情:有些词没有在榜单上名列前茅。根据个人经验,我们知道有时人们会以非常笼统的术语来描述bug,比如“根本跑不通”、“某某功能出了问题”等。为了避免这种现象,我们还特意建立了一个bug报告模板,帮助非技术人员更好地报告bug。然而,在我们的样本中,这种行为很少见。
大多数bug报告都来自macOS
尽管macOS仅占普通市场的17%,但它仍然在bug报告中居榜首,这个操作系统下报告的bug甚至超过了Windows和Linux的总和。难道是因为macOS可以提高工作效率吗?
最近两个月里的使用大部分都来自旧版本的macOS(Mojave)。最近我们还看到Catalina上的活动增加了。
我们在Windows上看到的数据没有那么详细。我们只能说,几乎所有的bug记录都来自Windows 10用户。
Google可以向Chrome用户提供最新的软件
目前,我们的产品官方只支持Chrome,这就是为什么我们没有统计有关其他浏览器信息的原因。但是,我们知道Chrome约占我们网站流量的80%,其次是Firefox和Safari。
在我们的数据库中,最早的bug报告来自两个月前。同时,只有极少量的bug报告来自4个月前发布的Chrome版本。Google在确保用户升级到最新版本方面的表现非常出色。
这种策略我们只能作为最佳实践来推荐,因为这样可以让我们的调试工作更容易。此外,还可以确保我们的用户基础更为统一,这不仅对软件开发团队有积极的影响,而且对技术支持也有益。
最常见bug的bug报告
最后,我们决定利用手中的数据,建立一份最常见bug的bug报告。为此,我们结合了本文的信息以及上图中未包含的数字。
下面是今年秋季“最常见bug”的bug报告:
标题:Bug error. Test collection date issue。(注:来自文中词云图的条目)
时间:星期二下午2点
环境:暂存
作业系统:macOS 10.14.6
设备供应商:Apple
浏览器:Chrome 77
屏幕尺寸:1920x1080
视窗尺寸:1920x798
语言环境:en-US
原文:https://hackernoon.com/what-weve-learnt-from-3000-bug-reports-nxp3ohv
本文为 CSDN 翻译,转载请注明来源出处。
【End】