- 軟件測試的藝術(原書第3版)
- (美)Glenford J.Myers Tom Badgett Corey Sandler
- 1391字
- 2021-01-14 16:50:39
前言
在本書1979年第1版出版的時侯,有一條著名的經驗,即在一個典型的編程項目中,軟件測試或系統測試大約占用50%的項目時間和超過50%的總成本。
30多年后的今天,同樣的經驗仍然成立。現在出現了新的開發系統、具有內置工具的語言以及習慣于快速開發大量軟件的程序員。但是,在任何軟件開發項目中,測試依然扮演著重要角色。
在這些事實面前,讀者可能會以為軟件測試發展到現在不斷完善,已經成為一門精確的學科。然而實際情況并非如此。事實上,與軟件開發的任何其他方面相比,人們對軟件測試仍然知之甚少。而且,軟件測試并非熱門課題,本書首次出版時是這樣,遺憾的是,今天仍然如此。現在有很多關于軟件測試的書籍和論文,這意味著,至少與本書首次出版時相比,人們對軟件測試這個主題有了更多的了解。但是,測試依然是軟件開發中的“黑色藝術”。
這就有了更充足的理由來修訂這本關于軟件測試藝術的書,同時我們還有其他一些動機。在不同的時期,我們都聽到一些教授和助教說:“我們的學生畢業后進入了計算機界,卻絲毫不了解軟件測試的基本知識,而且在課堂上向學生介紹如何測試或調試其程序時,我們也很少有建議可提供。”
因此,本書再版的目的與前兩版一樣:填充專業程序員和計算機科學學生的知識空缺。正如書名所蘊涵的,本書是對測試主題的實踐探討,而不是理論研究,還包括對新的語言和過程的探討。盡管可以根據理論的脈絡來討論軟件測試,但本書旨在成為實用且“腳踏實地”的手冊。因此,很多與軟件測試有關的主題,如程序正確性的數學證明都被有意地排除在外了。
第1章介紹了一個供自我評價的測試,每位讀者在繼續閱讀之前都須進行測試。它揭示出我們必須了解的有關軟件測試的最為重要的實用信息,即一系列心理和經濟學問題,這些問題在第2章中進行了詳細討論。第3章探討的是不依賴計算機的代碼走查或代碼檢查的重要概念。不同于大多數研究都將注意力集中在概念的過程和管理方面,第3章則是從技術上“如何發現錯誤”的角度來進行探討。
讀者可能會意識到,在軟件測試人員的技巧中最為重要的部分是掌握如何編寫有效測試用例的知識,這正是第4章的主題。第5章探討了如何測試單個模塊或子例程,第6章講述了如何測試更大的對象。第7章圍繞用戶體驗或可用性測試這一重要的軟件測試概念進行闡述,在更復雜且擁有更廣大用戶量的軟件不斷涌現的今天,可用性測試變得越來越重要。第8章介紹了一些程序調試的實用建議,第9章著重研究了極限編程及其測試(一種在今天稱為敏捷開發環境中的編程和測試方法)。第10章介紹如何將本書所涵蓋的軟件測試知識運用到Web開發中,包括電子商務系統以及社交網絡[1]的開發。第11章描述了如何測試移動設備上的應用。
本書主要面向三類讀者。第一類是專業的程序員。盡管我們希望本書的內容對于他們來說不是全新的知識,但本書能使專業程序員對測試技術增強了解。如果這些材料能使軟件開發人員在某個程序中多發現了一個錯誤,那么本書創造的價值將遠遠超過書價本身。
第二類讀者是項目經理,他們將會直接受益于本書所介紹的實用的測試管理理論與知識。第三類讀者是軟件或計算機專業的學生,我們的目的在于向學生展示程序測試的問題,并提供一系列有效的技術。對于最后一類讀者群,我們建議本書作為程序設計課程的補充教材,使學生在學習階段的早期就接觸到軟件測試的內容。
Glenford J.Myers
Tom Badgett
Todd M.Thomas
Corey Sandler
- 移動UI設計(微課版)
- Java入門很輕松(微課超值版)
- Java FX應用開發教程
- Python計算機視覺編程
- Apex Design Patterns
- Ext JS 4 Web Application Development Cookbook
- Android Native Development Kit Cookbook
- Python語言實用教程
- 新印象:解構UI界面設計
- 超簡單:用Python讓Excel飛起來(實戰150例)
- 寫給青少年的人工智能(Python版·微課視頻版)
- Learning Shiny
- Learning RSLogix 5000 Programming
- 威脅建模:設計和交付更安全的軟件
- 區塊鏈原理、架構與應用(第2版)