內容簡介
《探索式軟體測試》任命軟體測試人員,OA專家、開發人員、程式經理和架構師閱讀,對他們的工作具有重要的啟發作用。探索式軟體測試作為一種富有創新精神和現實意義的測試方法,引起越來越多軟體測試人員、質量保證人員和項目經理的高度重視。《探索式軟體測試》作者結合自己二十年的經驗,從多個角度結合富的實例闡述了探索式軟體測試的使用技巧、提示和相關技術。全書共8章,3個附錄,為手工測試流程提供了重要的指導,技術和規劃。
探索式軟體測試的四個類型
探索式軟體測試的四個類型、探索式軟體測試一共分為自由式探索式測試、基於場景的探索式測試、基於策略的探索式測試和基於反饋的探索式測試。下面將詳細介紹4種類型的套用場景。
一:自由式探索式測試自由式探索式測試指的是對一個應用程式的所有功能,以任意次序、使用任何如數進行隨機探測,而不考慮哪些功能是否必須包括在內。自由式測試沒有任何規則和模式、只是不停的去做。很不幸,很多人認為所有的探索式測試都是自由式的,從長遠的觀點來看,這種看法嘀咕了探索式測試技術的能力,我們在隨後將看到這類測試的一些變種。
一個自由測試用例可能會被選中成為一個快速的冒煙測試,用它來檢查是否會找到重大的崩潰或者嚴重的軟體缺陷,或是在採用先進的技術之前通過它來熟悉一個應用程式。顯然,自由式探索式測試無需也不應該進行大量的準備規則。事實上,它更像是“探索”而不是“測試”,所以我們應當相應的調整對它的期望值。
自由式測試不需要多少經驗或者信息。但是,同以下提到的探索式技術相結合後,它將成為一個非常強大的測試工具。
二:基於場景的探索式測試基於場景的探索式測試和傳統的基於場景的測試有類似之處。兩者都涉及到一個開商店,就是用戶故事或者是文檔化得端到端場景的開始之處,那也是我們所期望的最終用戶開始執行應用程式的地方。這些場景可以來自用戶研究、應用程式、以前版本的數據等,並作為腳本用於測試軟體。探索式測試對傳統場景測試的補充吧腳本的套用範圍擴大到了更改、調查和改變用戶執行路徑的範疇。
使用場景作為指導的探索式測試人員經常會修改他敢興趣的輸入或者是追尋一些並沒有包括在腳本中的潛在副作用。不過,由於最終的不表是完成給出的場景,這些測試上的彎路、最終總是會回到腳本檔案記載的用戶主要執行路徑。
三:基於策略的探索式測試將自由式測試探索式與具有測試老手的經驗、技能和感知融合在一起,就成為基於策略的探索式測試。它屬於自由式的探索,只是他是在現有的錯誤搜尋技術下引導完成的。基於策略的探索式測試套用所有的已知技術(如邊界值分析或組合測試)和未知的本能(如異常處理往往容易出現軟體缺陷),來指導測試人員進行測試。
這些已知的策略是基於策略的探索式測試成功的關鍵,存儲的測試知識越豐富,測試就會更有效率。這些策略緣於積累下來的知識,它們指導軟體缺陷隱藏在哪裡,如何綜合人工輸入數據,那些代碼路徑常常出現故障。
基於策略的探索式測試結合了測試老手的經驗和探索型測試人員的隨機性。
四:基於反饋的探索式測試基於反饋的探索式測試緣於自由式測試,但是隨著測試歷史的形成,測試人員們就會利用反饋來指導今後的探索。“覆蓋”就是典型的例子。一名測試人員通過諮詢那些覆蓋指標(代碼覆蓋、用戶界面覆蓋、特性覆蓋、輸入覆蓋或者其中的某一些組合)來選中新的測試用例,以使這些覆蓋指標得以提高。覆蓋指標只是收錄反饋信息的標誌之一。我們也會看其他標誌,如代碼改動數量和軟體缺陷密集程度等。
基於反饋的探索式測試時一種“上一次測試”:在上一次我根據應用程式的最後狀態選了每某一個輸入之後、下一次我就會選中另外一個輸入。或者是,在上一次遇到這個界面時我用A屬性,這一次我就會用B屬性。
基於反饋的探索式測試工具是非常有價值的,它可以是測試人員保存、搜尋測試歷史並據此採取實時行動。不幸的是這樣的工具很少。
作者簡介
James A.Whittaker,近日已加入谷歌擔任測試工程主管,他曾在微軟擔任Visual Studio Team SysterTl架構師,負責為微軟測試業務主導產品策略,並領導內部團隊套用探索式軟體測試。
Whittaker博士曾在佛羅里達理工學院擔任計算機科學教授一職。在校期間,他被The Jourhal of Systems and Software授予“首席學者”稱號,並領導一個研究團隊創建了許多領先的測試工具和技術,包括備受稱讚的運行時錯誤注入工具Holodeck。Wtlittaker博士還著有《如何攻破軟體》、《如何破壞軟體安全》和《如何破壞網路軟體》。他發表過50+有關軟體開發和安全的同級評審論文。他持有安全測試和安全防禦技術方面多項發明的專利。
譯者簡介:
方敏,現任微軟業洲工程院UIS項目首席測試部門主管,擁有20年軟體測試管理和開發的豐富經驗,曾參加過微軟多項重大產品和技術的研製,包括UIS,Windows Server/Client/Security,SQL Server,Exchange Server,MSN,COM+Services,Windows Medi和微軟內部IT工具等。方敏曾在清華大學獲得電子工程學士和碩士學位,在美國新墨西哥技術學院獲得計算機碩士學位。
張勝,現任微軟總部高級軟體開發測試主管,擁有10餘年軟體開發測試和團隊管理經驗,參與Visual Studio,SQL Server和Office Live的開發測試與發布,現主管Office Communications Server本地化軟體開發測試工作。張勝擁有復旦大學計算機系碩七和學上學位。
圖書目錄
第1章 軟體質量 1
軟體的魔力 1
軟體失效4
小結 9
練習題 9
第2章 手工測試 11
軟體缺陷的根源 11
缺陷預防和檢測 12
缺陷預防 12
缺陷檢測 13
手工測試 15
手工測試中使用腳本 16
探索式測試 16
小結 21
練習題 21
第3章 局部探索式測試法 23
想不想測試軟體? 23
測試就是有所變,有所不變 25
用戶輸入 26
狀態 36
軟體狀態的基本知識 36
如何測試軟體狀態 37
代碼路徑 39
用戶數據 39
運行環境 41
小結 41
練習題 42
第4章 全局探索式測試法 45
探索軟體 45
旅遊者比喻 47
漫遊測試 49
商業區測試類型 51
歷史區測試類型 58
娛樂區測試類型 60
旅遊區測試類型 63
旅館區測試類型 66
破舊區測試類型 68
漫遊測試法實戰 70
小結 72
練習題 72
第5章 混合探索式測試技術 73
場景和探索 73
使用基於場景的探索式測試 75
通過場景操作引入變化 76
插入步驟 76
刪除步驟 77
替換步驟 77
重複步驟 78
替換數據 78
替換環境 78
通過漫遊測試引入變化 80
賣點測試法 80
地標測試法 81
極限測試法 81
深巷測試法 81
強迫症測試法 81
通宵測試法 81
破壞測試法 82
收藏家測試法 82
超模測試法 82
配角測試法 82
取消測試法 83
混票測試法 83
小結 83
練習題 83
第6章 實踐中的探索式測試 85
漫遊測試 85
Dynamics AX客戶端的漫遊 86
有用的探索漫遊 87
收藏家測試法和收集缺陷 89
漫遊測試提示 92
利用漫遊查找隱錯 94
測試用例管理解決方案的測試 94
取消測試法 95
破壞測試法 96
快遞測試法 97
測一送一測試法 98
在Windows Mobile設備中的
漫遊實踐 98
我的測試方法和哲學 99
漫遊測試法找到的有趣缺陷 101
破壞測試法實例 102
超模測試法實例 103
Windows媒體播放器的漫遊測試
實踐 105
Windows 媒體播放器 105
遍歷測試法 106
超模測試法 108
極限測試法 109
與WMP相關的25個“假如”
類型的問題 109
極限測試法:邊界之旅 110
停車場測試法及其在 Visual Studio
Team System測試版的套用 112
Sprint中的測試 112
停車場測試法 114
漫遊測試中的測試規劃與管理 115
定義地貌 115
旅行計畫 116
讓漫遊測試運轉起來 118
漫遊結果的分析 118
判斷:里程碑和發布 119
在實踐中 119
小結 120
練習題 120
第7章 漫遊與測試中的棘手問題 121
軟體測試的五個棘手問題 121
漫無目的 122
重複性 124
暫時性 126
單調性 127
健忘 128
小結 130
練習題 130
第8章 軟體測試的未來 131
歡迎來到未來世界 131
測試人員的專有提示顯示 132
測試百科 134
測試用例的重用 135
測試原子和測試分子 136
虛擬化的測試資產 137
可視化 138
未來的測試 141
發布之後的測試 142
小結 143
練習題 144
附錄1 經營成功的測試職業生涯 145
你是如何開始做測試工作的? 145
回到未來 146
上山 147
巔峰 149
下山 150
附錄2 JW的專業部落格摘錄 151
教我一些東西吧 151
軟體誡律151
測試錯誤代碼 157
真正的職業測試人員,請上前一步 160
我找到的一些常見的共同特性
(無特別順序) 161
建議總結 162
三擊不中出局,是新的打擊手上場的
時候了 163
正式方法 164
工具 164
流程改進 165
第四種提案 166
軟體測試是藝術、技巧或學科? 166
恢復對軟體行業的尊重 169
事與願違的過去 170
尋找更好的方法 171
分析安全漏洞和質量問題的
流程 171
附錄3 JW微軟部落格修訂版 175
加入部落格圈 175
2008年7月 176
開篇 176
PEST(泡吧與軟體測試) 177
測試人員評估 179
預防與治療(一) 181
用戶與John 182
手工測試人員的讚歌 182
預防與治療(二) 185
歐洲,你好! 186
測試賦 187
預防與測試(三) 189
回到測試 190
2008年8月 192
預防與治療(四) 192
如果微軟擅長測試,為什麼軟體
依然糟糕呢? 194
預防與治療(五) 197
自由式探索式測試 198
基於場景的探索式測試 198
基於策略的探索式測試 198
基於反饋的探索式測試 199
軟體測試的未來(一) 199
軟體測試的未來(二) 201
2008年9月 203
測試認證 203
軟體測試的未來(三) 205
軟體測試的未來(四) 207
軟體測試的未來(五) 208
2008年10月 210
軟體測試的未來(六) 210
軟體測試的未來(七) 212
軟體測試的未來(八) 214
談到谷歌 216
再議手工測試與自動化測試 216
2008年11月 218
不再需要測試人員? 218
讓測試人員繼續測試 219
2008年12月 220
谷歌與微軟的開發∶測試
比例之爭 220
2009年1月 221
Zune的問題 221
解釋探索式測試 223
(未來的)測試用例重用 224
測試用例重用(續) 226
休假歸來 227
鼴鼠和受感染的花生 228