現在,國內許多高校的計算機科學與技術、軟件工程及其相關專業紛紛開設軟件質量保證和軟件測試相關課程,以培養更多的軟件人才。為了適應當前教學的需要,編者查閱了大量國內外有關軟件質量和測試方面的著作和文獻,并結合自己多年的從業和教學經驗編寫了本書。本書的特點是技術介紹全面,實踐和理論并重,實例多。
本書著重介紹軟件質量和測試及管理技術理論中*重要、*精華的部分,注重知識點的融會貫通;而不是面面俱到,沒有重點和特色。本書中既有整體框架,又有重點理論和技術。
全書分兩篇,共12章。*篇軟件質量包括第1~5章: 第1章軟件質量概述,第2章軟件質量度量和配置管理,第3章軟件質量標準,第4章軟件全面質量管理,第5章軟件評審;第二篇軟件測試包括第6~12章:第6章軟件測試基礎,第7章白盒測試,第8章黑盒測試,第9章集成測試,第10章系統測試,第11章軟件測試自動化,第12章軟件測試管理。
本書可以作為高校計算機科學與技術專業、軟件工程專業及其相關專業本科生或研究生的教材,也可以作為軟件開發人員、軟件質量保證人員和軟件測試人員的參考書,還適合廣大計算機用戶閱讀。本書封面貼有清華大學出版社防偽標簽,無標簽者不得銷售。
本書重點介紹軟件質量和軟件測試技術中*精華內容,注重知識點的融會貫通。本書適應教學需求,同時兼顧軟件質量保證和軟件測試技術。本書可以作為高校計算機科學與技術專業、軟件工程專業的教學用書,也可以作為軟件開發和軟件測試人員的參考用書。
前言
隨著信息技術的發展,軟件已經滲透到人們生活的各個領域,成為人們生活中不可缺少的一部分。伴隨軟件的廣泛使用,人們對軟件質量的要求越來越高;同時由于軟件系統變得越來越復雜,如何提高軟件質量是廣大計算機技術人員所關注的,這使軟件開發人員和軟件測試人員面臨著巨大挑戰。
軟件質量和測試行業的理論、技術、管理和工具等都在不斷更新和發展。與此同時,軟件質量管理和軟件測試方面的書籍也涌現出來,但將二者很好的結合的書籍卻十分有限。本書是供此專業領域的學生以及軟件質量管理人員和軟件測試人員學習的一本很好的專業用書。本書力爭做到二者兼顧: 一是兼顧了相關技術和理論知識的介紹;二是兼顧了實踐的培養和自動化工具的使用。另外,本書對軟件開發各個階段的軟件質量保證活動的理論、方法和應用等進行了詳細的闡述,同時對軟件測試的方法、測試工具和軟件測試的全過程等內容進行了全面的介紹。
本書分兩篇,第一篇軟件質量部分的主要內容如下。
第1章軟件質量概述,首先介紹了軟件和軟件工程,接著重點闡述了軟件質量的含義以及軟件質量保證和軟件質量模型,最后介紹了軟件缺陷的含義、產生的原因,軟件缺陷的嚴重性、優先級、構成、預防和修復等。
第2章軟件質量度量和配置管理,分別講述了軟件質量度量和軟件配置管理的含義、內容和常見問題。
第3章軟件質量標準,首先概述了軟件質量標準,其次詳細講述了CMM和CMMI的含義、基本內容和二者的區別等內容,然后介紹了ISO 9000軟件質量標準,最后介紹了其他質量標準。
第4章軟件全面質量管理,講述了軟件全面質量管理的含義、步驟和評審、軟件全面質量管理中的團隊和質量控制。
第5章軟件評審,介紹了軟件評審的含義和主要內容,以及軟件評審的幾個階段:需求評審、概要設計評審、詳細設計評審、測試評審等內容,然后介紹了如何避免進入評審誤區,最后講述了軟件評審中的角色和職能。
第二篇軟件測試部分的主要內容如下。
第6章軟件測試基礎,從軟件開發的過程入手,通過介紹軟件缺陷造成的重大損失和災難,闡述了軟件測試的定義、軟件測試的過程,介紹了軟件測試的原則與誤區,以及軟件測試的發展等。第7章白盒測試,介紹了白盒測試的基本概念,詳細闡述了邏輯驅動覆蓋測試的幾種覆蓋標準: 語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋、路徑覆蓋和修訂的條件/判定覆蓋等白盒測試的方法,還介紹了其他幾種白盒測試方法和代碼檢查方法。
第8章黑盒測試,介紹黑盒測試的基本概念,常用的黑盒測試方法,包括等價類劃分、邊界值分析法、因果圖法、決策表法、正交實驗設計法,以及其他黑盒測試方法等。
第9章集成測試,介紹了集成測試的概念、方法,集成測試用例設計,集成測試過程等。
第10章系統測試,詳細闡述了系統測試方法,包括性能測試、壓力測試、容量測試、健壯性測試、安全性測試、可靠性測試、兼容性測試、可用性測試、安裝性測試、容錯性測試、冒煙測試、GUI軟件測試、文檔測試、網站測試、恢復測試、協議測試、驗收測試等。
第11章軟件測試自動化,介紹了軟件測試自動化基礎,包括軟件測試自動化的含義和軟件測試自動化的特點,以及軟件測試自動化的實施和軟件測試自動化工具的選擇與比較,比較詳細地介紹了幾款國內外著名的測試工具,即LoadRunner、WinRunner和AutoRunner。
第12章軟件測試管理,介紹了如何建立軟件測試管理、軟件測試管理的基本內容和常用的軟件測試管理工具等。
本書由傅兵撰寫和統稿,韓冬、韓秉霖也參與了編寫。
在本書編寫過程中,參閱了很多國內外同行的著作和論文等文獻資料,在此對這些資料的作者表示衷心的感謝。同時也感謝清華大學出版社給予的幫助和支持。
由于編者的水平有限,加之時間倉促,書中難免存在疏漏之處,希望專家、同行和廣大讀者批評指正。
編者
2017年7月前言
隨著信息技術的發展,軟件已經滲透到人們生活的各個領域,成為人們生活中不可缺少的一部分。伴隨軟件的廣泛使用,人們對軟件質量的要求越來越高;同時由于軟件系統變得越來越復雜,如何提高軟件質量是廣大計算機技術人員所關注的,這使軟件開發人員和軟件測試人員面臨著巨大挑戰。
軟件質量和測試行業的理論、技術、管理和工具等都在不斷更新和發展。與此同時,軟件質量管理和軟件測試方面的書籍也涌現出來,但將二者很好的結合的書籍卻十分有限。本書是供此專業領域的學生以及軟件質量管理人員和軟件測試人員學習的一本很好的專業用書。本書力爭做到二者兼顧: 一是兼顧了相關技術和理論知識的介紹;二是兼顧了實踐的培養和自動化工具的使用。另外,本書對軟件開發各個階段的軟件質量保證活動的理論、方法和應用等進行了詳細的闡述,同時對軟件測試的方法、測試工具和軟件測試的全過程等內容進行了全面的介紹。
本書分兩篇,第一篇軟件質量部分的主要內容如下。
第1章軟件質量概述,首先介紹了軟件和軟件工程,接著重點闡述了軟件質量的含義以及軟件質量保證和軟件質量模型,最后介紹了軟件缺陷的含義、產生的原因,軟件缺陷的嚴重性、優先級、構成、預防和修復等。
第2章軟件質量度量和配置管理,分別講述了軟件質量度量和軟件配置管理的含義、內容和常見問題。
第3章軟件質量標準,首先概述了軟件質量標準,其次詳細講述了CMM和CMMI的含義、基本內容和二者的區別等內容,然后介紹了ISO 9000軟件質量標準,最后介紹了其他質量標準。
第4章軟件全面質量管理,講述了軟件全面質量管理的含義、步驟和評審、軟件全面質量管理中的團隊和質量控制。
第5章軟件評審,介紹了軟件評審的含義和主要內容,以及軟件評審的幾個階段:需求評審、概要設計評審、詳細設計評審、測試評審等內容,然后介紹了如何避免進入評審誤區,最后講述了軟件評審中的角色和職能。
第二篇軟件測試部分的主要內容如下。
第6章軟件測試基礎,從軟件開發的過程入手,通過介紹軟件缺陷造成的重大損失和災難,闡述了軟件測試的定義、軟件測試的過程,介紹了軟件測試的原則與誤區,以及軟件測試的發展等。第7章白盒測試,介紹了白盒測試的基本概念,詳細闡述了邏輯驅動覆蓋測試的幾種覆蓋標準: 語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋、路徑覆蓋和修訂的條件/判定覆蓋等白盒測試的方法,還介紹了其他幾種白盒測試方法和代碼檢查方法。
第8章黑盒測試,介紹黑盒測試的基本概念,常用的黑盒測試方法,包括等價類劃分、邊界值分析法、因果圖法、決策表法、正交實驗設計法,以及其他黑盒測試方法等。
第9章集成測試,介紹了集成測試的概念、方法,集成測試用例設計,集成測試過程等。
第10章系統測試,詳細闡述了系統測試方法,包括性能測試、壓力測試、容量測試、健壯性測試、安全性測試、可靠性測試、兼容性測試、可用性測試、安裝性測試、容錯性測試、冒煙測試、GUI軟件測試、文檔測試、網站測試、恢復測試、協議測試、驗收測試等。
第11章軟件測試自動化,介紹了軟件測試自動化基礎,包括軟件測試自動化的含義和軟件測試自動化的特點,以及軟件測試自動化的實施和軟件測試自動化工具的選擇與比較,比較詳細地介紹了幾款國內外著名的測試工具,即LoadRunner、WinRunner和AutoRunner。
第12章軟件測試管理,介紹了如何建立軟件測試管理、軟件測試管理的基本內容和常用的軟件測試管理工具等。
本書由傅兵撰寫和統稿,韓冬、韓秉霖也參與了編寫。
在本書編寫過程中,參閱了很多國內外同行的著作和論文等文獻資料,在此對這些資料的作者表示衷心的感謝。同時也感謝清華大學出版社給予的幫助和支持。
由于編者的水平有限,加之時間倉促,書中難免存在疏漏之處,希望專家、同行和廣大讀者批評指正。
編者
2017年7月