在軟件缺陷管理中如何編寫更佳的bug report
把軟件測試進行到底!!!如果各位同行覺得字小的話,你可以按住Ctrl鍵,然后滾動鼠標滾輪,可以調節網頁字體的,謝謝!
我們是否經?吹開發人員針對我們歸檔的bug report要求提供更多的信息?我們是否經常需要在bug report歸檔后花更多的時間去研究那個問題?我們是否經常從開發人員那里聽到在他們那邊難以重現bug并且需要即刻提供“可重現的步驟”?廣義上來說,我們與其花更多的時間在這些問題上還不如投資更多的時間來測試系統。問題出在bug report的質量上。這里介紹一些如何改進并達到完美bug report的建議。
Bug report的目的當我們發現一個缺陷時,我們需要把它告訴給開發人員。Bug report就是這種溝通的媒介物。Bug report的主要目的是讓開發人員親眼看到這個錯誤。如果你不能和他一起以在他面前制造出那個失敗,那么就需要給他們足夠多的指引以便他們能夠自己制造出那個失敗。Bug report就是解釋在期望結果和實際結果之間的差距并且詳細的說明如何重現那個場景。
在發現缺陷之后
◆ 只有當你確信你已經發現一個bug的時候開始起草bug report,不要在測試結束或每天結束之后。那樣,你可能會遺忘掉一些東西。更糟的情況是,我們可能會忘掉那個bug
.◆ 花一些時間去診斷你正在報告的缺陷。想想可能存在的原因?赡艿阶詈竽銜l現更多的缺陷。在你的bug report中說說你的發現。開發人員將不僅僅對你使他們的工作變得輕松而感到高興。
◆ 在開始讀你的bug report之前抽出一些時間來。你可能會感覺到象重新編寫報告一樣。
摘要Bug report的摘要是你bug report給讀者的第一印象。你提交的bug的命運很大程度依賴于你的bug report能否吸引讀者。原則就是每個bug應該有一個簡單有趣的摘要。它可能會聽上去象編寫一個優秀的勾起注意的廣告活動。但是隨后,沒有什么意外。一個好的摘要應該不超過50到60個字符。而且一個好的摘要不應該承載任何對bug主觀的表達。
語言◆ 不要在bug report中夸大缺陷。同樣,也不要太輕描淡寫了。
◆ 不管bug是多么的令人討厭,別忘了是bug令人討厭,而不是開發人員。永遠不要冒犯開發人員的努力。使用委婉些的說法!盎靵y的UI”可以被溫和些改為“不正確的UI”。這樣開發人員的努力將會得到尊重。
◆ 保持簡單誠實。你不是在寫散文或文章,因此使用簡單的語言
◆ 在編寫bug report的時候記住你的目標讀者。他們可能是開發人員,其他的測試人員,經理,或者在一些情況下,甚至是客戶。Bug report應該可以被所有的人理解。
可重現的步驟
◆ “可重現的步驟”的流程應該是合乎邏輯的。
◆ 清楚的列出前提條件
◆ 寫下平常的步驟。例如,如果一個步驟要求用戶創建文件并且為它命名,不要要求用戶命名為“Mihir‘s file”。最好命名為好像“Test File”一樣的文件名。
◆ “可重現的步驟”應該詳盡。例如,如果你想用戶在Microsoft Word里保存一個文件,你可以要求用戶到File菜單并且點擊Save子菜單項。你也可以只說“保存文件”。但是記住,并不是所有的人都知道如何在Microsoft Word中保存文件。因此最后遵守第一種方法。
◆ 在一個干凈的系統里測試你的“可重現的步驟”。你可能會發現有些步驟被遺漏或是毫無關系的。
測試數據盡力編寫普通的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而引起的開發人員和測試人員之間不必要的交互只是浪費時間
我覺得還可以說為以下幾點:
· 特征調試
· 代碼覆蓋調試
首先我們要先進行特征調試。它是通過運行程序找到代碼中的錯誤,這與我們平時常進行的調試相同。到程序能運行后,我們可使用已編好的三種類型的用例并以正常數據測試用例進行測試,若不能正常運行則要用調試工具調試。在這階段,我們要用大量正常數據去測試。測試后,該程序應可在絕大多數的正常數據中運行。
其次,我們要進行代碼覆蓋測試,一直要達到以下目標為至:
· 測試到每一個最小語句的代碼
· 測試到所有的輸出結果
我們應該通過一步步的調試去運行每個程序的所有語句和分支。如果我們想要百分之百地覆蓋就應適當運用邊緣數據和錯誤數據。測試在這個階段的質量是難以掌握的。它基于程序員的責任心和經驗。當這階段完成后,每個程序員所測的深度也是不同的。因此,在這個測試階段之前,項目經理(或測試工程師)應制定出測試指導和計劃書。它們至少應包括以下內容:
· 測試的主要對象
· 主要調試點
· 怎樣測試
· 什么時候可以完成
至今為至,我們已完成了代碼的審議和調試。如果我們是嚴格按照以上步驟做的,那就可以保證代碼沒有太多的錯誤,至少沒有使程序運行中斷的錯誤了。如果我們不能很好地執行代碼審議和正確的調試,那我們就不能順利地通過測試,有時我們還要不得不返回來做這些事。
好了,我們終于完成了單元測試的工作,程序員們可以喘口氣了,但不要忘記還有更加嚴格的集成測試要我們去做。
文章來源于領測軟件測試網 http://www.kjueaiud.com/