不能報告程序錯誤的測試員,很像是只有當冰箱門被關上時才亮的冰箱燈。冰箱內是被照亮了,只是沒有亮在點子上。測試員要提供信息服務,不過為了提供有效服務,測試員不光要填寫報告模版,并假設報告能夠被完全理解。要了解如何編寫和表達自己的測試結果,以便讀者能夠真正得到結果。我們把這個過程叫做“程序錯誤分析”。
經驗1文如其人
錯誤報告是大多數程序員的主要工作產品。測試員的讀者通過這些文檔認識測試員。報告寫得越好,測試員的聲譽越高。
程序員通過測試員的報告得到關鍵信息。重要問題的良好報告會為測試員帶來良好聲譽,差的報告會為程序員帶來額外(在程序員看來是不必要的)工作。如果測試員浪費了程序員太多的時間,程序員就會躲避測試員及其工作。
程序員并不是測試員的唯一聽眾。項目經理和執行經理有時也閱讀錯誤報告。人事管理問題會很快引起他們的注意,并刺激他們的神經。這些錯誤報告看起來像是解釋不清、研究不充分或提出過于追究小問題的建議,這些都會使負責獎勵和提升測試員的人產生消極印象。
如果下功夫研究并寫好報告,所有人都會受益。
經驗2測試員的程序錯誤分析會推動改正所報告的錯誤
測試員寫的錯誤報告是要求改正錯誤的分析文檔。
有些錯誤永遠不會被改正。測試員的責任不是保證所有錯誤都得到改正,而是準確報告問題,使讀者能夠理解問題的影響。
深入研究并寫出好的報告,常常對錯誤改正的可能性產生巨大的影響。
經驗3使錯誤報告成為一種有效的銷售工具
不管測試員是否這樣想,他們的錯誤報告都是一種推銷工具,它勸導人們付出寶貴的資源來換取測試員所建議的好處。對于程序錯誤,資源就是時間和資金,好處就是通過改正這個具體問題而帶來的質量改進。
銷售策略一般包括兩個目標。
陳述種種好處,使得潛在客戶想要它。測試員的錯誤報告應該使讀者明白為什么要改正這個錯誤。例如,可以解釋問題會怎樣影響產品的正常使用,會破壞什么數據,或人們如何經常遇到這個問題。測試員可以利用雜志上的評論或其他出版物中的有關批評,指出類似的問題給競爭對手帶來的麻煩??梢砸眉夹g支持統計數據,說明其他產品中的類似問題所帶來的資金損失。還可以這個程序的以前版本通過了這個測試。(在有些公司這是一個關鍵問題)有人喜歡自行在產品中引入一些特征,這些特征可能有問題,要保證報告會引起這些人的注意。在很多情況下(參見下面的討論),從看起來相對較小的錯誤開始,通過后續測試能夠發現更嚴重的后果,不應該報告所看到的錯誤的第一個版本。
向銷售人員說明預期存在的問題,并反駁他們。問題太小、不可重視、不能理解、在實際環境中不太可能發生、問題只出現在沒有人有的非常特殊的設備配置上、改正錯誤風險太大、不會影響產品的實際用戶等。通過養成良好的報告編寫習慣,測試員可以例行地說明這些潛在的問題:文字明確而簡單,核實(并報告)程序錯誤出現在多種配置上。其他問題會隨程序錯誤的不同而不同。測試員可以在報告中預測某種問題,并提供相關信息。也可以等一等,看看大家最初對報告有什么反應,在評審該程序錯誤時再提供補充信息。
經驗4錯誤報告代表的是測試員
經驗5努力使錯誤報告有更高價值
經驗6產品的任何項目相關人員都應該能夠報告程序錯誤
經驗7引用別人的錯誤報告時要小心
經驗8將質量問題作為錯誤報告
經驗9有些產品的項目相關人員不能報告程序錯誤,測試員就是他們的代理
經驗10將受到影響的項目相關人員的注意力轉移到有爭議的程序錯誤上
經驗11決不要利用程序錯誤跟蹤系統監視程序員的表現
經驗12決不要利用程序錯誤跟蹤系統監視測試員的表現
經驗13及時報告缺陷
經驗14永遠不要假設明顯的程序錯誤已經寫入報告
經驗15報告設計錯誤
經驗16看似極端的缺陷是潛在的安全漏洞
經驗17使冷僻用例不冷僻
經驗18小缺陷也值得報告和修改
經驗19時刻明確嚴重等級和優先級之間的差別
經驗20失效是錯誤征兆,不是錯誤本身
經驗21針對看起來很小的代碼錯誤執行后續測試
經驗22永遠都要報告不可重現的錯誤,這樣的錯誤可能是時間炸彈
經驗23不可重現程序錯誤是可重現的
經驗24注意錯誤報告的處理成本
經驗25特別處理與工具或環境相關的程序錯誤
經驗26在報告原型或早期個人版本的程序錯誤之前,要先征得同意
經驗27重復錯誤報告是能夠自我解決的問題
經驗28每個程序錯誤都需要單獨報告
經驗29歸納行是錯誤報告中最重要的部分
經驗30不要夸大程序錯誤
經驗31清楚地報告問題,但不要試圖解決問題
經驗32注意自己的語氣。所批評的每個人都會看到報告
經驗33使自己的報告具有可讀性,即使對象是勞累和暴躁的人
經驗34提高報告撰寫技能
經驗35如果合適,使用市場開發或技術支持數據
經驗36相互評審錯誤報告
經驗37與將閱讀錯誤報告的程序員見面
經驗38最好的方法可能是向程序員演示所發現的程序錯誤
經驗39當程序員說問題已經解決時,要檢查是否真的沒問題了
經驗40盡快檢驗程序錯誤修改
經驗41如果修改出現問題,應與程序員溝通
如果程序錯誤修改反復失敗,或在開發階段的后期失敗,不要僅僅通過錯誤報告反饋信息并在跟蹤系統中歸檔,而應該直接找程序員。測試員的語氣和態度應該友好、熱心。要幫助程序員立即得到信息,并準備隨時澄清報告中的任何不清楚的地方,如果程序員想看,應準備隨時演示程序錯誤。
經驗42錯誤報告應該由測試員封存
經驗43不要堅持要求修改所有程序錯誤,要量力而行
原文轉自:http://www.anti-gravitydesign.com