我希望所有人能花时间想一想那些你在电脑或是手机上使用的所有软件。其中有多少是付费软件?50%?20%还是根本没有过?如果你和我一样的话,你所使用的绝大部分软件都应该是免费软件。我几乎只用开源软件,然而,使用开源软件,并不意味着这些软件没有开发成本。成千上万名开发者都会在这些免费开源软件上贡献大量的时间。
无论是免费还是付费,好的软件都能让我们的生活更美好。正式由于这个原因,我们才会喜爱它们。对于那些为我们的生活提供价值的开发者,我们又能为他们做些什么?
我想说,如果你真的喜欢某个软件,并且想为其开发者表示感谢,最好的方式之一,就是提交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。你可以考虑将这些关键词和关键句放在报告单的标题中,避免使用“损坏”和“无法工作”这种有歧义的词语。你还需要详细描述那个功能无法正常时会用。一个写的详细的标题,能让bug尽早被修复。
例如:Ubuntu版Picasa 3.9,在点击 “ 用谷歌账户 ” 登录之后,程序崩溃。软件窗口关闭并弹出错误提示。
环境
很多时候,某些bug只在特定的环境下会出现,因此你在报告单中也需要详细描述你的使用环境。你要介绍你所使用的系统或是浏览器,可能的话,还需要告知软件的版本,以及你所使用的硬件。如果有条件,你也可以帮开发者在多个环境下测试一下相同的bug是否会重复出现。
例如: Ubuntu-Gnome 16.04.1版本。在PlayOnLinux上运行Picasa。
预期软件行为
在说明问题之前,你最好先说明你本来希望软件做出什么样的响应。如果你只说bug,开发者很可能不明白你想要软件做什么。
例如:当我在点击 “ 使用谷歌账户登录 ” 之后,它本应该打开一个让我登录的窗口。
软件实际行为
这是bug报告单中最核心的东西。我之前已经说过,写bug报告的时候,不要使用“损坏”或是“无法工作”等宽泛的词语,而是要详细描述软件出现了什么行为。越详细越好。如果软件出现了多个问题,你可以考虑提交多个报告,每个报告只专注于一个bug。
例如:在点击 “ 用谷歌账户登录 ” 之后,软件窗口关闭,我必须重新打开Picasa。软件会弹出一个错误提示,说PlayOnLinux出现崩溃。
重现bug的步骤
这也是bug报告单中不可缺少的一步。详细解释导致bug出现的每一个步骤,这样可以让开发者更好的了解bug,很多时候他们需要重现bug,才能分析其原因。在我看来,如果你不能重现这个bug,那就无法真正意义上证明bug的存在。
例如:
1. 在Playonlinux中双击Picasa图标打开软件。
2. 点击窗口右上角的“使用谷歌账户登录”选项。
3. 之后Picasa窗口会关闭并显示错误提示。
bug证据或演示
在包括bug的时候,我喜欢使用一些证据。添加了注释的屏幕截图是最有效的提供证据的方式。有的时候我也会用gif来展示整个过程。我一般情况下啊会把git的时间控制在30秒以内。如果无法控制在30秒内,我会尽可能快的进行操作,或是将其拆分为多个gif文件。
例如 :
第四部:主动跟进
如果你真的希望开发者可以尽快的解决你提交的bug,那么在提交之后,你还应该再主动一点。例如,你可以在留言区告诉开发者你愿意为他们提供协助,或是说点鼓励的话,告诉他们你非常喜欢这个软件,因此希望bug可以早日解决。你如果有时间的话,还可以告诉开发者,你愿意帮助他在多种环境下进行测试,甚至是成为beta版本的测试者。
如果开发者感觉到你的确非常喜欢他们的软件,他们会更有动力去解决你提交的bug。
所有人都应该提交bug报告
正如我之前所说,报告bug能够让开发者不断的完善软件,我们也能获得越来越好的工具。作为普通用户,这是我们能为改善软件产品所做的最有价值的事情。每次我在发现bug之后,我都会把它提交给开发者,几乎每一次开发者都会给我回复,或是解决了bug,或是告诉我当前这个bug为何还无法彻底解决。
那些一言不发,坐等bug修复的人,最终很可能会感到失望。而那些主动报告bug的人,其问题大部分情况下会得到解决,因为开发者知道这些人关心这个软件,他们也愿意为这部分用户提供支持和协助。从长远来看,主动报告bug,不仅能让你获益,也能让所有使用这个软件的人获益,最终让IT世界变得更美好。