本文部分内容摘录自Simon Tatham
引言
·作为一个软件的开发者,想必各位一定会遇到很拙劣的BUG报告
例如:
1.在报告中说“不好用”甚至辱骂开发者;
2.所报告内容毫无意义;
3.在报告中用户没有提供足够的信息;
4.在报告中提供了错误信息;
5.所报告的问题是由于用户的过失而产生的;
6.所报告的问题是由于其他程序的错误而产生的;
7.所报告的问题是由于网络问题而产生的;
这便是为什么“技术支持”或者说作为一个软件公司的“客服人员”被认为是一件可怕的工作,因为有拙劣的bug报告需要处理,也要面对不同的人。
然而并不是所有的bug报告都令人生厌:有时会有非常清晰、有帮助并且“有内容”的bug报告。
在这里我会尽力阐明如何写一个好的bug报告。我非常希望每一个人在报告bug之前都读一下这篇短文,当简单地说,报告bug的目的是为了让软件开发者看到软件的错误。
您可以亲自示范,也可以给出能导致程序出错的、详尽的操作步骤。如果程序出错了,软件开发者会收集额外的信息直到找到错误的原因;如果程序没有出错,那么他们会请您继续关注这个问题,收集相关的信息。
在bug报告里,要设法搞清什么是事实(例如:“中国近代史的开端是鸦片战争”和“原神于2020年9月28日公测”)什么是推测(例如:“我想问题可能是出在……”)。如果愿意的话,您可以省去推测,但是千万别省略事实。
当您报告bug的时候(既然您已经这么做了),一定是希望bug得到及时修正。所以此时针对软件开发者或他们的客服人员的任何过激或亵渎的言语(甚至谩骂)都是与事无补的——因为这可能是开发者的错误,也有可能是您的错误,也许您有权发火,或者谩骂,但是如果您能多提供一些有用的信息(而不是激愤之词)或许bug会被更快的修正。
程序不好用
开发者不是弱智:如果一个软件,或者程序,一点都不好用,他们不可能不知道。他们不知道一定是因为这个软件在他们看来工作得很正常。所以,或者是您作过一些与他们不同的操作,或者是您的环境与他们不同。他们需要信息,报告bug也是为了提供信息。信息总是越多越好。
许多软件,特别是自由软件,会公布一个“已知bug列表”。如果您找到的bug在列表里已经有了,那就不必再报告了,如果您报告的BUG属于内部已知的范畴,也不必再报告了。但是如果您认为自己掌握的信息比列表中的丰富,那无论如何也要与开发者联系。您提供的信息可能会使他们更简单地修复bug。
本文中提到的都是一些指导方针,没有哪一条是必须恪守的准则。不同的开发者会喜欢不同形式的bug报告。如果程序附带了一套报告bug的准则,一定要读。如果它与本文中提到的规则相抵触,那么请以它为准。
如果您不是报告bug,而是寻求帮助,您应该说明您曾经到哪里找过答案,(例如:我看了第四章和第五章的第二节,但我找不到解决的办法。)这会使开发者了解用户喜欢到哪里去找答案,从而使开发者把帮助文档做得更容易使用。
演示给我看
报告bug的最好的方法之一是“演示”给开发者看。让开发者站在电脑前,运行他们的程序,指出程序的错误。让他们看着您启动电脑、运行程序、如何进行操作以及程序对您的输入有何反应。
他们对自己写的软件了如指掌,他们知道哪些地方不会出问题,而哪些地方最可能出问题。他们本能地知道应该注意什么。在程序真的出错之前,他们可能已经注意到某些地方不对劲,这些都会给他们一些线索。他们会观察程序测试中的每一个细节,并且选出他们认为有用的信息。
这些可能还不够。也许他们觉得还需要更多的信息,会请您重复刚才的操作。他们可能在这期间需要与您交流一下,以便在他们需要的时候让bug重新出现。他们可能会改变一些操作,看看这个错误的产生是个别问题还是相关的一类问题。
不过,由于现在是网络时代,是信息交流的时代。您可以尝试录制出现BUG时的视频,以便开发者复现并更好的定位问题。
我该怎么做
1.请尽可能详细描述BUG的情况,如果可以,请附上相关的视频或者截图。
2.请尽可能减少主观用语的使用。
3.请不要在您的BUG报告中输入任何对开发者谩骂的用语。
下面,我会提供一哥例子。
正确示例1:我想观看密室杀手小游戏的回放,但是点击后就会闪退。(附件:xx.mp4)
错误示例1:为什么我不能观看回放,这是不是BUG (解析:为什么说这个BUG的反馈不正确呢,首先,在EaseCation无法观看回放可能是您没有VIP权限,其次,您没有相关视频补充说明,开发者并不能准确定位问题的所在)