引言
為公眾寫過軟件的人,大概都收到過很拙劣的bug(計算機程序代碼中的錯誤或程序運行時的瑕疵——譯者注)報告,例如:
在報告中說“不好用”;
所報告內容毫無意義;
在報告中用戶沒有提供足夠的信息;
在報告中提供了錯誤信息;
所報告的問題是由于用戶的過失而產生的;
所報告的問題是由于其他程序的錯誤而產生的;
所報告的問題是由于網絡錯誤而產生的;
這便是為什么“技術支持”被認為是一件可怕的工作,因為有拙劣的bug報告需要處理。然而并不是所有的bug報告都令人生厭:我在業余時間維護自由軟件,有時我會收到非常清晰、有幫助并且“有內容”的bug報告。
在這里我會盡力闡明如何寫一個好的bug報告。我非常希望每一個人在報告bug之前都讀一下這篇短文,當然我也希望用戶在給我報告bug之前已經讀過這篇文章。
簡單地說,報告bug的目的是為了讓程序員看到程序的錯誤。您可以親自示范,也可以給出能導致程序出錯的、詳盡的操作步驟。如果程序出錯了,程序員會收集額外的信息直到找到錯誤的原因;如果程序沒有出錯,那么他們會請您繼續關注這個問題,收集相關的信息。
在bug報告里,要設法搞清什么是事實(例如:“我在電腦旁”和“XX出現了”)什么是推測(例如:“我想問題可能是出在……”)。如果愿意的話,您可以省去推測,但是千萬別省略事實。
當您報告bug的時候(既然您已經這么做了),一定是希望bug得到及時修正。所以此時針對程序員的任何過激或褻瀆的言語(甚至謾罵)都是與事無補的——因為這可能是程序員的錯誤,也有可能是您的錯誤,也許您有權對他們發火,但是如果您能多提供一些有用的信息(而不是激憤之詞)或許bug會被更快的修正。除此以外,請記?。喝绻敲赓M軟件,作者提供給我們已經是出于好心,所以要是太多的人對他們無禮,他們可能就要“收起”這份好心了。
“程序不好用”
程序員不是弱智:如果程序一點都不好用,他們不可能不知道。他們不知道一定是因為程序在他們看來工作得很正常。所以,或者是您作過一些與他們不同的操作,或者是您的環境與他們不同。他們需要信息,報告bug也是為了提供信息。信息總是越多越好。
許多程序,特別是自由軟件,會公布一個“已知bug列表”。如果您找到的bug在列表里已經有了,那就不必再報告了,但是如果您認為自己掌握的信息比列表中的豐富,那無論如何也要與程序員聯系。您提供的信息可能會使他們更簡單地修復bug。
本文中提到的都是一些指導方針,沒有哪一條是必須恪守的準則。不同的程序員會喜歡不同形式的bug報告。如果程序附帶了一套報告bug的準則,一定要讀。如果它與本文中提到的規則相抵觸,那么請以它為準。
如果您不是報告bug,而是尋求幫助,您應該說明您曾經到哪里找過答案,(例如:我看了第四章和第五章的第二節,但我找不到解決的辦法。)這會使程序員了解用戶喜歡到哪里去找答案,從而使程序員把幫助文檔做得更容易使用。
原文轉自:http://www.anti-gravitydesign.com