“出錯了”和報告Bug的藝術
英文原文:"It Doesn't Work” and the Art of Bug Reports
“出錯了。”
沒有那句話能像“出錯了”一樣讓程序員/開發者如此沮喪,心里翻江倒海,怒火一點即燃,還要死掉一大片腦細胞。
這句生硬的開場白通常標志著讓開發者恐懼的長時間排錯工作要開始了。
在我的職業生涯中,我就進行過好幾次這樣的對話:
- “出錯了。”
- “什么出錯了?”
- “網站。”
- “網站什么地方出錯了?”
- “我不確定。你把它弄好就是了。“
對于很多的非技術人員來說,這句話在邏輯推理方面簡直滴水不漏。畢竟,他的工作不是測試網站,所以指出哪里出錯也不是他的職責。
但是,他發出了一個非常模糊的錯誤報告,意味著他決定承擔起責任,報告一個需要修復的錯誤,同時,他也讓修復過程變得耗時而混亂。
Bug:程序員的肉中刺
愛也好,恨也罷,bug 是所有軟件中不可避免的一部分。很多 bug 可以在程序員好幾小時的試錯中找到并修復。對于一名工程師,如果沒有花大量時間去和問題提交者交談,進行枯燥乏味的反復嘗試以復現問題,他就不可能推斷出 問題到底是什么。修復 bug 的工作量很大。
“出錯了”這樣一句模糊的報告簡直可以是任何情況——網站可能宕機,注冊頁面可能出錯了,某個應用可能在你不知不覺時把用戶的裸體拍下來并用電子郵件發給他們的朋友們——就是沒有辦法搞清楚是何種情況。
驚喜!你是質量管理員
即使進行了最嚴格的質量保證(QA)測試,還是會不時有漏網的 bug。對于小型團隊以及個人開發者,通常根本沒有任何正規的質量保證測試——這使得客戶、經理或是員工都要承擔一部分質量保證工作職責。
作為一名和軟件開發者一起工作的非技術人員,你總要在一定程度上扮演質量保證測試員的角色——無論這是否包括在你的崗位描述中。接受你的新職責 對你有百利而無一害。當嚴重的 bug 影響了工作,讓整個團隊面色凝重,你若能幫助尋找 bug,會讓 bug 更快地得到解決。
報告 Bug 的正確方式
現在說說如何撰寫一份 bug 報告,它可以幫助縮小問題的范圍,可以讓你的開發者高興,還可以讓你的軟件盡快正常運行。
一份優秀的 bug 報告應該包括以下部分:
1)概述
出了什么問題?總結一下,不超過 10 個字。
2)定位
哪里出了問題?如果是一個網站,把網址復制粘貼下來。如果不是,給出發生問題的窗口名稱。
3)軟件的運行環境是什么?
你是用的 PC 還是 MAC?Firefox 還是 Chrome?iPad 還是 iPhone?iOS 還是安卓?軟件的版本是什么?你安裝了什么瀏覽器插件?后臺有哪些奇怪的軟件在運行?
4)描述問題。
詳細描述發生的問題。
5)列出問題復現的步驟。
描述問題發生前你做的每一個步驟。例如:“1)打開瀏覽器;2)訪問 www.mysite.com;3)點擊“登錄”按鈕”
6)期待情況以及實際情況
要寫出當你執行了上述步驟后你期待發生什么,以及實際發生了什么。例如:“期待情況:顯示登錄表單。實際情況:一幅圖片顯示出來,上面有一只泰迪熊和一句話『網站故障,請耐心等待。』”
7)提出修復建議
你認為你知道如何搞定這個問題?太好了!為工程師節省點時間,讓他們少些困擾,把你關于應該如何解決問題的想法寫下來吧。
8)截屏!
如果你能看見問題的場景,將它截屏并附在報告中。有時,這是你在 bug 報告中提交的最重要的一件事。如果你能在截圖上標示以指明問題,那就更好了。截屏取決于你使用的何種電腦或設備。如果無法截屏,用你的手機對屏幕拍照并發送出去。
9)優先級
優先級具有主觀性,對于 bug 報告者總是覺得任何事都是最最重要。但是為了公平,先深呼吸一下,再考慮問題究竟有多重要。下列條目對你有所幫助。
1. 極度重要:“停下其他事,馬上修復此問題!!!!”
2. 重要:“需要盡快解決。”
3. 一般:“快點修復,但如果不能馬上解決也可以。”
4. 不重要:“如果有必要,這個問題可以推后處理。”
5. 極不重要:“這個想法或建議應該暫緩執行,以后再說。”
讓工程師們愛上你
如果你發現了錯誤——不管它看起來多么嚇人,停下你手里的事,后退一步,寫一份合適的 bug 報告吧。
如果你的開發者建有問題追蹤系統,你應該登錄上去,但如果你沒有登上去(或是找不到),你可以發出電郵或是開始寫一個文檔。如果你經歷了很多的 bug,嘗試著建立一個電子表格將它們全部列出來并分發出去。不要只是給工程師們打電話或是發給他們一行字的短信。對你發現的 bug 建檔之后再發出警報,工程師們會利用你的報告來確定問題的優先級,并在修復過程中將其作為參考。
所以,現在你在檢查開發者推出的全新軟件或是讓你氣都喘不上來的東西時,你知道怎樣可以修復得更快、更高效,還不會打擊到你的工程師們。你成為了團隊里有用的一份子,而不是半點線索都不能提供的局外人,而且也許在這一過程中你學到的東西可以讓你成為一位軟件內行呢。
原文鏈接: Ron Whitman 翻譯: 伯樂在線 - toolate
譯文鏈接: http://blog.jobbole.com/72214/