本書詳盡地闡述了軟件測試的基礎知識及其相關的測試技術,內(nèi)容包括軟件測試基礎、軟件測試模型與過程、軟件測試管理、黑盒測試、白盒測試、單元測試、集成測試、系統(tǒng)測試、面向?qū)ο筌浖臏y試、自動化測試,Web系統(tǒng)測試案例和軟件測試實驗。書中通過一個Web系統(tǒng)測試案例實踐本書所論述的測試理論和技術。本書內(nèi)容全面、重點突出、理論簡明、難易適中,注重基本概念和基礎理論,強調(diào)測試技術的實用性。書中結合大量的測試案例,將理論與實踐緊密結合,使讀者可以更好地理解和掌握軟件測試技術,并運用到實際測試工作中去。本書可作為高等院校、示范性軟件學院的計算機相關專業(yè)和軟件技術專業(yè)的教材,也可作為軟件測試技術初、中級培訓教程,同時可供從事軟件開發(fā)和軟件測試的專業(yè)技術人員和管理人員參閱。
隨著軟件業(yè)的迅猛發(fā)展,計算機軟件正被廣泛地應用到社會的各個領域,軟件產(chǎn)品的質(zhì)量控制與管理正逐漸成為軟件企業(yè)生存與發(fā)展的關鍵。如何在有競爭力的時間框架內(nèi)向客戶交付質(zhì)量令人滿意的軟件產(chǎn)品,以及如何運用新技術來應對軟件應用程序日益增長的復雜性等問題越來越受到軟件企業(yè)、軟件用戶的關心與重視。由于軟件開發(fā)周期變短,應用程序的使用和圍繞應用程序的技術可能每天都在變化,所以在運作期間必須對應用程序的質(zhì)量進行監(jiān)控。軟件測試成為了保證軟件產(chǎn)品質(zhì)量控制、管理與檢測的重要手段。軟件測試并非是對軟件產(chǎn)品的找錯過程,而是貫穿于軟件設計、開發(fā)過程的始終,是一個科學的質(zhì)量控制過程。軟件質(zhì)量是指軟件產(chǎn)品中能滿足給定需求的各種特性的總和,這些特性稱作質(zhì)量特性。ISO/IEC 9126中規(guī)定了軟件的6個質(zhì)量特性,即功能性、可靠性、易用性、效率、維護性和可移植性,每個特性包含若干子特性。由于軟件質(zhì)量特性的復雜性、抽象性及難以度量性等,使得軟件測試內(nèi)容繁多、技術復雜、過程繁雜。軟件企業(yè)已越來越意識到軟件測試的重要性。在微軟內(nèi)部,軟件測試人員與軟件開發(fā)人員的比率一般為1.5~2.5,這也許出乎了大家對測試人員的理解,但微軟軟件開發(fā)的實踐過程已經(jīng)證明了這種人員結構的合理性。我國的軟件企業(yè)也逐漸加大了軟件測試在整個軟件開發(fā)系統(tǒng)工程中的比重。近些年來,測試成本的比例更有上升趨勢?v觀國內(nèi)和國外的軟件產(chǎn)業(yè),技術上的差距當然是存在的,但更為明顯的也是致命的差距在于產(chǎn)品質(zhì)量的控制,其中軟件測試是重要的一環(huán)。為了縮小國內(nèi)軟件測試水平與國際水平的差距,培養(yǎng)專業(yè)的軟件測試人才,國內(nèi)許多高校和培訓機構都開設了各類軟件測試課程。我們總結多年的軟件測試技術教學和實踐經(jīng)驗編寫了本書。全書共包括12章。第1章介紹軟件質(zhì)量和軟件測試的相關概念,其中包括軟件質(zhì)量保證、軟件質(zhì)量成本以及軟件測試的定義、目的、原則、分類和測試用例的相關知識。第2章介紹軟件測試模型與過程,分別介紹軟件測試中的常見模型:V模型、W模型、X模型、H模型。第3章介紹軟件測試管理,重點介紹軟件測試的組織和管理,包括測試小組的組建、測試環(huán)境的搭建、被測件的版本管理、測試計劃、缺陷管理等相關內(nèi)容。第4章介紹黑盒測試的主要方法,包括邊界值分析、等價類測試、基于判定表的測試、因果圖、正交試驗設計法、錯誤推測法等。第5章介紹白盒測試的主要方法,其中包括邏輯覆蓋測試、基本路徑測試、數(shù)據(jù)流測試、程序插裝、域測試等方法。第6章介紹單元測試的相關知識,重點介紹單元測試的定義、環(huán)境、策略、方法、內(nèi)容以及單元測試的意義,最后通過一個案例來實踐單元測試的過程。第7章介紹集成測試的相關知識,重點介紹集成測試的定義、集成測試的各類方法,包括基于功能分解的集成測試、基于調(diào)用圖的集成、基于路徑的集成,最后通過一個拼圖游戲案例來實踐集成測試的過程。第8章介紹系統(tǒng)測試的相關知識,重點介紹系統(tǒng)測試的定義、內(nèi)容,以及系統(tǒng)測試的方法。由于Web系統(tǒng)的廣泛應用以及其軟件的特點,本章還介紹了關于Web系統(tǒng)測試的特有方法。第9章介紹面向?qū)ο蟪绦驕y試的相關知識,回顧了面向?qū)ο蟪绦蛟O計的特性:封裝、繼承、多態(tài),介紹了這些特性對測試的影響,對比了面向?qū)ο蟮臏y試方法和傳統(tǒng)測試方法。本章還介紹了面向?qū)ο筌浖䴗y試的層次以及各個層次的測試方法。第10章介紹自動化測試的背景、自動化測試的技術和常見的自動化測試工具。第11章以一個博客網(wǎng)站為例,簡要介紹Web系統(tǒng)的測試方法和流程。第12章介紹軟件測試實踐教學中適合開展的軟件測試實驗,其中包括:軟件測試管理實驗、軟件缺陷管理實驗、單元測試實驗、功能測試實驗、性能測試實驗、Web安全測試實驗和綜合實驗。教師可根據(jù)教學內(nèi)容選擇性地安排實驗教學。本書突出案例教學的特點,注重學生測試實踐能力的培養(yǎng)。在閱讀本書時,對任何測試技術,不僅要知其然,還要知其所以然。從理論到實踐,再從實踐回歸理論。只有這樣,才能更好地領悟到書中所涉及的理論和技術。感謝劉自偉研究員審校了全書結構,感謝潘婭副教授提出了寶貴意見。感謝西安電子科技大學出版社為本書辛勤付出的所有編輯們。鑒于作者水平有限,編寫時間倉促,書中疏漏之處在所難免,懇請讀者批評指正。