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