1、如何描述一個缺陷?
看到這個問題,也許有些讀者會覺得可笑:哪個測試人員不會描述缺陷?但是現實中卻真的存在很多測試人員提交的缺陷需要向開發人員進行解釋或者演示后,才能讓人明白他真正要表達的意思。實際上,是否能夠清晰地描述軟件缺陷,絕對體現著一個測試人員的能力水平高低。
除了極個別的不能重現的缺陷外,一個軟件缺陷至少應該描述清楚三方面的內容:缺陷概述、詳細內容、重新步驟。
缺陷概述——用一到兩句話詳細地描述缺陷的癥狀,使管理人員一下子就能看明白大概是什么問題。
詳細內容——詳細地描述缺陷的癥狀,可以發表自己對該缺陷的一些意見。詳細內容主要供程序員進行分析。
重新步驟——詳細描述如何在系統中重新缺陷,這是非常重要的一項內容,如果重新步驟描述的非常清晰,將大大加快開發人員修改缺陷的速度。
通常情況下,很多缺陷管理軟件把“詳細內容”與“重新步驟”進行了合并,即只有一個文本輸入框供測試人員錄入信息,這就導致很多測試人員疏忽了去描述“重新步驟”。
此外其他諸如測試版本、測試環境、發現日期等輔助信息也應該認真錄入。
2、缺陷是誰“生產”的?
這是一個“老生常談”的問題。尤其在追究一些質量問題責任的時候。常常聽測試人員抱怨:“這些模塊簡直是垃圾!不值得測試!浪費我的時間!”,開發人員則抱怨:“重要的問題發現不了,卻成天盯著那些無關痛癢的小問題,還不如自己去測試!”。
不符合用戶要求的都可以稱之為缺陷,因此缺陷的來源主要有兩類:一類是沒有正確理解用戶需求,由系統需求或者分析人員設計出來的缺陷,這類缺陷主要由設計人員“生產”;另外一類是程序開發人員沒有按照設計要求進行開發或者編寫的代碼存在錯誤而引起的缺陷,這類缺陷由程序開發人員“生產”。
對于那些開發流程不規范的組織,通常開發人員會包辦測試前的大部分工作。在這種環境下,幾乎沒有什么設計文檔,軟件開發主要按照程序設計人員的想像來進行,這個時候的缺陷則主要由開發人員“生產”。
圖14-1詳細的描述了軟件設計與用戶需求的巨大差異,通過圖14-1也很容易想到為什么現實中會有大量的應用軟件不能更好地幫助用戶實現預期目標的真正原因。
測試人員不是缺陷的“生產”者,因為測試人員沒有寫過一行代碼,這是否意味著測試人員可以在一旁“幸災樂禍呢”?事實恰好相反,測試人員與缺陷關系更加密切,他們是“缺陷的缺陷”的制造者。所謂“缺陷的缺陷”,主要指測試人員提交的“不是缺陷”的缺陷,即測試人員沒有正確理解需求,從而提交了根本“不是缺陷”的缺陷,這種缺陷也是測試人員經常受到指責的重要原因。
關于上面的抱怨,測試和開發雙方都需要擺正心態:因為實際雙方都在不停的“生產”著缺陷,只是創造的方式不同罷了。
圖14-1開發出的軟件與用戶實際需求的差異3、缺陷產生的原因是什么?
在上個問題中,已經介紹了設計人員、開發人員、測試人員都會“生產”軟件缺陷。在實際工作中,缺陷產生的方式更是層出不窮,原因也是多種多樣。例如開發人員去接杯水,碰巧和另外一個接水的同事聊了幾句,結果回到工位時忘記了要在某個判斷語句追加此前已經想好的一個判斷條件,這無疑會產生一個缺陷。因此很難一下子把缺陷產生的原因全部陳列出來,下面只是一些引起缺陷的典型原因:
(1)開發人員不太了解需求,不清楚應該“做什么”和“不做什么”,常常做不合需求的事情,因此產生了缺陷;
(2)軟件系統越來越復雜,開發人員不太可能精通所有的技術。如果不能正確地掌握新的技術或者知識,可能會產生缺陷;
(3)技術文檔普遍編寫的很差,甚至文檔本身就有缺陷,導致使用者產生更多的缺陷;
(4)軟件需求、設計報告、程序經常發生變更,每次變更都可能產生新的缺陷;
(5)任何人在編程時都可能犯錯誤,導致程序中有缺陷;
(6)技術人員常處于進度的壓力之下,不能靜心思考也很容易產生缺陷,尤其是在Deadline臨近之際,頻繁的加班是開發人員疲于應付進度;
(7)很多開發人員過于自信,喜歡說“沒問題”,因此對于一些代碼不進行認真的調試,這也是一些缺陷產生的原因;
(8)頻繁的拷貝代碼也會把缺陷隨之復制到新的程序中,尤其是復制其它團隊成員的代碼更容易使一些缺陷隱藏在程序中。
4、軟件的質量應該由什么人來負責?
對于一些開發管理混亂或者測試剛剛起步的組織,產品質量一發生問題,習慣上會歸咎于測試小組,認為測試人員沒有測試好產品,所以才產生了那么多的缺陷。
對于開發管理規范一些或者測試體系已經建立一定時間的組織,如果客戶投訴產品質量問題,則往往開發人員與測試人員會一起接受處罰。這種處理方式多少會讓測試人員心理稍稍平衡一些。
追根溯源,軟件發生質量問題實際是項目管理不規范引起的。因此,如果要追究責任的話,軟件質量問題的責任應該由整個團隊來承擔。只有提高整個團隊的開發水平,才能提高質量。
此外,也應該認識到軟件發現問題是正常的現象,很少有軟件實現了零缺陷。做為公司領導者,應該具體問題具體分析,不要老是考慮如何懲罰自己的成員。
5、測試能保證質量嗎?
在軟件質量方面,目前多數IT企業主要采取三種措施:技術評審、過程檢查、軟件測試。
技術評審:技術評審最初是由IBM公司為了提高軟件質量和提高程序員工作效率而采用的,主要指對項目計劃、軟件需求、系統設計等文檔進行有效評審的過程。技術評審可以由專家團隊組成,也可以由組織內部人員組成,它可以盡量避免設計人員在某些方面發生“閉門造車”的情形。
文章來源于領測軟件測試網 http://www.kjueaiud.com/