有效測試軟件的方法與技術[1] 軟件測試
1. 測試的常識與道理
1.1 你真的懂測試嗎
◆ 編程大師說:沒有錯誤的程序世間難求。 (《編程之道》)
◆ 你在學校里學過測試嗎?(讀到博士可能也不懂測試)
◆ 你所在的企業重視測試嗎? (小公司程序員的技能更加全面)
◆ 臨時抱佛腳行嗎?你以為有文檔模板就會測試了嗎?
◆ 如果不懂得有效地進行測試,你不僅得不到功勞,也沒人欣賞你的苦勞,你擁有最多的將只是疲勞。
◆ 職業軟件工程師應當掌握需求開發、系統設計、編程、測試、維護 所有技能。
1.2 測試的目的是什么
◆ 測試的目的是為了發現盡可能多的缺陷,不是為了說明軟件中沒有缺陷。
◆ 推論:成功的測試在于發現了迄今尚未發現的缺陷。所以測試人員的職責是設計這樣的測試用例,它能有效地揭示潛伏在軟件里的缺陷。
◆ 千萬不要將“測試”與“演示”混為一談。例如科研鑒定會。
◆ 如果產品通過了嚴格的測試,大家不要不吭氣,應當好好地宣傳一把 。
1.3 一些常識和經驗之談
◆ 測試能提高軟件的質量,但是提高質量不能依賴測試。
◆ 測試只能證明缺陷存在,不能證明缺陷不存在!皬氐椎販y試”難以成為現實,要考慮時間、費用等限制,不允許無休止地測試。我們應當祈禱:軟件的缺陷在產品被淘汰之前一直沒有機會發作。
◆ 測試的主要困難是不知道如何進行有效地測試,也不知道什么時候可以放心 地結束測試。
◆ 每個開發人員應當測試自己的程序(份內之事),但是不能作為該程序已經通過測試的依據(所以項目需要獨立測試人員)。
◆ 80-20原則:80%的缺陷聚集在20%的模塊中,經常出錯的模塊改錯后還會經常出錯
◆ 測試應當循序漸進,不要企圖一次性干完,注意“欲速則不達”。
2. 測試的分類與比較
◆ 問題1:有了“黑盒”測試為什么還要“白盒”測試?
– 黑盒測試只能觀察軟件的外部表現,即使軟件的輸入輸出都是正確的,卻并不能說明軟件就是正確的。因為程序有可能用錯誤的運算方式得出正確的結果,例如“負負得正,錯錯得對”,只有白盒測試才能發現真正的原因。
– 白盒測試能發現程序里的隱患,象內存泄漏、誤差累計問題。在這方面,黑盒測試存在嚴重的不足。
文章來源于領測軟件測試網 http://www.k11sc111.com/