1. 程式人生 > >如何寫一個漂亮的bug描述

如何寫一個漂亮的bug描述

我們是否經常看到開發人員針對我們歸檔的bug report要求提供更多的資訊?我們是否經常需要在bug report歸檔後花更多的時間去研究那個問題?我們是否經常從開發人員那裡聽到在他們那邊難以重現bug並且需要即刻提供“可重現的步驟”?廣義上來說,我們與其花更多的時間在這些問題上還不如投資更多的時間來測試系統。問題出在bug report的質量上。這裡介紹一些如何改進並達到完美bug report的建議。

 

Bug report的目的

當我們發現一個缺陷時,我們需要把它告訴給開發人員。Bug report就是這種溝通的媒介物。Bug report的主要目的是讓開發人員親眼看到這個錯誤。如果你不能和他一起以在他面前製造出那個失敗,那麼就需要給他們足夠多的指引以便他們能夠自己製造出那個失敗。Bug report就是解釋在期望結果和實際結果之間的差距並且詳細的說明如何重現那個場景。

 

在發現缺陷之後

·        只有當你確信你已經發現一個bug的時候開始起草bug report,不要在測試結束或每天結束之後。那樣,你可能會遺忘掉一些東西。更糟的情況是,我們可能會忘掉那個bug。

·        花一些時間去診斷你正在報告的缺陷。想想可能存在的原因。可能到最後你會發現更多的缺陷。在你的bug report中說說你的發現。開發人員將不僅僅對你使他們的工作變得輕鬆而感到高興。

·        在開始讀你的bug report之前抽出一些時間來。你可能會感覺到象重新編寫報告一樣。

 

摘要

Bug report的摘要是你bug report給讀者的第一印象。你提交的bug的命運很大程度依賴於你的bug report能否吸引讀者。原則就是每個bug應該有一個簡單有趣的摘要。它可能會聽上去象編寫一個優秀的勾起注意的廣告活動。但是隨後,沒有什麼意外。一個好的摘要應該不超過50到60個字元。而且一個好的摘要不應該承載任何對bug主觀的表達。

 

語言

·        不要在bug report中誇大缺陷。同樣,也不要太輕描淡寫了。

·        不管bug是多麼的令人討厭,別忘了是bug令人討厭,而不是開發人員。永遠不要冒犯開發人員的努力。使用委婉些的說法。“混亂的UI”可以被溫和些改為“不正確的UI”。這樣開發人員的努力將會得到尊重。

·        保持簡單誠實。你不是在寫散文或文章,因此使用簡單的語言

·        在編寫bug report的時候記住你的目標讀者。他們可能是開發人員,其他的測試人員,經理,或者在一些情況下,甚至是客戶。Bug report應該可以被所有的人理解。

 

可重現的步驟

·        “可重現的步驟”的流程應該是合乎邏輯的。

·        清楚的列出前提條件

·        寫下平常的步驟。例如,如果一個步驟要求使用者建立檔案並且為它命名,不要要求使用者命名為“Mihir’sfile”。最好命名為好像“Test File” 一樣的檔名。

·        “可重現的步驟”應該詳盡。例如,如果你想使用者在MicrosoftWord裡儲存一個檔案,你可以要求使用者到File選單並且點選Save子選單項。你也可以只說“儲存檔案”。但是記住,並不是所有的人都知道如何在MicrosoftWord中儲存檔案。因此最後遵守第一種方法。

·        在一個乾淨的系統裡測試你的“可重現的步驟”。你可能會發現有些步驟被遺漏或是毫無關係的。

 

測試資料

盡力編寫普通的bug report,開發人員可能沒有許可權訪問你的測試資料。如果bug是和一組特定的測試資料相關,在你的bug report上附帶上它。

 

截圖

截圖是bug report中一個十分必要的部分。一個圖片勝過一千句話。但是不要把在每個bug report裡附帶沒有必要的截圖變成一個習慣。理想的來說,你的bug report應該是足夠有效的使開發人員重現問題。截圖應該只是驗證的一種方法。

·        如果你要在bug report裡附帶截圖,要確保那些圖片不是太大的,使用jpg或gif的格式,而不是bmp格式

·        在截圖上寫上註釋以指出問題所在。這將幫助開發人員一眼就可以馬上定位問題。

 

嚴重程式/優先級別

·        在設定bug report的嚴重程式之前應該全面的分析缺陷的影響程式。如果你認為你的bug具有很高的優先順序應該被修復,在bug report中證明這點。應該在bug report的描述部分指出這個理由。

·        如果bug是來自上個內部小版本或版本回歸的結果,那麼發出警報。象這種bug的嚴重程式可能是低的,但是優先級別應該是高。

 

日誌

在bug report裡附上日誌或日誌的摘錄片斷。這將幫助開發人員輕鬆地分析且除錯系統。多數情況下,如果不附上日誌而且在開發人員那邊又很難重現問題的話,他們將會把bug report打回給你並要求附帶日誌檔案。

如果日誌檔案不太大的話,舉個例子,大約20到25行,你就可以把它貼在bug report裡。但是如果它比較大的話,把它做為附件貼在bug report裡,否則你的bug report會看上去象個日誌。

 

其他資訊

·        如果你的bug是隨機出現的,只需在你的bug report中說一下就可以了。但是不要忘記歸檔它。你總是能夠在你發現它們之後的任何時間裡增加準確的步驟。這也將在其他人提交這個問題時解救你,特別是當那個問題比較嚴重時。

·        在bug report中寫下錯誤資訊,特別是當錯誤資訊有編號的時候。例如,來自資料庫中的錯誤資訊。

·        在bug report中寫下版本編號和內部小版本編號

·        寫下問題可以被重現的平臺。準確的說明問題不可重現的平臺。同樣也要理解問題在特定平臺上不可重現和沒有在某個平臺上測試之間的分別。這個可能會造成混淆。

·        如果你遇到幾個問題卻有一樣的結果,只需寫一個bug report。問題的修復可能只是一個。同樣,如果你在不同的地方遇到相似的問題,且要求同一種修復方法,但是在不同的地方,那麼就要為每一個問題書寫單獨的bug report。每個bug report對應一個修復。

·        如果可以重現bug的測試環境是開發人員可以訪問的,寫下訪問這種設定的詳情。這將幫助他們節約安裝環境的時間以重現你提交的bug。

·        你決不能堅持關於bug的任何資訊。在bug被修復之前由於低效的提交bug而引起的開發人員和測試人員之間不必要的互動只是浪費時間