最近讀了《軟件測試的藝術》(The art of software testing),書是三十多年前(1979)寫的,為了與時俱進,前幾年(2004)被翻新了一下,增加了一些新的測試方法例如(eXtreme testing,Web testing),成為第二版。
書寫的非常簡潔,沒有太多的冗余,結構非常清��,內容非常全面,這可能是這本書成為經典軟件測試書籍的主要原因;由于書是30年前寫的,而且作者的擁有的主要的集成電路中的軟件測試的背景,對真正的現代商業軟件測試并未涉足太深(那時Microsoft和Oracle剛剛成立沒有幾年,還沒有什么大型的應用軟件產品),因此這本書忽視了用戶在軟件測試中所起的作用??傮w來說,這是一本經典的書籍,可以放在書架中作為常閱參考書籍。
閱讀這本書不需要太多的技術背景,任何人都能在讀這本書中受益。第一章就是一個非常經典測試問題,用于檢測你的測試技能,幫助你更好的理解測試用例(Test Case)。第二章給出了測試的定義以及一些好的原則,應該說這些原則在以后的軟件測試發展中起著重要作用。例如“開發人員應該避免自己進行測試”,"測試是一個非常需要創造力和智力的任務”,這些原則都體現在微軟建立測試組織的重要原則。第三章給出了細致的代碼檢查的具體步驟,甚至包括檢查點的列表。第六章是我最喜歡的章節,它列出了系統測試中幾乎所有的方面,可以作為設計系統級測試用例的重要參考。
作為一本經典的軟件測試教材,卻很少提到軟件用戶對于測試的影響,這也是此書最大的缺憾了。此書對軟件測試活動的定義為“帶著發現錯誤的目的,執行被測軟件”,其實不然,軟件的Bugs數量是不可預測的,最好的測試活動應該是最大程度滿足用戶對軟件質量的要求。在第四章,軟件測試用例設計中,也缺少對于用戶需求的考慮,此書更多的是從數據流角度分析問題。對于Internet應用軟件,雖然第二版增加的第九章提到了相關的內容,但是所設計的深度和可用性卻是大大不如其它章節。
這本書像一本軟件測試的一本字典,可以幫助著很多軟件測試的初學者,也可以作為資深軟件測試人員的參考手冊。
原文轉自:http://www.anti-gravitydesign.com