(以下翻譯文本:下劃線部分表示Lydia的注解和心得;斜體表示翻譯有疑問,待確認(rèn)。)
作者:Glenford J.Myers 第3版2012年,第2版是2004 ,第1版是1997年。這是讀原文自己的整理的,現(xiàn)在深深相信,讀外文資料必須讀原文,那種原汁原味的味道,必須自己品嘗。
經(jīng)典值得回味與敬禮!
一、測試心理學(xué)
有時(shí)測試者的態(tài)度比測試過程的本身更重。
定義:測試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程。
Testing is the process of executing a program with the intent of finding errors.
而不是驗(yàn)證程序的錯(cuò)誤。這會(huì)將測試工作引向兩個(gè)不同的方向。
一個(gè)不成功的測試用例是一個(gè)讓測試沒有找到錯(cuò)誤的用例。
測試的經(jīng)濟(jì)學(xué)
黑盒測試 數(shù)據(jù)驅(qū)動(dòng)測試或輸入輸出驅(qū)動(dòng)測試
白盒測試,邏輯驅(qū)動(dòng)測試
“完全路徑測試是一個(gè)完整測試”的說法是錯(cuò)誤的。原因是:
窮盡路徑并不保證程序是符合規(guī)格說明書的。
如果程序本身的錯(cuò)誤就是缺少路徑,則測試不到。
窮盡路徑,有時(shí)候測試不到對(duì)數(shù)據(jù)敏感的錯(cuò)誤。
二、測試的十項(xiàng)原則
1、測試用例必須有預(yù)期值
2、不測試自己的程序(會(huì)測試的開發(fā)人員其實(shí)會(huì)更受歡迎。)
3、一個(gè)開發(fā)團(tuán)隊(duì)不能測自己的程序 (這點(diǎn)現(xiàn)在已經(jīng)有不同的觀點(diǎn)了,現(xiàn)在更認(rèn)為開發(fā)和測試應(yīng)該融合而不是獨(dú)立)
4、審核所有的測試結(jié)果
5、測試用例要涉及所有的有效和無效范疇
6、測試的另一半工作是,測試不希望程序執(zhí)行的部分
7、避免無效測試用例
8、不要在默認(rèn)假定程序沒有錯(cuò)誤的前提下做測試計(jì)劃
9、在程序一個(gè)部分找到錯(cuò)誤,那么可能這個(gè)部分會(huì)存在更多的錯(cuò)誤。(最近思考如何進(jìn)行錯(cuò)誤預(yù)測?運(yùn)用馬爾可夫鏈,可行么?)
10、測試是一項(xiàng)極具智慧創(chuàng)造挑戰(zhàn)的工作。
測試的三個(gè)鐵律:
測試是為找到錯(cuò)誤而執(zhí)行程序的過程。
一個(gè)好的測試用例是最大可能的檢測出從未找到的錯(cuò)誤。
一個(gè)成功的測試用例是能檢測出未找到錯(cuò)誤的用例。