《軟件測(cè)試的藝術(shù)》讀書筆記_第1頁(yè)
《軟件測(cè)試的藝術(shù)》讀書筆記_第2頁(yè)
《軟件測(cè)試的藝術(shù)》讀書筆記_第3頁(yè)
《軟件測(cè)試的藝術(shù)》讀書筆記_第4頁(yè)
《軟件測(cè)試的藝術(shù)》讀書筆記_第5頁(yè)
已閱讀5頁(yè),還剩21頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 | HYPERLINK / 百度首頁(yè) HYPERLINK /v2/?login 登錄 HYPERLINK /cashier/browse/vipcashier?dqStatCode=topnav_joinvip&cashier_code=topnav_joinvip VIP意見(jiàn)反饋 HYPERLINK /apps?fr=1011 下載客戶端4/13/2019軟件測(cè)試的藝術(shù)讀書筆記- 百度文庫(kù) HYPERLINK /?fr=nav 首頁(yè) HYPERLINK javascript:void(0); 分類 HYPERLINK javascript:void(0); 精品內(nèi)容 HYPERLINK /

2、wenkuverify?from=1 申請(qǐng)認(rèn)證 HYPERLINK javascript:void(0); 機(jī)構(gòu)合作 HYPERLINK javascript:void(0); 頻道專區(qū) HYPERLINK /xtopic/wkback 百度智慧課堂 HYPERLINK /user/browse/vip/ 百度教育VIP HYPERLINK /?fr=crumbs 百度文庫(kù) HYPERLINK /?fr=crumbs HYPERLINK /pro/index 專業(yè)資料 HYPERLINK /pro/index HYPERLINK /list/63 IT/計(jì)算機(jī)有關(guān)自己與軟件測(cè)試之間的淵源而言,

3、獲悉這個(gè)領(lǐng)域的時(shí)間不長(zhǎng),接觸的時(shí)間就更可謂短暫,但仔細(xì)想來(lái),還要從大學(xué)期間說(shuō)起比較好。軟件測(cè)試這個(gè)概念第一次出現(xiàn)在我的眼前時(shí),是大四上學(xué)期開的軟件工程這個(gè)科目中所涉及到的一點(diǎn)點(diǎn)。由于某些因素,使我在大學(xué)期間忽略了對(duì)測(cè)試領(lǐng)域相關(guān)知識(shí)的儲(chǔ)備。第二次面對(duì)它時(shí),是考研復(fù)習(xí)準(zhǔn)備階段。那時(shí),我對(duì)測(cè)試這個(gè)領(lǐng)域也僅僅只是知道,就是中文書面表達(dá)的“測(cè)試”這兩個(gè)漢字的含義而已。工作的前兩年里,或許是因?yàn)閺氖碌氖怯嘘P(guān)算法方面性質(zhì)的工作,所以并未對(duì)測(cè)試這個(gè)領(lǐng)域給予過(guò)多的關(guān)注,還好,或多或少還是接觸到了一些。直到最近一年多來(lái),由于一個(gè)大型項(xiàng)目人手不夠的緣故,所以臨時(shí)從自己負(fù)責(zé)的另一個(gè)研究項(xiàng)目中抽過(guò)來(lái)(剛好該項(xiàng)目階段性完

4、成),負(fù)責(zé)有關(guān)此項(xiàng)目的測(cè)試部署與規(guī)劃。而這個(gè)時(shí)候,才能說(shuō)是:真正意義上接觸到了軟件測(cè)試這個(gè)領(lǐng)域。雖然,在此項(xiàng)目中也有自己開發(fā)的一些模塊、算法及一些模塊、算法的優(yōu)化跟重構(gòu)。但,從這個(gè)項(xiàng)目階段性結(jié)束后自己的體會(huì)而言,給我感悟最深的還是有關(guān)軟件測(cè)試這個(gè)領(lǐng)域的。通過(guò)在這個(gè)項(xiàng)目里的工作,讓我真正體會(huì)到了:軟件測(cè)試是一門藝術(shù)。恰恰也是因?yàn)檫@個(gè)緣故,這也才讓我開始有了想重新認(rèn)識(shí)和品位測(cè)試藝術(shù)這一領(lǐng)域的奧妙所在。喜歡在網(wǎng)上書店中遛達(dá),看到不錯(cuò)的書就買下。為什么不去書店?一個(gè)字,懶唄!總覺(jué)得,有那去書店的時(shí)間,完全可以好好睡一美覺(jué),亦或可親手烹制一頓美味可口的美食。哎,反正就是,懶得走出家門去逛街!恰巧,此次瀏

5、覽書籍時(shí),無(wú)意間看到了The Art of Software Testing這本書。在看了大家所給予它極高的評(píng)價(jià)留言后,雖然有些疑惑(畢竟這個(gè)時(shí)代,槍手太多了?。?,但我深信:一本書能夠“活” 25 年,應(yīng)該還是很不簡(jiǎn)單的。于是,就半信半疑的訂購(gòu)了這本書,期望能夠從這本書中獲悉到有用的知識(shí),來(lái)豐富一下自己面對(duì)這個(gè)領(lǐng)域時(shí)的貧乏困境,亦作為知識(shí)儲(chǔ)備。暈,這么??!這是我拿到這本書后的第一反應(yīng)。真的!沒(méi)有預(yù)料到這書會(huì)這么薄!原以為這本經(jīng)典的書,會(huì)諸如C+ Primer、The C+ ProgrammingLanguage、Programming Windows等這些著作那么厚。而當(dāng)翻看了幾章后,覺(jué)得確實(shí)

6、很經(jīng)典,也明白了為什么這本書會(huì)“活”了 25 年。于是,就誕生了我對(duì)這本書的第二感覺(jué):薄而精!看來(lái)是需要自己多花些時(shí)間去慢慢的品味,這樣才方可體味到最純最美的底醞。/view/789618270722192e4536f687.html1/26 4/13/2019軟件測(cè)試的藝術(shù)讀書筆記- 百度文庫(kù)打住自己對(duì)這本書的侃侃而談(怕跑題太遠(yuǎn),拽不回來(lái)),還是關(guān)注一下軟件測(cè)試這個(gè)領(lǐng)話題吧!軟件測(cè)試,怎么說(shuō)呢?就自身經(jīng)歷而言,確實(shí)如書上所說(shuō):測(cè)試依然是軟件開發(fā)中的“黑色藝術(shù)”。大學(xué)期間,計(jì)算機(jī)課程開的不少,沒(méi)聽(tīng)說(shuō)有專門開一門關(guān)于測(cè)試的課程。所以,在學(xué)生階段,測(cè)試就屬于是個(gè)被拋棄掉的名詞!畢業(yè)時(shí),不是做軟件

7、就是去搞網(wǎng)絡(luò),沒(méi)有聽(tīng)到一個(gè)同學(xué)去應(yīng)聘測(cè)試的!工作中,有專門的測(cè)試組(或部門),就更不用自己怎么上心去研究了!如今的氛圍就是:紅的夠紅,黑的夠黑!那叫一個(gè)“?!?!哎,為什么不實(shí)行“兩手都要抓,兩手都要硬”的政策呢(一己之見(jiàn),偏頗在所難免)?或許,我還不明白:“術(shù)業(yè)有專攻”的深刻含義吧!算了,最后還是談?wù)剬?duì)這本書的總觀吧!1. 該書是針對(duì)測(cè)試這一主題進(jìn)行的實(shí)踐探討,而不是理論研究,順便捎帶了些對(duì)新的語(yǔ)言和過(guò)程的探討;2. 前言中提到了一個(gè)最為重要而又是長(zhǎng)期、基本的指南:如何確保所開發(fā)的所有軟件做了其應(yīng)該做的,并且同樣重要的是,未做其不應(yīng)該做的?3. 引言里指出一條著名的經(jīng)驗(yàn):即在一個(gè)典型的編程項(xiàng)目

8、中,軟件測(cè)試或系統(tǒng)測(cè)試大約占用 50%的項(xiàng)目時(shí)間和超過(guò) 50%的總成本。有創(chuàng)意!這是我對(duì)該書第一章的評(píng)價(jià),也是唯一一次在看新書開篇時(shí),能夠把第一章給透透徹徹看完的。為何?還不是實(shí)在不能恭維有些書籍在開篇就進(jìn)行枯燥而繁多的總結(jié)性、介紹性的文字。雖心里也清楚這些文字存在的重要性。但每每,還總是先粗略瞄過(guò),在通讀全書后,才會(huì)再次認(rèn)認(rèn)真真的看那些文字(這時(shí),才真的能感悟到“提綱攜領(lǐng)”的中文含義?。?。創(chuàng)意在于:它只通過(guò)展示一次自評(píng)價(jià)測(cè)試,就能吸引我的眼球,并涌出一種想繼續(xù)向下讀的沖動(dòng);更能引起對(duì)自身一些有關(guān)邏輯思維(考慮欠周全、縝密,存在盲點(diǎn))、聯(lián)想能力(需拓展思維,要富于聯(lián)想與想像,即:思維“活”起來(lái)

9、)、角度問(wèn)題(要巧妙轉(zhuǎn)換角度)等方面,所可能存在的不足進(jìn)行深思。當(dāng)然,能夠引起深思的緣故,還不是在于那個(gè)評(píng)價(jià)測(cè)試嘛!提起來(lái),汗顏!依據(jù)所謂的測(cè)試用例(即:特定的數(shù)據(jù)集合)自測(cè)試后,發(fā)現(xiàn)自己只能考慮到 11 項(xiàng)(總 14 項(xiàng))需要測(cè)試的關(guān)鍵點(diǎn)。文尾,談?wù)勛髡邔?duì)“軟件測(cè)試”這個(gè)概念的定義吧。所謂軟件測(cè)試,就是一個(gè)過(guò)程或一系列過(guò)程,用來(lái)確認(rèn)計(jì)算機(jī)代碼完成了其應(yīng)該完成的功能,不執(zhí)行其不該有的操作。軟件應(yīng)當(dāng)是可預(yù)測(cè)且穩(wěn)定的,是不會(huì)給用戶帶來(lái)意外驚奇的。/view/789618270722192e4536f687.html2/26 4/13/2019軟件測(cè)試的藝術(shù)讀書筆記- 百度文庫(kù)“軟件測(cè)試是一項(xiàng)技術(shù)性

10、工作,但同時(shí)也涉及經(jīng)濟(jì)學(xué)和人類心理學(xué)的一些重要因素”,這是該書第二章中最吸引我的話,耐人深思。而對(duì)于該章的內(nèi)容,我個(gè)人覺(jué)得可概括為以下三個(gè)方面:心理學(xué)角度:駁斥了一些社會(huì)普遍存在的錯(cuò)誤認(rèn)識(shí),并給出了測(cè)試o的正確定義及在含義上進(jìn)行了延伸。(用寫文章上常用的術(shù)語(yǔ)來(lái)說(shuō),是:先破后立。)經(jīng)濟(jì)學(xué)角度:驗(yàn)證軟件測(cè)試不能夠發(fā)現(xiàn)“所有”的錯(cuò)誤。(術(shù)語(yǔ)是:o各個(gè)擊破。)歸納了軟件測(cè)試中的一些基本原則(術(shù)語(yǔ)是:歸納與演繹。),及o三個(gè)重要的測(cè)試原則:1. 軟件測(cè)試是為發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程;2. 一個(gè)好的測(cè)試用例具有較高的發(fā)現(xiàn)某個(gè)尚未發(fā)現(xiàn)的錯(cuò)誤的可能性;3. 一個(gè)成功的測(cè)試用例能夠發(fā)現(xiàn)某個(gè)尚未發(fā)現(xiàn)的錯(cuò)誤。文尾,

11、值得一提的是:在本章能明顯感到作者側(cè)重于從心理學(xué)角度來(lái)分析一些潛在的問(wèn)題。先談?wù)剰男睦韺W(xué)角度所需要分析的問(wèn)題。在章節(jié)的開始,作者就明確的給予了一個(gè)認(rèn)知:要成功地測(cè)試一個(gè)軟件應(yīng)用程序,測(cè)試人員也需要有正確的態(tài)度。在某些情況下,測(cè)試人員的態(tài)度可能比實(shí)際的測(cè)試過(guò)程本身還要重要。并且,分析了現(xiàn)在社會(huì)上普遍存在的兩種“本末倒置”的錯(cuò)誤認(rèn)識(shí)。 針對(duì)程序員:一開始就把“測(cè)試”這個(gè)術(shù)語(yǔ)的定義搞錯(cuò)了。所以可想而知,作者肯定要先破其錯(cuò)誤的根源和弊端,然后再立其正確的認(rèn)知,為了能更深入的理解和在實(shí)踐上的把握,作者又對(duì)正確的認(rèn)知給予了進(jìn)一步延伸的闡述; 針對(duì)項(xiàng)目經(jīng)理:針對(duì)測(cè)試方面而言,對(duì)“成功的”和“不成功的”的理解

12、認(rèn)識(shí)上的錯(cuò)誤。文尾,值得一提的是:作者在這引薦一個(gè)病人去醫(yī)生那里看病的例子,于是將一些繞人的關(guān)系和原理,剎那間弄的清晰易懂了??磥?lái)恰當(dāng)適宜的舉例還是比枯燥的講解概念間的區(qū)別與聯(lián)系要容易的多,也生動(dòng)的多,并且使人也能理解的更加深刻。上次談到了兩個(gè)錯(cuò)誤認(rèn)識(shí),那就繼續(xù)這個(gè)話題吧。/view/789618270722192e4536f687.html3/26 4/13/2019軟件測(cè)試的藝術(shù)讀書筆記- 百度文庫(kù)先分析與項(xiàng)目經(jīng)理有關(guān)的這個(gè)錯(cuò)誤認(rèn)識(shí)吧。因?yàn)檫@個(gè)因素可能會(huì)導(dǎo)致一些在測(cè)試問(wèn)題上的根本性錯(cuò)誤的認(rèn)識(shí)。作者主要是從“成功的”和“不成功的”這兩個(gè)方面來(lái)剖析的:指明了錯(cuò)誤認(rèn)識(shí)的本源:“成功的測(cè)試”是指沒(méi)

13、有發(fā)現(xiàn)錯(cuò)誤的測(cè)試用例;而“不成功的測(cè)試”是指發(fā)現(xiàn)了某個(gè)新錯(cuò)誤的測(cè)試。明確正確認(rèn)識(shí)的本質(zhì):如果在測(cè)試某段程序時(shí)發(fā)現(xiàn)了錯(cuò)誤,而且這些錯(cuò)誤是可以修復(fù)的,就將這次合理的設(shè)計(jì)和由此得到有效執(zhí)行的測(cè)試稱為是“成功的”;并對(duì)如果在本次測(cè)試中可以最終確定再無(wú)其他可查出的錯(cuò)誤,同樣也被稱作是“成功的”;而對(duì)未能適當(dāng)?shù)貙?duì)程序進(jìn)行檢查,且在大多數(shù)情況下,未能找出錯(cuò)誤的測(cè)試被稱為是“不成功的”。引薦病人去找醫(yī)生看病的這一生動(dòng)的例子,加以引申理解并給予了結(jié)論:能發(fā)現(xiàn)新錯(cuò)誤的測(cè)試用例不太可能被認(rèn)為是“不成功的”,相反,能發(fā)現(xiàn)錯(cuò)誤就證明它是值得設(shè)計(jì)的。一個(gè)“不成功的”測(cè)試用例,會(huì)使程序輸出正確的結(jié)果,但不能發(fā)現(xiàn)任何錯(cuò)誤。細(xì)

14、想:如果規(guī)劃的測(cè)試用例是能使程序輸出正確的結(jié)果,但不能發(fā)現(xiàn)任何錯(cuò)誤的話,那是多么的可怕阿。那么測(cè)試就等于沒(méi)有測(cè)試,或者是在徒勞。而潛在的錯(cuò)誤還依然潛在,這會(huì)開發(fā)人員跟用戶來(lái)說(shuō),都是有不小的隱患的。這才真正認(rèn)識(shí)到:發(fā)現(xiàn)測(cè)試真的是一門需要去潛心研究的藝術(shù)。不僅僅是為了我們開發(fā)人員自己,也為了用戶,更為了將來(lái)軟件能夠更好的維護(hù)跟升級(jí)。接著,來(lái)談?wù)劤绦騿T方面會(huì)產(chǎn)生的錯(cuò)誤認(rèn)識(shí)吧!這個(gè)方面可能在具體實(shí)踐中顯的更重要。由于作者在開篇就先把三個(gè)錯(cuò)誤認(rèn)識(shí)給擺到讀者的眼前;然后就立馬表明了其正確的定義,并給予了分析和對(duì)錯(cuò)誤認(rèn)識(shí)的駁斥。洋灑灑的寫了許多,條理上未免會(huì)有些混亂。因此,我就按照自己理解的來(lái)小結(jié)一下吧!首

15、先,測(cè)試的正確定義是:測(cè)試是為發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程。該定義暗示了兩層含義:軟件測(cè)試是一個(gè)破壞性的過(guò)程,甚至是一個(gè)“施虐”的過(guò)程。(就自己的親身經(jīng)歷而言,大部分的開發(fā)人員在測(cè)試期間,對(duì)測(cè)試人員或多或少都會(huì)暫時(shí)產(chǎn)生一點(diǎn)厭煩或恐懼的心態(tài)。主要是會(huì)讓開發(fā)人員的代碼改的面目全非的,且這個(gè)過(guò)程是反反復(fù)復(fù)的。)對(duì)于一個(gè)特定的程序,應(yīng)該如何設(shè)計(jì)測(cè)試用例(測(cè)試數(shù)據(jù))、哪些人應(yīng)該而哪些人又不應(yīng)該執(zhí)行測(cè)試。(這是有關(guān)測(cè)試人員構(gòu)成的問(wèn)題。就自己的親身經(jīng)歷而言,這一點(diǎn)很重要,因?yàn)闇y(cè)試人員的態(tài)度要比測(cè)試的過(guò)程更為重要。)/view/789618270722192e4536f687.html4/26 4/13/2019

16、軟件測(cè)試的藝術(shù)讀書筆記- 百度文庫(kù)然后,明確測(cè)試的正確含義后,探究了一下現(xiàn)今面臨的三個(gè)錯(cuò)誤認(rèn)識(shí)并逐一給予了充分的駁斥?!败浖y(cè)試就是證明軟件不存在錯(cuò)誤的過(guò)程”。1. 若目的僅是為了證明程序中不存在錯(cuò)誤,就會(huì)在潛意識(shí)中傾向于實(shí)現(xiàn)這個(gè)目標(biāo);即,會(huì)傾向于選擇可能較少導(dǎo)致程序失效的測(cè)試數(shù)據(jù);若目標(biāo)在于證明程序中存在錯(cuò)誤,設(shè)計(jì)的測(cè)試數(shù)據(jù)就有可能更多地發(fā)現(xiàn)問(wèn)題。后者肯定比前者會(huì)更多地增加程序的價(jià)值。2.心理上,對(duì)于證明不存在是一個(gè)不可能完成的任務(wù),無(wú)論該工程多么小;但若是一個(gè)尋找錯(cuò)誤的任務(wù),是可以完成的。就心理承受而言,也是更容易接受的?!败浖y(cè)試的目的在于證明軟件能夠正確完成其預(yù)訂的功能?!?.心態(tài)上,

17、不要本著只是為了證明程序能夠正確運(yùn)行而去測(cè)試程序,而應(yīng)該一開始就假設(shè)程序中隱藏著錯(cuò)誤(這種假設(shè)對(duì)于幾乎所有的程序都成立)。這樣測(cè)試程序時(shí),才能夠發(fā)現(xiàn)盡可能多的錯(cuò)誤。2.要清楚這樣一個(gè)道理:每當(dāng)測(cè)試一個(gè)程序,實(shí)質(zhì)上是想為其增加一些價(jià)值。通過(guò)測(cè)試來(lái)增加程序的價(jià)值,及是指測(cè)試提高了程序的可靠性或質(zhì)量。而提高了程序的可靠性,就是指找出并最終修改了程序的錯(cuò)誤。“軟件測(cè)試就是建立一個(gè)軟件做了其應(yīng)該做的信心的過(guò)程。”1.錯(cuò)誤認(rèn)識(shí)的關(guān)鍵在于:程序即使能夠完成預(yù)定的功能,也仍然可能隱藏錯(cuò)誤。即,當(dāng)程序沒(méi)有實(shí)現(xiàn)預(yù)期功能時(shí),錯(cuò)誤是清晰地顯現(xiàn)出來(lái)的。但如果程序做了其不應(yīng)該做的,這同樣也是一個(gè)錯(cuò)誤。2.而后一方面一般都

18、會(huì)人為的想當(dāng)然,認(rèn)為系統(tǒng)不會(huì)做那些事情的。但不通過(guò)實(shí)踐去證明,一切都是不可預(yù)計(jì)到的??傮w而言,軟件測(cè)試更適宜用來(lái)作為一個(gè)試圖發(fā)現(xiàn)程序中錯(cuò)誤(假設(shè)其存在)的破壞性的過(guò)程。一個(gè)成功的測(cè)試用例,通過(guò)誘發(fā)程序發(fā)生錯(cuò)誤,可以在這個(gè)方向上促進(jìn)軟件質(zhì)量的改進(jìn)。當(dāng)然,最終還要通過(guò)軟件測(cè)試來(lái)建立某種程度的信心;軟件做了其應(yīng)該作的,未做其不應(yīng)該作的。通過(guò)對(duì)錯(cuò)誤的不斷研究是實(shí)現(xiàn)這個(gè)目的的最佳途徑。需要明確的一點(diǎn)是,針對(duì)有人可能會(huì)聲稱“本人的程序完美無(wú)缺(不存在錯(cuò)誤)”的這種情況而言,建立起信心的最好辦法就是盡量去反駁他,即努力發(fā)現(xiàn)不完美指出,而不只是確認(rèn)程序在某些輸入情況下能夠正確地工作。/view/7896182

19、70722192e4536f687.html5/26 4/13/2019軟件測(cè)試的藝術(shù)讀書筆記- 百度文庫(kù)文尾,我想到了高爾基先生在海燕里邊的一句話:讓暴風(fēng)雨來(lái)的更猛烈些吧!不妨,讓測(cè)試變的更加瘋狂一些吧!再?gòu)慕?jīng)濟(jì)學(xué)視角來(lái)分析一下吧。需明確:對(duì)一個(gè)復(fù)雜的應(yīng)用程序進(jìn)行完全的測(cè)試,將耗費(fèi)大量的時(shí)間和人力資源,以致于在經(jīng)濟(jì)上是不可行的。即,從經(jīng)濟(jì)學(xué)的角度來(lái)說(shuō),軟件測(cè)試是不能夠發(fā)現(xiàn)“所有”的錯(cuò)誤。換言之,要發(fā)現(xiàn)程序中的所有錯(cuò)誤是不切實(shí)際的,也常常是不可能的。這也體現(xiàn)了測(cè)試人員對(duì)被測(cè)試軟件的期望和對(duì)測(cè)試用例的設(shè)計(jì)方式。由此,有了兩種策略,即:黑盒測(cè)試和白盒測(cè)試(均從三個(gè)方面進(jìn)行闡述:原理、方法、利弊)。

20、黑盒測(cè)試(又稱為數(shù)據(jù)驅(qū)動(dòng)的測(cè)試或輸入/輸出驅(qū)動(dòng)的測(cè)試)原理:將程序視為一個(gè)黑盒子,測(cè)試目標(biāo)與程序的內(nèi)部機(jī)制和結(jié)構(gòu)o完全無(wú)關(guān),而是將重點(diǎn)集中放在發(fā)現(xiàn)程序不按其規(guī)范正確運(yùn)行的環(huán)境條件。方法:測(cè)試數(shù)據(jù)完全來(lái)源于軟件規(guī)范(不需要去了解程序的內(nèi)部結(jié)o構(gòu))。如果想用這種方法來(lái)發(fā)現(xiàn)程序的所有錯(cuò)誤,判定的標(biāo)準(zhǔn)就是“窮舉輸入測(cè)試”,將所有可能的輸入條件都作為測(cè)試用例。利弊:窮舉輸入測(cè)試是無(wú)法實(shí)現(xiàn)的。原因有二:一是無(wú)法測(cè)試一個(gè)o程序以確保它是無(wú)錯(cuò)的;二是軟件測(cè)試中需要考慮的一個(gè)基本問(wèn)題是軟件測(cè)試的經(jīng)濟(jì)學(xué),即,測(cè)試投入的目標(biāo)在于通過(guò)有限的測(cè)試用例,最大限度地提高發(fā)現(xiàn)的問(wèn)題的數(shù)量以取得最好的測(cè)試效果。白盒測(cè)試(又稱為

21、邏輯驅(qū)動(dòng)的測(cè)試)原理:允許我們檢查程序的內(nèi)部結(jié)構(gòu)的。這種測(cè)試策略對(duì)程序的邏o輯結(jié)構(gòu)進(jìn)行檢查,從中獲取測(cè)試數(shù)據(jù)(但常忽略了程序的規(guī)范)。方法:窮舉路徑測(cè)試。即,如果使用測(cè)試用例執(zhí)行了程序中所有可o能的控制流路徑,那么程序有可能得到了完全的測(cè)試。利弊:程序中不同邏輯路徑的數(shù)量可能會(huì)達(dá)到天文數(shù)字,那么窮舉o路徑測(cè)試就同窮舉輸入測(cè)試一樣,非但不可能也是不切合實(shí)際的。文尾,值得提一下一個(gè)錯(cuò)誤認(rèn)知:“窮舉路徑測(cè)試即完全的測(cè)試”。因?yàn)?,即使可以測(cè)試到程序中的所有路徑,但是程序可能仍然存在著錯(cuò)誤。其原因有三:即使是窮舉路徑測(cè)試也決不能保證程序符合其設(shè)計(jì)規(guī)范;o程序可能會(huì)因?yàn)槿鄙倌承┞窂蕉嬖趩?wèn)題,可窮舉路徑測(cè)

22、試不能發(fā)o現(xiàn)到底是缺少了那些必需路徑;窮舉路徑測(cè)試可能不會(huì)暴露數(shù)據(jù)敏感錯(cuò)誤。o/view/789618270722192e4536f687.html6/26 4/13/2019軟件測(cè)試的藝術(shù)讀書筆記- 百度文庫(kù)該章最后,作者給予了十大測(cè)試原則:測(cè)試用例中一個(gè)必需部分是對(duì)預(yù)期輸出或結(jié)果的定義。o一個(gè)測(cè)試用例必需包括兩個(gè)部分:對(duì)程序的輸入數(shù)據(jù)的描述和對(duì)程序在上述輸入數(shù)據(jù)下的正確輸出結(jié)果的精確描述。程序員應(yīng)當(dāng)避免測(cè)試自己編寫的程序。原因有三:o1. 當(dāng)程序員“建設(shè)性”地設(shè)計(jì)和編寫完程序之后,很難讓他突然改變視角以一種“破壞性”的眼光來(lái)審查程序,即,他們無(wú)法改變思維方式來(lái)盡力暴露自己程序中的錯(cuò)誤;2.

23、 程序員可能會(huì)下意識(shí)地避免找出錯(cuò)誤來(lái),擔(dān)心受到同事、上司、客戶或正在開發(fā)的程序或系統(tǒng)的主管的懲罰;3. 由于程序員錯(cuò)誤地理解了疑難定義或規(guī)范,導(dǎo)致程序中存在錯(cuò)誤。如果是這種情況,程序員可能會(huì)帶著同樣的誤解來(lái)測(cè)試自己的程序。需要指出的是:“調(diào)試”還是由程序的編寫人員來(lái)完成會(huì)更加有效的。編寫軟件的組織不應(yīng)當(dāng)測(cè)試自己編寫的軟件。o應(yīng)該是由客觀、獨(dú)立的第三方來(lái)進(jìn)行測(cè)試。理由雷同于上條規(guī)則中所涉及到的。應(yīng)當(dāng)徹底檢查每個(gè)測(cè)試的執(zhí)行結(jié)果。o在項(xiàng)目測(cè)試的時(shí)候,總是會(huì)發(fā)現(xiàn)在后續(xù)測(cè)試中發(fā)現(xiàn)的錯(cuò)誤,往往是前面的測(cè)試遺漏掉的。測(cè)試用例的編寫不僅應(yīng)當(dāng)根據(jù)有效和預(yù)料到的輸入情況,而且也應(yīng)當(dāng)根據(jù)無(wú)效和未預(yù)料到的輸入情況。o

24、其實(shí)在軟件產(chǎn)品中暴露出來(lái)的許多問(wèn)題是當(dāng)程序以某些新的或未預(yù)料到的方式運(yùn)行時(shí)發(fā)現(xiàn)的。所以這條原則的重要性可能在測(cè)試中的地位還應(yīng)該是更要值得引起注意的才是。/view/789618270722192e4536f687.html7/26 4/13/2019軟件測(cè)試的藝術(shù)讀書筆記- 百度文庫(kù)檢查程序是否“未做其應(yīng)該做的”僅是測(cè)試的一半,測(cè)試的另一半是檢查程序是否“做了其不應(yīng)該做的”。o應(yīng)避免測(cè)試用例用后放棄,除非軟件本身就是一個(gè)一次性的軟件。o在交互式系統(tǒng)上來(lái)測(cè)試的話,這條原則可能就會(huì)顯現(xiàn)的更加重要了。這條原則體現(xiàn)的會(huì)更加省時(shí)省力。因?yàn)槿绻麑?duì)程序的更改導(dǎo)致了程序某個(gè)先前可以執(zhí)行的部分發(fā)生了故障,這個(gè)故

25、障往往是不會(huì)被發(fā)現(xiàn)的。保留測(cè)試用例,當(dāng)程序其他部分發(fā)生更動(dòng)后重新執(zhí)行,這就是我們所謂的“回歸測(cè)試”了。計(jì)劃測(cè)試工作時(shí)不應(yīng)默認(rèn)假定不會(huì)發(fā)現(xiàn)錯(cuò)誤。o程序某部分存在更多錯(cuò)誤的可能性,與該部分已發(fā)現(xiàn)錯(cuò)誤的數(shù)量成正比。o作者所說(shuō)的而言,錯(cuò)誤總是傾向于聚集存在,而在一個(gè)具體的程序中,某些部分要比其他部分更容易存在錯(cuò)誤。那么為了使測(cè)試獲得更大的成效,最好對(duì)這些容易存在錯(cuò)誤的部分進(jìn)行額外的測(cè)試。測(cè)試是一項(xiàng)極富創(chuàng)造性、極具智力挑戰(zhàn)性的工作o本書第三章作者著重講述了測(cè)試領(lǐng)域里的一個(gè)與機(jī)器測(cè)試相當(dāng)重要,且在機(jī)器測(cè)試之前進(jìn)行,也與之相輔相成的技術(shù),即:人工測(cè)試技術(shù)。該技術(shù)共涉及四種方法:代碼檢查、代碼走查、桌面檢查、

26、同行評(píng)審;其更著重詳細(xì)講述的是第一個(gè)方法。同時(shí),作者在開章也提到一種錯(cuò)誤認(rèn)識(shí):人工測(cè)試技術(shù)由于包含了人為因素在內(nèi),導(dǎo)致很多方法的正規(guī)性要差于由計(jì)算機(jī)執(zhí)行的數(shù)學(xué)證明,所以人們可能會(huì)懷疑某些如此簡(jiǎn)單和不正規(guī)的東西是否有用。反之亦然。就個(gè)人經(jīng)歷而言,確實(shí)這種認(rèn)知普遍存在,并且對(duì)人工測(cè)試技術(shù)沒(méi)有給予足夠的重視。/view/789618270722192e4536f687.html8/26 4/13/2019軟件測(cè)試的藝術(shù)讀書筆記- 百度文庫(kù)文尾,有必要記敘一下,人工測(cè)試技術(shù)的重要性。它會(huì)在兩個(gè)方面顯著地提高軟件測(cè)試的功效和可靠性。錯(cuò)誤發(fā)現(xiàn)得越早,改正錯(cuò)誤的成本越低,正確改正錯(cuò)誤的可能性也o越大;程序員

27、在開始基于計(jì)算機(jī)的測(cè)試時(shí)似乎要經(jīng)歷一個(gè)心理上的改變。o壓力會(huì)急劇增長(zhǎng),且要“盡可能快地修正這個(gè)缺陷”。由于這些,所以,程序員在改正某個(gè)基于計(jì)算機(jī)測(cè)試發(fā)現(xiàn)的錯(cuò)誤時(shí)所犯的失誤,可能要比改正早期發(fā)現(xiàn)的問(wèn)題時(shí)所犯的失誤會(huì)更多一些的。上篇,提到人工測(cè)試技術(shù)的四種方法。其中,代碼檢查和代碼走查稍略勝一籌。于是,作者在本章著重講了這兩個(gè)方法。其實(shí),這兩種方法很類似,那就先看看這兩種方法的優(yōu)之共通點(diǎn)吧!具體可分為一下幾個(gè)點(diǎn):方法:組成一個(gè)小組來(lái)閱讀或直觀檢查特定的程序;并在“頭腦風(fēng)o暴會(huì)”上要形成統(tǒng)一的目標(biāo):找出錯(cuò)誤,但不必找出改正錯(cuò)誤的方法。換句話說(shuō),是測(cè)試,而不是調(diào)試。該組開發(fā)人員(三至四人為最佳)是對(duì)代

28、碼進(jìn)行審核,其中參加者當(dāng)中只有一人是程序編寫者;也可以說(shuō)它是對(duì)過(guò)去桌面檢查過(guò)程的改進(jìn)。優(yōu)點(diǎn):一旦發(fā)現(xiàn)錯(cuò)誤,就可以在代碼中對(duì)其進(jìn)行精確定位,這就降o低了調(diào)試的成本;還通??梢园l(fā)現(xiàn)成批的錯(cuò)誤,這樣就可以一同得到修正,這也優(yōu)于機(jī)器測(cè)試,因?yàn)楹笳咧荒鼙┞冻鲥e(cuò)誤的某個(gè)表癥。效果:通常是能夠有效地查找出 30%-70%的邏輯設(shè)計(jì)和編碼錯(cuò)誤,o但不能有效地查找出高層次的設(shè)計(jì)錯(cuò)誤。地位:是與計(jì)算機(jī)的測(cè)試互補(bǔ)的,缺少其中任何一種錯(cuò)誤檢查的效o率都會(huì)降低。值得提出的是:該處的錯(cuò)誤發(fā)現(xiàn)率,并不是說(shuō)所有錯(cuò)誤中多達(dá) 70%可能會(huì)被找出來(lái),而是講這些方法在測(cè)試過(guò)程結(jié)束時(shí),可以有效地查找出多達(dá) 70%的已知錯(cuò)誤。應(yīng)始終記住

29、的是:程序中的錯(cuò)誤總數(shù)始終是未知的。否則就會(huì)浪費(fèi)大量的精力跟人力,也會(huì)在經(jīng)濟(jì)效益上或多或少有一些損失的。不過(guò),就經(jīng)驗(yàn)而言,修改一個(gè)現(xiàn)存的程序比編寫一個(gè)新程序更容易產(chǎn)生錯(cuò)誤,這依據(jù)于以每寫一行代碼的錯(cuò)誤數(shù)量來(lái)計(jì)的。/view/789618270722192e4536f687.html9/26 4/13/2019軟件測(cè)試的藝術(shù)讀書筆記- 百度文庫(kù)代碼檢查,怎么說(shuō)呢?經(jīng)驗(yàn)而言,我挺喜歡用的。因?yàn)?,跟?xiàng)目經(jīng)理(或設(shè)計(jì)人員)讀設(shè)計(jì),能夠非常容易發(fā)現(xiàn)設(shè)計(jì)上的邏輯錯(cuò)誤或遺漏的問(wèn)題等等。因此,有必要好好敘述下。 定義上:所謂的代碼檢查,其實(shí)就是以組為單位閱讀代碼,是一系列規(guī)程和錯(cuò)誤檢查技術(shù)的集合。該過(guò)程通常將

30、注意力集中在發(fā)現(xiàn)錯(cuò)誤上,而不是糾正錯(cuò)誤。 成員組成:一個(gè)代碼檢查小組通常是由四人組成,其中一人發(fā)揮著協(xié)調(diào)作用、一人是該程序的編碼人員、一人是其他成員通常是程序的設(shè)計(jì)人員、一人是測(cè)試專家。這里,值得一提的是:那個(gè)發(fā)揮著協(xié)調(diào)作用的成員。該協(xié)調(diào)人應(yīng)該是個(gè)稱職的程序員,但不是該程序的編碼人員,不需要對(duì)程序的細(xì)節(jié)了解得很清楚。協(xié)調(diào)人的職責(zé)包括幾點(diǎn):為代碼檢查分發(fā)材料、安排進(jìn)程;在代碼檢查中起主導(dǎo)作用;記錄發(fā)現(xiàn)的所有錯(cuò)誤;確保所有錯(cuò)誤隨后得到改正。有關(guān)代碼檢查的具體流程,個(gè)人歸納為一個(gè)流程表,就不在這里詳述了。不過(guò),這里需要值得注意的是代碼檢查這個(gè)過(guò)程。1. 在代碼檢查的時(shí)間和地點(diǎn)上的選擇上,應(yīng)避免所有的

31、外部干擾;2. 代碼檢查會(huì)議的理想時(shí)間應(yīng)在 90-120 分鐘之內(nèi);3. 大多數(shù)的代碼檢查都是按每小時(shí)大約閱讀 150 行代碼的速度進(jìn)行;4. 對(duì)大型軟件的檢查應(yīng)安排多個(gè)代碼檢查會(huì)議同時(shí)進(jìn)行,每個(gè)代碼檢查會(huì)議處理一個(gè)或幾個(gè)模塊或子程序。除此之外,還需要從心理學(xué)角度給予提前的心理籌備。因?yàn)椋箼z查過(guò)程有成效,還必須樹立正確的態(tài)度。其心理因素必須要提前分析正確,否則事倍功半。假設(shè)程序員將代碼檢查視為對(duì)其個(gè)人的攻擊、采取了防范的態(tài)度,那么檢查過(guò)程就不會(huì)有效果。而正確的做法應(yīng)該是: 一方面:提出的建議應(yīng)針對(duì)程序本身,而不應(yīng)針對(duì)程序員,即:軟件中存在的錯(cuò)誤不應(yīng)被視為編寫程序的人員本身的弱點(diǎn),且這些錯(cuò)誤

32、應(yīng)被看做是伴隨著軟件開發(fā)的艱難性所固有的; 另一方面:程序員必須懷著非自我本位的態(tài)度來(lái)對(duì)待錯(cuò)誤檢查,對(duì)整個(gè)過(guò)程采取積極和建設(shè)性的態(tài)度:代碼檢查的目標(biāo)是發(fā)現(xiàn)程序中的錯(cuò)誤,從而改進(jìn)程序的質(zhì)量。正因?yàn)檫@個(gè)原因,大多數(shù)人建議應(yīng)對(duì)代碼檢查的結(jié)果進(jìn)行保密,僅限于參與者范圍內(nèi)部。尤其是如果管理人員想利用代碼檢查的結(jié)果,那么就與檢查過(guò)程的目的背道而馳了。文尾,順便提一下代碼檢查附帶的幾個(gè)有益的作用吧。 程序員通常會(huì)得到編程風(fēng)格、算法選擇及編譯技術(shù)等方面的反饋信息;/view/789618270722192e4536f687.html10/26 4/13/2019軟件測(cè)試的藝術(shù)讀書筆記- 百度文庫(kù) 其他參與者也

33、可以通過(guò)接觸其他程序員的錯(cuò)誤和編程風(fēng)格而同樣受益匪淺; 代碼檢查還是早期發(fā)現(xiàn)程序中最易出錯(cuò)部分的方法之一,有助于在基于計(jì)算機(jī)的測(cè)試過(guò)程中將更多的注意力集中在這些地方。在代碼檢查過(guò)程中,一個(gè)重要的部分是需要對(duì)照一份編程錯(cuò)誤列表,來(lái)分析程序是否存在常見(jiàn)的錯(cuò)誤。于是,作者接下來(lái)就給出了一份錯(cuò)誤列表,該份錯(cuò)誤列表在很大程度上是獨(dú)立于編程語(yǔ)言的,即:大多數(shù)的錯(cuò)誤都可能出現(xiàn)在用任意語(yǔ)言編寫的程序中的。并建議讀者可以把自己使用的編程語(yǔ)言中特有的錯(cuò)誤,以及代碼檢查發(fā)現(xiàn)的錯(cuò)誤補(bǔ)充到這份錯(cuò)誤列表中去。作者給出的該列表比較詳細(xì),因此,不在這里詳述,只是給出該錯(cuò)誤列表的總的構(gòu)架。該列表共分為八個(gè)部分:數(shù)據(jù)引用錯(cuò)誤、數(shù)

34、據(jù)聲明錯(cuò)誤、運(yùn)算錯(cuò)誤、比較錯(cuò)誤、控制流程錯(cuò)誤、輸入/輸出錯(cuò)誤、接口錯(cuò)誤、其他檢查。說(shuō)完代碼檢查,現(xiàn)在來(lái)談?wù)劥a走查。從定義上來(lái)講,代碼走查是以小組為單元進(jìn)行代碼閱讀的,同樣也是一系列規(guī)程和錯(cuò)誤檢查技術(shù)的集合。且代碼走查也采用了持續(xù)一至兩個(gè)小時(shí)的不間斷會(huì)議的形式。代碼走查的小組成員的構(gòu)成而言,一般是由三至五人組成,其中一人扮演“協(xié)調(diào)人”;一人擔(dān)任秘書角色,負(fù)責(zé)記錄所有查處的錯(cuò)誤;還有一人擔(dān)任測(cè)試人員。不過(guò)最佳的組合應(yīng)該是:一位極富經(jīng)驗(yàn)的程序員;o一位程序設(shè)計(jì)語(yǔ)言專家;o一位程序員新手(可以給出新穎、不帶偏見(jiàn)的觀點(diǎn));o最終將維護(hù)程序的人員;o一位來(lái)自其他不同項(xiàng)目的人員;o一位來(lái)自該軟件編程小組的

35、程序員。o至于測(cè)試的流程跟代碼檢查很類似,類似之處就不多談,只說(shuō)一下不同之處吧。稍有不同的是代碼走查的任務(wù):就是參與者“使用了計(jì)算機(jī)”。被指定為測(cè)試人員的那個(gè)人會(huì)帶著一些書面的測(cè)試用例(程序或模塊具有代表性的輸入集及預(yù)期的輸出集)來(lái)參加會(huì)議。且在會(huì)議期間,每個(gè)測(cè)試用例都在人們頭腦中進(jìn)行推演,即:把測(cè)試數(shù)據(jù)沿程序的邏輯結(jié)構(gòu)走一遍,并把程序的狀態(tài)(如變量的值)記錄在紙張或白板上以供監(jiān)視。這里,需指出:這些書面的測(cè)試用例必須結(jié)構(gòu)簡(jiǎn)單、數(shù)量較少,因?yàn)槿四X執(zhí)行程序的速度比計(jì)算機(jī)執(zhí)行程序的速度慢上若干量級(jí)。之所以提供這些測(cè)試用例,目的不是在于其本身對(duì)測(cè)試了關(guān)鍵的作用,而是其提供了啟動(dòng)代碼走查和質(zhì)/view

36、/789618270722192e4536f687.html11/26 4/13/2019軟件測(cè)試的藝術(shù)讀書筆記- 百度文庫(kù)疑程序員邏輯思路及其設(shè)想的手段。因?yàn)?,在大多?shù)的代碼走查中,很多問(wèn)題是在向程序員提問(wèn)的過(guò)程中發(fā)現(xiàn)的,而不是由測(cè)試用例本身直接發(fā)現(xiàn)的。文尾,至于代碼走查所需要從心理學(xué)角度給予提前的心理籌備、后續(xù)過(guò)程和附帶的幾個(gè)有益的作用,都與代碼檢查的類似,所以在這里就不提了。在本章的最后,作者附帶提了一下桌面檢查和同行評(píng)分這兩個(gè)方法。首先,來(lái)談下桌面檢查。桌面檢查可視為由單人進(jìn)行的代碼檢查或代碼走查;并由一個(gè)人閱讀程序,對(duì)照錯(cuò)誤列表檢查程序,對(duì)程序推演測(cè)試數(shù)據(jù)。由此,我覺(jué)得桌面檢查可以說(shuō)

37、是上述兩種方法的一個(gè)內(nèi)核或者說(shuō)是雛形吧。所以也可知其效率是相當(dāng)?shù)偷?。然后,看一下同行評(píng)分。需指明:其該方法與測(cè)試并無(wú)關(guān)系,因?yàn)槠淠繕?biāo)并不是為了發(fā)現(xiàn)錯(cuò)誤的,只是它與代碼閱讀的思想有一定的關(guān)聯(lián)而已。 定義上:同行評(píng)分是一種依據(jù)程序整體質(zhì)量、可維護(hù)性、可擴(kuò)展性、易用性和清晰性對(duì)匿名程序進(jìn)行評(píng)價(jià)的技術(shù)。不難看出,該技術(shù)的目的是為程序員提供自我評(píng)價(jià)的手段。 其小組成員的構(gòu)成為:一位管理員,負(fù)責(zé)擔(dān)任該評(píng)分過(guò)程的管理工作;6-20名參與者,并要保持匿名性,且要具備相似的背景。 評(píng)分的資料:由參與者自己挑出兩個(gè)由自己編寫的程序以供評(píng)審,其中一個(gè)應(yīng)是自認(rèn)為能代表其自身能力的最好作品;另一個(gè)是自認(rèn)為質(zhì)量較差的作品

38、。文尾,至于具體流程,就不再詳敘了。本書第四章主要講述了白盒測(cè)試和黑盒測(cè)試的原理、具體方法,及一些測(cè)試策略的思考。就經(jīng)驗(yàn)而言,個(gè)人覺(jué)得,測(cè)試軟件中最重要的因素還是要:設(shè)計(jì)和生成有效的測(cè)試用例。所以,作者在開章之處特別提及測(cè)試用例,我認(rèn)為是很必要的。緣由:因?yàn)闇y(cè)試不可能是完全的,所以最顯然的測(cè)試策略就是努力使測(cè)試盡可能完全。那么,由于考慮到時(shí)間和成本的約束,則一個(gè)最關(guān)鍵的問(wèn)題就是:在所有可能的測(cè)試用例中,哪個(gè)子集最有可能發(fā)現(xiàn)最多的錯(cuò)誤。很顯然,在所有的方法中效率最低的就是隨機(jī)輸入的測(cè)試,那么就需要提出一套思考過(guò)程,讓其有助于更加睿智地選取測(cè)試數(shù)據(jù)。/view/789618270722192e45

39、36f687.html12/26 4/13/2019軟件測(cè)試的藝術(shù)讀書筆記- 百度文庫(kù)于是,便有了一種比較合理的測(cè)試策略:先使用黑盒測(cè)試方法來(lái)設(shè)計(jì)測(cè)試用例,然后視情況需要使用白盒測(cè)試方法來(lái)設(shè)計(jì)補(bǔ)充測(cè)試用例。先談及、概括一下白盒測(cè)試。白盒測(cè)試,所關(guān)注的是:測(cè)試用例執(zhí)行的程度或覆蓋程序邏輯結(jié)構(gòu)(源代碼)的程度。因此,也可以認(rèn)為是邏輯覆蓋測(cè)試。具體方法有五個(gè),按其邏輯覆蓋的從弱到強(qiáng)依次列出:語(yǔ)句覆蓋(面): 將程序中的每條語(yǔ)句至少執(zhí)行一次,但實(shí)現(xiàn)不o太可能,該準(zhǔn)則有很大的不足,以至于它通常沒(méi)有什么用處判定/分支覆蓋(線): 必須編寫足夠的測(cè)試用例,使得每一個(gè)判o斷都至少有一個(gè)為真和為假的輸出結(jié)果。即

40、:每條分支路徑都必須至少遍歷一次。換句話說(shuō):所有判斷的每個(gè)可能結(jié)果都至少執(zhí)行一次,以及將程序或子程序的每個(gè)入口點(diǎn)都至少執(zhí)行一次。需要指出的是:該準(zhǔn)則滿足語(yǔ)言覆蓋準(zhǔn)則。條件覆蓋(點(diǎn)): 編寫足夠的測(cè)試用例以確保將一個(gè)判斷中的o每個(gè)條件的所有可能的結(jié)果至少執(zhí)行一次。判定/條件覆蓋(點(diǎn)線結(jié)合): 設(shè)計(jì)出足夠的測(cè)試用例,將一個(gè)判o斷中的每個(gè)條件的所有可能結(jié)果至少執(zhí)行一次,將每個(gè)判斷的所有可能結(jié)果至少執(zhí)行一次,將每個(gè)入口點(diǎn)都至少調(diào)用一次。需明確一點(diǎn),該準(zhǔn)則有一個(gè)極大的缺點(diǎn):盡管看上去所有條件的所有結(jié)果似乎都執(zhí)行到了,但由于某些特定的條件會(huì)屏蔽掉其他的條件,通常并不能全部都執(zhí)行到。例如:該準(zhǔn)則并不一定會(huì)發(fā)

41、現(xiàn)邏輯表達(dá)式中的錯(cuò)誤(與、或)。多重條件覆蓋(點(diǎn)線組合):o編寫足夠多的測(cè)試用例,將每個(gè)判定中的所有可能的條件結(jié)果的組合,以及所有的入口點(diǎn)都至少執(zhí)行一次。需要說(shuō)明的是,滿足多重條件覆蓋準(zhǔn)則的測(cè)試用例集,同樣滿足判定覆蓋準(zhǔn)則、條件覆蓋準(zhǔn)則以及判定/條件覆蓋準(zhǔn)則。需明確的是:在存在循環(huán)的情況下,多重條件覆蓋準(zhǔn)則所需要的測(cè)試用例的數(shù)量通常會(huì)遠(yuǎn)遠(yuǎn)小于其路徑的數(shù)量。文尾,作者小結(jié)了一下。包含每個(gè)判斷只存在一種條件的程序,最簡(jiǎn)單的測(cè)試準(zhǔn)則就是:設(shè)o計(jì)出足夠數(shù)量的測(cè)試用例,將每個(gè)判斷的所有結(jié)果都至少執(zhí)行一/view/789618270722192e4536f687.html13/26 4/13/2019軟件

42、測(cè)試的藝術(shù)讀書筆記- 百度文庫(kù)次;將所有的程序入口都至少調(diào)用一次,以確保全部的語(yǔ)句都至少執(zhí)行一次。包含多重條件判斷的程序,最簡(jiǎn)單的測(cè)試準(zhǔn)則是:設(shè)計(jì)出足夠數(shù)量的測(cè)試用例,將每個(gè)判斷的所有可能的條件結(jié)果的組合,以及所有o的入口點(diǎn)都至少執(zhí)行一次。再概述一下黑盒測(cè)試。那么首先就是等價(jià)類劃分法。等價(jià)類劃分,是一個(gè)最優(yōu)子集的挑選過(guò)程。該子集必須具備兩個(gè)特性:嚴(yán)格控制測(cè)試用例的增加,減少為達(dá)到“合理測(cè)試”的某些既定目o標(biāo)而必須設(shè)計(jì)的其他測(cè)試用例的數(shù)量;即:每個(gè)測(cè)試用例都必須體現(xiàn)盡可能多的不同的輸入情況,以使最大限度地減少測(cè)試所需的全部用例的數(shù)量;(經(jīng)驗(yàn)而言,是用于生成有效測(cè)試用例的約束。)覆蓋了大部分其他可

43、能的測(cè)試用例:使用或不使用這個(gè)特定的輸入o集合,哪些錯(cuò)誤會(huì)被發(fā)現(xiàn),哪些會(huì)被遺漏掉。即:應(yīng)該盡量將程序輸入范圍進(jìn)行劃分,將其劃分為有限數(shù)量的等價(jià)類,這樣就可以合理地假設(shè)測(cè)試每個(gè)等價(jià)類的代表性數(shù)據(jù)等于測(cè)試該類的其他任何數(shù)據(jù)。(經(jīng)驗(yàn)而言,是用于生成無(wú)效測(cè)試用例的約束的。)具體步驟為:1. 確定等價(jià)類:確定等價(jià)類是選取每一個(gè)輸入條件,將其劃分為兩個(gè)或更多的組。這里可以借助表格來(lái)進(jìn)行劃分,并確定了兩類等價(jià)類:有效等價(jià)類、無(wú)效等價(jià)類。2. 生成測(cè)試用例。(具體三步就不再敘述了)文尾,順便提一點(diǎn)個(gè)人經(jīng)驗(yàn):依據(jù)規(guī)格說(shuō)明確定輸入條件時(shí),一定要思維緊密和周全,否則會(huì)出現(xiàn)很大的遺漏性;且用單個(gè)測(cè)試用例覆蓋無(wú)效等價(jià)類

44、,是因?yàn)槟承┨囟ǖ妮斎脲e(cuò)誤可能會(huì)評(píng)比或取代其他輸入錯(cuò)誤檢查。所以應(yīng):少而全、多而專。邊界值分析法,有較好的測(cè)試回報(bào)率。該法較簡(jiǎn)單,僅是用于考察正處于等價(jià)劃分邊界或在邊界附近的狀態(tài)。因此,只需明確邊界條件這一定義即可。邊界條件,是指輸入和輸出等價(jià)類中那些恰好處于邊界、或超過(guò)邊界、或在邊界以下的狀態(tài)。/view/789618270722192e4536f687.html14/26 4/13/2019軟件測(cè)試的藝術(shù)讀書筆記- 百度文庫(kù)錯(cuò)誤猜測(cè)法,沒(méi)有用到任何特殊的方法,只是利用直覺(jué)和經(jīng)驗(yàn)猜測(cè)出錯(cuò)的可能類型,然后編寫測(cè)試用例來(lái)暴露這些錯(cuò)誤?;舅枷胧橇信e出可能犯的錯(cuò)誤或錯(cuò)誤易發(fā)情況的清單,然后依據(jù)清單

45、來(lái)編寫測(cè)試用例;并且在閱讀規(guī)格說(shuō)明時(shí)聯(lián)系程序員可能做的假設(shè)來(lái)確定測(cè)試用例,也就是說(shuō)規(guī)格說(shuō)明中的一些內(nèi)容會(huì)被忽略,要么是由于偶然因素,要么是程序員認(rèn)為其顯而易見(jiàn)。文尾,需提及注意的是:邊界值分析法,考慮到了結(jié)果空間的邊界(因?yàn)檩斎敕秶倪吔绮⒉豢偸悄艽磔敵龇秶倪吔缜闆r。)因果圖分析法,依作者而言,是為了解決邊界值分析和等價(jià)劃分的一個(gè)弱點(diǎn):未對(duì)輸入條件的組合進(jìn)行分析。而因果圖恰恰有助于用一個(gè)系統(tǒng)的方法選擇出此類高效的測(cè)試用例集,并且可以指出規(guī)格說(shuō)明的不完整性和不明確之處。因果圖,是一種形式語(yǔ)言(有嚴(yán)格語(yǔ)法限制的語(yǔ)言,計(jì)算機(jī)語(yǔ)言都是形式語(yǔ)言),是將自然語(yǔ)言描述的規(guī)格說(shuō)明轉(zhuǎn)換為因果圖。實(shí)質(zhì)上,是一

46、種數(shù)字邏輯電路(一個(gè)組合的邏輯網(wǎng)絡(luò)),但沒(méi)有使用標(biāo)準(zhǔn)的電子學(xué)符號(hào),而是使用了稍微簡(jiǎn)單點(diǎn)的符號(hào)。具體有六步(涉及到的每步具體過(guò)程及圖樣,由于篇幅,都在此略去):1. 將規(guī)格說(shuō)明分解為可執(zhí)行的片段;2. 確定規(guī)格說(shuō)明中的因果關(guān)系;3. 分析規(guī)格說(shuō)明的語(yǔ)義內(nèi)容,并將其轉(zhuǎn)換為連接因果關(guān)系的布爾圖,即:因果圖;4. 給圖加上注解符號(hào),說(shuō)明由于語(yǔ)法或環(huán)境的限制而不能聯(lián)系起來(lái)的“因”和“果”;5. 過(guò)仔細(xì)地跟蹤圖中的狀態(tài)變化情況,將因果圖轉(zhuǎn)換成一個(gè)有限項(xiàng)的判定表;6. 將判定表中的列轉(zhuǎn)換成測(cè)試用例。本章最后,作者給出了一個(gè)合理的測(cè)試策略:“測(cè)試用例涉及方法可以組合為一個(gè)整體的策略,即:每一種方法都可以提供一

47、組具體的有用的測(cè)試用例,但是都不能單獨(dú)提供一個(gè)完整的測(cè)試用例集,所以一組合理的策略為:1. 如果規(guī)格說(shuō)明中包含輸入條件組合的情況,應(yīng)首先使用因果圖分析方法;2. 在任何情況下都應(yīng)使用邊界值分析方法。應(yīng)注意,是對(duì)輸入和輸出邊界進(jìn)行分析;3. 為輸入和輸出確定有效和無(wú)效等價(jià)類,在必要情況下對(duì)確認(rèn)的測(cè)試用例進(jìn)行補(bǔ)充;4. 使用錯(cuò)誤猜測(cè)技術(shù)增加更多的測(cè)試用例;/view/789618270722192e4536f687.html15/26 4/13/2019軟件測(cè)試的藝術(shù)讀書筆記- 百度文庫(kù)5. 針對(duì)上述測(cè)試用例集檢查程序的邏輯結(jié)構(gòu),即白盒測(cè)試的五種方法??蛇m當(dāng)?shù)脑黾幼銐驍?shù)量的測(cè)試用例,以便覆蓋準(zhǔn)則得

48、到滿足?!眴卧獪y(cè)試,是本書第五章講述的重點(diǎn)。它是構(gòu)建大型程序(500 lines codes)測(cè)試的第一個(gè)步驟??蓮娜齻€(gè)方面給予了概括:定義上:?jiǎn)卧獪y(cè)試是對(duì)程序中的單個(gè)子程序、子程序或過(guò)程進(jìn)行測(cè)o試的過(guò)程,即:一開始并不是對(duì)整個(gè)程序進(jìn)行測(cè)試,而是首先將注意力集中在對(duì)構(gòu)成程序的較小模塊的測(cè)試上面;必要性上:它是一種管理組合的測(cè)試元素的方法手段;以減輕調(diào)試o(準(zhǔn)確定位并糾正某個(gè)已知錯(cuò)誤的過(guò)程)的難度;并提供同時(shí)測(cè)試多個(gè)模塊的可能,將并行工程引入軟件測(cè)試中。目的上:它是將模塊的功能與定義模塊的功能規(guī)格說(shuō)明或接口規(guī)格o說(shuō)明進(jìn)行比較。文尾,需指明:?jiǎn)卧獪y(cè)試的目標(biāo)不是為了說(shuō)明模塊符合其規(guī)格說(shuō)明,而是為了揭

49、示模塊與其規(guī)格說(shuō)明存在著的矛盾。單元測(cè)試用例的設(shè)計(jì),需先明確兩點(diǎn):?jiǎn)卧獪y(cè)試設(shè)計(jì)測(cè)試用例時(shí),需兩種類型的信息,即:模塊的規(guī)格說(shuō)o明、模塊的源代碼。雖單元測(cè)試總體上是采用面向白盒測(cè)試的,但是其設(shè)計(jì)主導(dǎo)思想o是:使用一種或多種白盒測(cè)試方法分析模塊的邏輯結(jié)構(gòu),然后使用黑盒測(cè)試方法對(duì)照模塊的規(guī)格說(shuō)明以補(bǔ)充測(cè)試用例。文中,作者給予了實(shí)例講解。從中可獲悉:在使用白盒測(cè)試方法前,需要列舉出程序中所有的條件判斷;而在使用白盒測(cè)試方法時(shí),應(yīng)在開始就使用多重條件覆蓋的方法;而在使用黑盒測(cè)試方法時(shí),最好要使用邊界值分析的方法,且不要依據(jù)邊界值分析的結(jié)果來(lái)重寫白盒測(cè)試的測(cè)試用例,最好黑盒測(cè)試的用例再單獨(dú)寫出來(lái)進(jìn)行補(bǔ)充,

50、不改動(dòng)前邊已經(jīng)確認(rèn)過(guò)的白盒測(cè)試的測(cè)試用例。文尾,須明確兩個(gè)觀點(diǎn):其一、多重條件覆蓋準(zhǔn)則要優(yōu)于其他準(zhǔn)則;其二、任何邏輯覆蓋準(zhǔn)則尚不足以勝任作為生成模塊測(cè)試用例的惟一手段。同樣,無(wú)論在白盒測(cè)試中判定狀態(tài)或生成測(cè)試用例時(shí)都需要利用這樣一個(gè)輔助手段:列表;即,狀態(tài)判定表。/view/789618270722192e4536f687.html16/26 4/13/2019軟件測(cè)試的藝術(shù)讀書筆記- 百度文庫(kù)執(zhí)行單元測(cè)試過(guò)程中,有兩點(diǎn)需考慮:其一、如何設(shè)計(jì)一個(gè)有效的測(cè)試用例集;其二、將模塊組裝成工作程序的方式。前者涉及的內(nèi)容在上篇已敘述過(guò),而后者,涉及模塊測(cè)試用例編寫的形式、可能用到的測(cè)試工具類型、模塊編碼

51、和測(cè)試的順序、生成測(cè)試用例的成本以及調(diào)試的成本等。它有兩種具體實(shí)現(xiàn)方法:增量測(cè)試(自頂向下和自底向上的開發(fā)或測(cè)試過(guò)程)、非增量測(cè)試。增量測(cè)試:將測(cè)試的模塊組裝到測(cè)試完成的模塊集合中,再進(jìn)行測(cè)o試。且必須要為每個(gè)模塊準(zhǔn)備一個(gè)驅(qū)動(dòng)模塊,但不需要樁模塊。非增量測(cè)試:先要獨(dú)立地測(cè)試每個(gè)模塊,再將這些模塊組裝成完整o的程序。且測(cè)試單獨(dú)的模塊時(shí),需一個(gè)特殊的驅(qū)動(dòng)模塊和一個(gè)或多個(gè)樁模塊。3. 驅(qū)動(dòng)模塊:人們編寫的一個(gè)小模塊,用來(lái)將測(cè)試用例驅(qū)動(dòng)或傳輸?shù)奖粶y(cè)模塊中,也可以用測(cè)試工具替代;還必須向測(cè)試人員顯示該模塊的結(jié)果。4. 樁模塊:被測(cè)模塊可能調(diào)用到了其他的模塊,所以還必須使用一個(gè)額外的組件,即:特殊模塊,用

52、于模擬被調(diào)用模塊的功能。文尾,需提及一個(gè)結(jié)論:增量測(cè)試要更好一些。原因如下:. 非增量測(cè)試所需的工作量要多一些;(樁模塊). 增量測(cè)試可以較早發(fā)現(xiàn)模塊中與之不匹配接口、不正確假設(shè)相關(guān)的編程錯(cuò)誤;增量測(cè)試,調(diào)試會(huì)進(jìn)行得比較容易些;(調(diào)試). 增量測(cè)試會(huì)將測(cè)試進(jìn)行得更徹底;(可能會(huì)誘發(fā)先前測(cè)試完的模塊出現(xiàn)新缺陷,且會(huì)經(jīng)受更多的檢驗(yàn))非增量測(cè)試所占用的機(jī)器時(shí)間顯得少一些;. 模塊測(cè)試階段開始時(shí),非增量測(cè)試,就會(huì)有更多的機(jī)會(huì)進(jìn)行并行操作,即:所有的模塊可以同時(shí)測(cè)試。在開始概述兩種增量測(cè)試方法之前,作者對(duì)幾個(gè)誤解給予了澄清:自頂向下的測(cè)試、自頂向下的開發(fā)、自頂向下的設(shè)計(jì)被常用作近義詞。.自頂向下的測(cè)試和

53、自頂向下的開發(fā)確實(shí)是近義詞,表示安排模塊的編碼和測(cè)試順序的策略;而自頂向下的設(shè)計(jì)則完全不同并且是獨(dú)立的概念,即:按自頂向下模塊設(shè)計(jì)的程序既可/view/789618270722192e4536f687.html17/26 4/13/2019軟件測(cè)試的藝術(shù)讀書筆記- 百度文庫(kù)使用自頂向下的方式,也可使用自底向上的方式進(jìn)行增量測(cè)試。. 自底向上的測(cè)試(或自底向上的開發(fā))常被錯(cuò)誤得當(dāng)作非增量測(cè)試;原因在于自底向上的測(cè)試的開展方式與非增量測(cè)試是相同的,即:對(duì)底層或終端模塊進(jìn)行測(cè)試。自頂向下測(cè)試,是從程序的頂部或初始模塊開始。測(cè)試開始之后,挑選哪一個(gè)后續(xù)模塊進(jìn)行增量測(cè)試沒(méi)有惟一正確的方法;oo惟一的原則

54、是:要成為合乎條件的下一個(gè)模塊,至少一個(gè)該模塊的從屬模塊(調(diào)用它的模塊)事先經(jīng)過(guò)了測(cè)試。該測(cè)試策略里邊最關(guān)鍵的可能就是編寫樁模塊了。oo它涉及到的幾個(gè)關(guān)鍵點(diǎn)概括為:樁模塊的返回信息一定要給予此次調(diào)用所希望的返回值,否則調(diào)用模塊將會(huì)發(fā)生失效或是產(chǎn)生一個(gè)混亂的結(jié)果;早期,測(cè)試數(shù)據(jù)要通過(guò)其一個(gè)或多個(gè)樁模塊提交給模塊的。需要指出一點(diǎn),就是測(cè)試完一個(gè)模塊后,就用一個(gè)實(shí)際的模塊代替其中的一個(gè)樁模塊,而該模塊需要的樁模塊也被添加起來(lái)。需要注意的是:不存在最佳的模塊序列。但盡量讓包含 I/O 操作的樁模塊和重要的樁模塊添入。o自底向上測(cè)試,是開始于程序的終端模塊,此類模塊不再調(diào)用其他任何模塊。測(cè)試完這些模塊之

55、后,同樣沒(méi)有最佳的方法來(lái)挑選要進(jìn)行增量測(cè)試o的下一個(gè)模塊;惟一正確的原則是:要成為合乎條件的下一個(gè)模塊,該模塊所有的o從屬模塊(它調(diào)用的模塊)都已經(jīng)事先經(jīng)過(guò)了測(cè)試。需要指出的是,如果終端模塊是多個(gè)的話,既可以進(jìn)行串行測(cè)試,o也可以進(jìn)行并行測(cè)試。且每一個(gè)模塊都需要一個(gè)特殊的驅(qū)動(dòng)模塊,即:包含著有效的測(cè)試輸入、調(diào)用被測(cè)模塊且將輸出顯示出來(lái)(或?qū)?shí)際輸出與預(yù)期輸出作比較)的模塊。對(duì)于測(cè)試序列也同自頂向下測(cè)試的一樣。o/view/789618270722192e4536f687.html18/26 4/13/2019軟件測(cè)試的藝術(shù)讀書筆記- 百度文庫(kù)本章,最后作者給予了單元測(cè)試的其他部分的實(shí)際測(cè)試策略

56、。1. 應(yīng)對(duì)測(cè)試用例進(jìn)行測(cè)試。當(dāng)測(cè)試用例造成模塊輸出的實(shí)際結(jié)果與預(yù)期結(jié)果不匹配的情況時(shí),存在兩個(gè)可能的解釋:要么該模塊存在錯(cuò)誤;要么預(yù)期的結(jié)果不正確(測(cè)試用例不正確),所以為了將這種混亂降低到最低程度,應(yīng)在測(cè)試執(zhí)行之前對(duì)測(cè)試用例集進(jìn)行審核或檢查。2. 使用自動(dòng)化測(cè)試工具可以使測(cè)試過(guò)程中的枯燥勞動(dòng)減至最低;3. 在準(zhǔn)備單元測(cè)試時(shí),要重溫以下心理學(xué)和經(jīng)濟(jì)學(xué)原則,會(huì)有所裨益的;4. 因?yàn)閭€(gè)人試圖測(cè)試自己編寫的程序所帶來(lái)的心理學(xué)問(wèn)題,也適用于模塊測(cè)試。本書第六章,主要講的是更高級(jí)別的測(cè)試,它最適合用于軟件產(chǎn)品??蓮膬蓚€(gè)層面來(lái)概述。更高級(jí)別的測(cè)試o當(dāng)程序無(wú)法實(shí)現(xiàn)其最終用戶要求的合理功能時(shí),就發(fā)生了一個(gè)軟

57、件錯(cuò)誤。因而即使完成了一次非常完美的單元測(cè)試,仍然不能保證已經(jīng)找出了程序中的所有錯(cuò)誤,所以必須有這一測(cè)試環(huán)節(jié)。軟件開發(fā)過(guò)程與測(cè)試過(guò)程的對(duì)應(yīng)o軟件開發(fā)過(guò)程在很大程度上是溝通有關(guān)最終程序的信息、并將信息從一種形式轉(zhuǎn)換到另一種形式,因此,絕大部分軟件錯(cuò)誤都可以歸因?yàn)樾畔贤ê娃D(zhuǎn)換時(shí)發(fā)生的故障?,F(xiàn)有三個(gè)補(bǔ)充的方法來(lái)預(yù)防或識(shí)別這些錯(cuò)誤,它們分別是:可以使軟件開發(fā)過(guò)程更加精密,以防其中出現(xiàn)很多錯(cuò)誤;o在每個(gè)階段結(jié)束時(shí),可以引入一個(gè)獨(dú)立的驗(yàn)證過(guò)程,在進(jìn)入下一個(gè)o階段之前盡可能多地發(fā)現(xiàn)問(wèn)題;對(duì)不同的開發(fā)階段采用不同的測(cè)試方法。即:將每一個(gè)測(cè)試過(guò)程都o(jì)重點(diǎn)針對(duì)一個(gè)特定的轉(zhuǎn)換步驟,從而也針對(duì)一類具體的錯(cuò)誤。(能在

58、開發(fā)過(guò)程和測(cè)試過(guò)程之間建立起一對(duì)一的聯(lián)系,能避免沒(méi)有效果的多余測(cè)試,并使我們不會(huì)遺漏掉大量的錯(cuò)誤類型。)/view/789618270722192e4536f687.html19/26 4/13/2019軟件測(cè)試的藝術(shù)讀書筆記- 百度文庫(kù)文尾,需注明的是:測(cè)試過(guò)程順序并不一定意味著嚴(yán)格的時(shí)間順序,多種測(cè)試在時(shí)間上是可以發(fā)生部分重疊測(cè)試的。但需要說(shuō)明,集成測(cè)試往往并不作為一個(gè)獨(dú)立的測(cè)試步驟,而且在進(jìn)行增量模塊測(cè)試時(shí),它是模塊測(cè)試的隱含部分。(開發(fā)過(guò)程與測(cè)試過(guò)程的對(duì)應(yīng)關(guān)系圖,由于篇幅的原因,在此就不再敘述。)功能測(cè)試,作者從三個(gè)方面來(lái)概述:定義上:是一個(gè)試圖發(fā)現(xiàn)程序與其外部規(guī)格說(shuō)明之間存在不一致的

59、o過(guò)程。方法上:通常是一項(xiàng)黑盒測(cè)試,即:要依賴早期的單元測(cè)試的過(guò)程o來(lái)實(shí)現(xiàn)理想的白盒邏輯覆蓋準(zhǔn)則。過(guò)程上:需要對(duì)規(guī)格說(shuō)明進(jìn)行分析以獲取測(cè)試用例集。o作者從兩個(gè)方面來(lái)概述一下系統(tǒng)測(cè)試,至于細(xì)節(jié)就不再詳細(xì)敘述了。對(duì)錯(cuò)誤理解方面而言,主要是容易跟功能測(cè)試混淆。(應(yīng)重點(diǎn)注意o那些在設(shè)計(jì)外部規(guī)格說(shuō)明的過(guò)程中所犯的轉(zhuǎn)換錯(cuò)誤。)對(duì)困難性而言,是由于要將程序與其目標(biāo)進(jìn)行比較,是系統(tǒng)測(cè)試的o核心目的,可是沒(méi)有說(shuō)明使用什么樣的測(cè)試用例設(shè)計(jì)方法。因此,系統(tǒng)測(cè)試采取一種不同的測(cè)試用例設(shè)計(jì)法,共計(jì) 15 種的系統(tǒng)測(cè)試策略。(具體每個(gè)測(cè)試策略所采用的步驟就不再敘述了。)它們分別是:能力測(cè)試、容量測(cè)試、強(qiáng)度測(cè)試、易用性測(cè)試

60、、安全性測(cè)試、性能測(cè)試、存儲(chǔ)測(cè)試、配置測(cè)試、兼容性/配置/轉(zhuǎn)換測(cè)試、安裝測(cè)試、可靠性測(cè)試、可恢復(fù)性測(cè)試、適用性測(cè)試、文檔測(cè)試、過(guò)程測(cè)試。系統(tǒng)測(cè)試的執(zhí)行,所涉及的關(guān)鍵是:規(guī)定了不能進(jìn)行系統(tǒng)測(cè)試的人員及機(jī)構(gòu):一是程序員;一是負(fù)責(zé)該程序開發(fā)的機(jī)構(gòu)。原因如下:執(zhí)行系統(tǒng)測(cè)試的人思考問(wèn)題的方式必須與最終用戶相同;o系統(tǒng)測(cè)試是一項(xiàng)“隨心所欲,百無(wú)禁忌”的活動(dòng),而軟件開發(fā)機(jī)構(gòu)o會(huì)受到心理束縛,有悖于此項(xiàng)活動(dòng)。大多數(shù)的開發(fā)機(jī)構(gòu)最為關(guān)心的是讓系統(tǒng)測(cè)試進(jìn)行得盡可能順利并按時(shí)完成,而不會(huì)盡力證明程序不能滿足其目標(biāo)。系統(tǒng)測(cè)試至少應(yīng)由很少受開發(fā)機(jī)構(gòu)左右的獨(dú)立人群來(lái)執(zhí)行。也許最經(jīng)濟(jì)的執(zhí)行系統(tǒng)測(cè)試的方法,是將測(cè)試分包給一個(gè)獨(dú)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論