《軟件工程技術(shù)叢書:軟件測(cè)試的藝術(shù)(第3版)》從第1版付梓到現(xiàn)在已經(jīng)30余年,是軟件測(cè)試領(lǐng)域的經(jīng)典著作。本書結(jié)構(gòu)清晰、講解生動(dòng)活潑,簡(jiǎn)明扼要地展示了久經(jīng)考驗(yàn)的軟件測(cè)試方法和智慧。
本書以一次自評(píng)價(jià)測(cè)試開篇,從軟件測(cè)試的心理學(xué)和經(jīng)濟(jì)學(xué)入手,探討了代碼檢查、走查與評(píng)審、測(cè)試用例的設(shè)計(jì)、模塊(單元)測(cè)試、系統(tǒng)測(cè)試、調(diào)試等主題,以及極限測(cè)試、互聯(lián)網(wǎng)應(yīng)用測(cè)試等高級(jí)主題,全面展現(xiàn)了作者的軟件測(cè)試思想。第3版在前兩版的基礎(chǔ)上,結(jié)合軟件測(cè)試的最新發(fā)展進(jìn)行了更新,覆蓋了可用性測(cè)試、移動(dòng)應(yīng)用測(cè)試以及敏捷開發(fā)測(cè)試等內(nèi)容。
本書適合軟件開發(fā)人員、IT項(xiàng)目經(jīng)理等相關(guān)讀者閱讀,還可以作為高等院校計(jì)算機(jī)相關(guān)專業(yè)軟件測(cè)試課程的教材或參考書。
《軟件工程技術(shù)叢書:軟件測(cè)試的藝術(shù)(第3版)》適合軟件開發(fā)人員、IT項(xiàng)目經(jīng)理等相關(guān)讀者閱讀,還可以作為高等院校計(jì)算機(jī)相關(guān)專業(yè)軟件測(cè)試課程的教材或參考書。海報(bào):
序言:
1979年,Glenford J. Myers出版了一本現(xiàn)在仍被證明為經(jīng)典的著作,這就是本書第1版。本書經(jīng)受住了時(shí)間的考驗(yàn),25年來(lái)一直列在出版商提供的書目清單中。這個(gè)事實(shí)本身就是對(duì)本書可靠、精粹和珍貴品質(zhì)的佐證。
在同一時(shí)期,本書第3版的幾位合著者共出版了200余本著作,大多數(shù)都是關(guān)于計(jì)算機(jī)軟件的。其中有一些很暢銷,再版了多次(例如Corey Sandler的《Fix Your Own PC》自付梓以來(lái)已出版到第8版,Tom Badgett關(guān)于微軟PowerPoint及其他Office組件的著作已經(jīng)出版到第4版)。然而,那些作者的著作中沒(méi)有哪一本書能夠像本書一樣持續(xù)數(shù)年之后仍暢銷不衰。
區(qū)別究竟在哪里呢?那些新書只涵蓋了短期性的主題:操作系統(tǒng)、應(yīng)用軟件、安全性、通信技術(shù)及硬件配置。20世紀(jì)80年代和90年代以來(lái)的計(jì)算機(jī)硬件與軟件技術(shù)的飛速發(fā)展,必然使得這些主題頻繁變動(dòng)和更新。
在此期間出版的有關(guān)軟件測(cè)試的書籍已數(shù)以百計(jì),這些書也對(duì)軟件測(cè)試的主題進(jìn)行了簡(jiǎn)要的探討。然而,本書為計(jì)算機(jī)界一個(gè)最為重要的主題提供了長(zhǎng)期、基本的指南:如何確保所開發(fā)的所有軟件做了其應(yīng)該做的,并且同樣重要的是,未做其不應(yīng)該做的?
本書第3版中保留了同樣的基本思想。我們更新了其中的例子以包含更為現(xiàn)代的編程語(yǔ)言。我們還研究了在Myers編著本書第1版時(shí)尚無(wú)人了解的主題:Web編程、電子商務(wù)、極限編程與測(cè)試及移動(dòng)應(yīng)用測(cè)試。
但是,我們永遠(yuǎn)不會(huì)忘記,新的版本必須遵從其原著,因此,新版本依然向讀者展示Glenford Myers全部的軟件測(cè)試思想,這個(gè)思想體系以及過(guò)程將適用于當(dāng)今乃至未來(lái)的軟件和硬件平臺(tái)。我們也希望本書能夠順應(yīng)時(shí)代,適用于當(dāng)今的軟件設(shè)計(jì)人員和開發(fā)人員掌握最新的軟件測(cè)試思想及技術(shù)。
Glenford J. Myers,IBM系統(tǒng)研究所前高級(jí)研究員,同時(shí)還是RadiSys公司的創(chuàng)始人和前CEO。
Tom Badgett,曾經(jīng)主管大型企業(yè)軟件開發(fā)團(tuán)隊(duì),已出版超過(guò)60本關(guān)于計(jì)算機(jī)軟件和硬件的技術(shù)書籍,同時(shí)他還是PcJr,Digital News等主流計(jì)算機(jī)雜志的技術(shù)編輯。
Corey Sandler,計(jì)算機(jī)新聞的先鋒,他曾經(jīng)負(fù)責(zé)Gannett Newspapers 和the Associated Press的技術(shù)部分以及之后成為Pc Magazine的第一任主編。他同時(shí)還是Digital News(針對(duì)DEC小型機(jī)的一份報(bào)紙)的編輯創(chuàng)始團(tuán)隊(duì)成員,他著作等身,目前已經(jīng)出版了超過(guò)150本書籍,覆蓋了從計(jì)算機(jī)到商業(yè)以及很多其他領(lǐng)域。
譯者序
序言
前言
第1章 一次自評(píng)價(jià)測(cè)試
第2章 軟件測(cè)試的心理學(xué)和經(jīng)濟(jì)學(xué)
2.1 軟件測(cè)試的心理學(xué)
2.2 軟件測(cè)試的經(jīng)濟(jì)學(xué)
2.2.1 黑盒測(cè)試
2.2.2 白盒測(cè)試
2.3 軟件測(cè)試的原則
2.4 小結(jié)
第3章 代碼檢查、走查與評(píng)審
3.1 代碼檢查與走查
3.2 代碼檢查
3.2.1 代碼檢查小組
3.2.2 檢查議程與注意事項(xiàng)
3.2.3 對(duì)事不對(duì)人,和人有關(guān)的注意事項(xiàng)
3.2.4 代碼檢查的衍生功效
3.3 用于代碼檢查的錯(cuò)誤列表
3.3.1 數(shù)據(jù)引用錯(cuò)誤
3.3.2 數(shù)據(jù)聲明錯(cuò)誤
3.3.3 運(yùn)算錯(cuò)誤
3.3.4 比較錯(cuò)誤
3.3.5 控制流程錯(cuò)誤
3.3.6 接口錯(cuò)誤
3.3.7 輸入/輸出錯(cuò)誤
3.3.8 其他檢查
3.4 代碼走查
3.5 桌面檢查
3.6 同行評(píng)審
3.7 小結(jié)
第4章 測(cè)試用例的設(shè)計(jì)
4.1 白盒測(cè)試
4.2 黑盒測(cè)試
4.2.1 等價(jià)劃分
4.2.2 一個(gè)范例
4.2.3 邊界值分析
4.2.4 因果圖
4.3 錯(cuò)誤猜測(cè)
4.4 測(cè)試策略
4.5 小結(jié)
第5章 模塊(單元)測(cè)試
5.1 測(cè)試用例設(shè)計(jì)
5.2 增量測(cè)試
5.3 自頂向下測(cè)試與自底向上測(cè)試
5.3.1 自頂向下的測(cè)試
5.3.2 自底向上的測(cè)試
5.3.3 比較
5.4 執(zhí)行測(cè)試
5.5 小結(jié)
第6章 更高級(jí)別的測(cè)試
6.1 功能測(cè)試
6.2 系統(tǒng)測(cè)試
6.2.1 能力測(cè)試
6.2.2 容量測(cè)試
6.2.3 強(qiáng)度測(cè)試
6.2.4 可用性測(cè)試
6.2.5 安全性測(cè)試
6.2.6 性能測(cè)試
6.2.7 存儲(chǔ)測(cè)試
6.2.8 配置測(cè)試
6.2.9 兼容性/轉(zhuǎn)換測(cè)試
6.2.1 0安裝測(cè)試
6.2.1 1可靠性測(cè)試
6.2.1 2可恢復(fù)性測(cè)試
6.2.1 3服務(wù)/可維護(hù)性測(cè)試
6.2.1 4文檔測(cè)試
6.2.1 5過(guò)程測(cè)試
6.2.1 6系統(tǒng)測(cè)試的執(zhí)行
6.3 驗(yàn)收測(cè)試
6.4 安裝測(cè)試
6.5 測(cè)試的計(jì)劃與控制
6.6 測(cè)試結(jié)束準(zhǔn)則
6.7 獨(dú)立的測(cè)試機(jī)構(gòu)
6.8 小結(jié)
第7章 可用性(或用戶體驗(yàn))測(cè)試
7.1 可用性測(cè)試基本要素
7.2 可用性測(cè)試流程
7.2.1 測(cè)試用戶的選擇
7.2.2 需要多少用戶進(jìn)行測(cè)試
7.2.3 數(shù)據(jù)采集方法
7.2.4 可用性調(diào)查問(wèn)卷
7.2.5 何時(shí)收工,還是多多益善
7.3 小結(jié)
第8章 調(diào)試
8.1 暴力法調(diào)試
8.2 歸納法調(diào)試
8.3 演繹法調(diào)試
8.4 回溯法調(diào)試
8.5 測(cè)試法調(diào)試
8.6 調(diào)試的原則
8.6.1 定位錯(cuò)誤的原則
8.6.2 修改錯(cuò)誤的技術(shù)
8.7 錯(cuò)誤分析
8.8 小結(jié)
第9章 敏捷開發(fā)模式下的測(cè)試
9.1 敏捷開發(fā)的特征
9.2 敏捷測(cè)試
9.3 極限編程與測(cè)試
9.3.1 極限編程基礎(chǔ)
9.3.2 極限測(cè)試:概念
9.3.3 極限測(cè)試的應(yīng)用
9.4 小結(jié)
第10章 互聯(lián)網(wǎng)應(yīng)用測(cè)試
10.1 電子商務(wù)的基本結(jié)構(gòu)
10.2 測(cè)試的挑戰(zhàn)
10.3 測(cè)試的策略
10.3.1 表示層的測(cè)試
10.3.2 業(yè)務(wù)層的測(cè)試
10.3.3 數(shù)據(jù)層的測(cè)試
10.4 小結(jié)
第11章 移動(dòng)應(yīng)用測(cè)試
11.1 移動(dòng)環(huán)境
11.2 測(cè)試面臨的挑戰(zhàn)
11.2.1 移動(dòng)設(shè)備多樣性
11.2.2 運(yùn)營(yíng)商網(wǎng)絡(luò)基礎(chǔ)設(shè)施
11.2.3 腳本編程
11.2.4 可用性測(cè)試
11.3 測(cè)試方法
11.3.1 真機(jī)測(cè)試
11.3.2 基于模擬器的測(cè)試
11.4 小結(jié)
附錄A極限編程示例程序
附錄B小于1000的素?cái)?shù)
第 1 章
Chapter 1
一次自評(píng)價(jià)測(cè)試
自本書30年前首次出版以來(lái),軟件測(cè)試變得比以前容易得多,也困難得多。軟件測(cè)試何以變得更困難?原因在于大量的編程語(yǔ)言、操作系統(tǒng)以及硬件平臺(tái)的涌現(xiàn)。在20世紀(jì)70年代只有相當(dāng)少的人使用計(jì)算機(jī),而在今天幾乎人人離不開計(jì)算機(jī)。而今天計(jì)算機(jī)不僅僅是指擺在你書桌上的計(jì)算機(jī)了,幾乎所有我們所接觸和使用的電子設(shè)備都內(nèi)置了一個(gè)“計(jì)算機(jī)”或者計(jì)算芯片,以及運(yùn)行在其上的軟件系統(tǒng)。不妨回想一下在今天的社會(huì)中還在使用哪些不需要軟件驅(qū)動(dòng)的設(shè)備,沒(méi)錯(cuò),錘子和手推車是,但是這些工具也大量使用在由軟件控制和操作的車間中。軟件的普遍應(yīng)用提升了測(cè)試的意義。今天的設(shè)備已經(jīng)千百倍強(qiáng)于它們的“前輩”,今天的“計(jì)算機(jī)”這個(gè)概念也變得越來(lái)越廣泛和越來(lái)越難準(zhǔn)確地定義。數(shù)字電視、電話、游戲產(chǎn)品、汽車等都有一顆計(jì)算機(jī)的“心”以及運(yùn)行其中的軟件,以至于在某些情況下它們自己本身也能夠被看做是一臺(tái)特別的計(jì)算機(jī)。 因此,現(xiàn)在的軟件會(huì)潛在地影響到數(shù)以百萬(wàn)計(jì)的人,使他們更高效地完成工作,反之也會(huì)給他們帶來(lái)數(shù)不清的麻煩,導(dǎo)致工作或事業(yè)的損失。這并不是說(shuō)今天的軟件比本書第1版發(fā)行時(shí)更重要,但可以肯定地說(shuō),今天的計(jì)算機(jī)(以及驅(qū)動(dòng)它的軟件)無(wú)疑已影響到了更多的人、更多的行業(yè)。
就某些方面而言,軟件測(cè)試變得更容易了,因?yàn)榇罅康能浖筒僮飨到y(tǒng)比以往更加復(fù)雜,內(nèi)部提供了很多已充分測(cè)試過(guò)的例程供應(yīng)用程序集成,無(wú)須程序員從頭進(jìn)行設(shè)計(jì)。例如,圖形用戶界面(GUI)可以從開發(fā)語(yǔ)言的類庫(kù)中建立起來(lái),同時(shí),由于它們是經(jīng)過(guò)充分調(diào)試和測(cè)試的預(yù)編程對(duì)象,將其作為自定義應(yīng)用程序的組成部分進(jìn)行測(cè)試的要求就減少了許多。另外,盡管市場(chǎng)上的測(cè)試書籍越來(lái)越多,甚至有過(guò)剩之嫌,似乎依舊有很多開發(fā)人員對(duì)全面的測(cè)試并不那么歡迎。引入更優(yōu)秀的開發(fā)工具、使用已經(jīng)通過(guò)測(cè)試的GUI(圖形界面控件)控件、緊張的交付日期以及高度集成的便利開發(fā)環(huán)境會(huì)讓測(cè)試變得僅僅是讓那些最基本的測(cè)試用例走走過(guò)場(chǎng)罷了。影響不大的bug也許只不過(guò)會(huì)讓最終用戶覺得使用不方便而已,然而嚴(yán)重的bug則可能造成經(jīng)濟(jì)損失甚至是人身傷害。本書所闡述的方法旨在幫助設(shè)計(jì)人員、開發(fā)工程師以及項(xiàng)目經(jīng)理更好地理解全面綜合測(cè)試的意義所在,并提供行之有效的指南以幫助達(dá)成測(cè)試的目標(biāo)。
所謂軟件測(cè)試,就是一個(gè)過(guò)程或一系列過(guò)程,用來(lái)確認(rèn)計(jì)算機(jī)代碼完成了其應(yīng)該完成的功能,不執(zhí)行其不該有的操作。軟件應(yīng)當(dāng)是可預(yù)測(cè)且穩(wěn)定的,不會(huì)給用戶帶來(lái)意外驚奇。在本書中,我們將討論多種方法來(lái)達(dá)到這個(gè)目標(biāo)。
……