喜歡在網(wǎng)上書店中遛達(dá),看到不錯的書就買下。為什么不去書店?一個字,懶唄!總覺得,有那去書店的時間,完全可以好好睡一美覺,亦或可親手烹制一頓美味可口的美食。哎,反正就是,懶得走出家門去逛街!
恰巧,此次瀏覽書籍時,無意間看到了《The Art of Software Testing》這本書。在看了大家所給予它極高的評價留言后,雖然有些疑惑(畢竟這個時代,槍手太多了?。疑钚牛阂槐緯軌颉盎睢?/span>25年,應(yīng)該還是很不簡單的。于是,就半信半疑的訂購了這本書,期望能夠從這本書中獲悉到有用的知識,來豐富一下自己面對這個領(lǐng)域時的貧乏困境,亦作為知識儲備。
暈,這么薄!這是我拿到這本書后的第一反應(yīng)。真的!沒有預(yù)料到這書會這么??!原以為這本經(jīng)典的書,會諸如《C++ Primer》、《The C++ Programming Language》、《Programming Windows》等這些著作那么厚。而當(dāng)翻看了幾章后,覺得確實(shí)很經(jīng)典,也明白了為什么這本書會“活”了25年。于是,就誕生了我對這本書的第二感覺:薄而精!看來是需要自己多花些時間去慢慢的品味,這樣才方可體味到最純最美的底醞。
打住自己對這本書的侃侃而談(怕跑題太遠(yuǎn),拽不回來),還是關(guān)注一下軟件測試這個領(lǐng)話題吧!
軟件測試,怎么說呢?就自身經(jīng)歷而言,確實(shí)如書上所說:測試依然是軟件開發(fā)中的“黑色藝術(shù)”。大學(xué)期間,計(jì)算機(jī)課程開的不少,沒聽說有專門開一門關(guān)于測試的課程。所以,在學(xué)生階段,測試就屬于是個被拋棄掉的名詞!畢業(yè)時,不是做軟件就是去搞網(wǎng)絡(luò),沒有聽到一個同學(xué)去應(yīng)聘測試的!工作中,有專門的測試組(或部門),就更不用自己怎么上心去研究了!如今的氛圍就是:紅的夠紅,黑的夠黑!那叫一個“專”!哎,為什么不實(shí)行“兩手都要抓,兩手都要硬”的政策呢(一己之見,偏頗在所難免)?或許,我還不明白:“術(shù)業(yè)有專攻”的深刻含義吧!
算了,最后還是談?wù)剬@本書的總觀吧!
-
該書是針對測試這一主題進(jìn)行的實(shí)踐探討,而不是理論研究,順便捎帶了些對新的語言和過程的探討;
-
前言中提到了一個最為重要而又是長期、基本的指南:如何確保所開發(fā)的所有軟件做了其應(yīng)該做的,并且同樣重要的是,未做其不應(yīng)該做的?
-
引言里指出一條著名的經(jīng)驗(yàn):即在一個典型的編程項(xiàng)目中,軟件測試或系統(tǒng)測試大約占用50%的項(xiàng)目時間和超過50%的總成本。
有創(chuàng)意!這是我對該書第一章的評價,也是唯一一次在看新書開篇時,能夠把第一章給透透徹徹看完的。為何?還不是實(shí)在不能恭維有些書籍在開篇就進(jìn)行枯燥而繁多的總結(jié)性、介紹性的文字。雖心里也清楚這些文字存在的重要性。但每每,還總是先粗略瞄過,在通讀全書后,才會再次認(rèn)認(rèn)真真的看那些文字(這時,才真的能感悟到“提綱攜領(lǐng)”的中文含義啊)。
創(chuàng)意在于:它只通過展示一次自評價測試,就能吸引我的眼球,并涌出一種想繼續(xù)向下讀的沖動;更能引起對自身一些有關(guān)邏輯思維(考慮欠周全、縝密,存在盲點(diǎn))、聯(lián)想能力(需拓展思維,要富于聯(lián)想與想像,即:思維“活”起來)、角度問題(要巧妙轉(zhuǎn)換角度)等方面,所可能存在的不足進(jìn)行深思。當(dāng)然,能夠引起深思的緣故,還不是在于那個評價測試嘛!提起來,汗顏!依據(jù)所謂的測試用例(即:特定的數(shù)據(jù)集合)自測試后,發(fā)現(xiàn)自己只能考慮到11項(xiàng)(總14項(xiàng))需要測試的關(guān)鍵點(diǎn)。
文尾,談?wù)勛髡邔Α败浖y試”這個概念的定義吧。所謂軟件測試,就是一個過程或一系列過程,用來確認(rèn)計(jì)算機(jī)代碼完成了其應(yīng)該完成的功能,不執(zhí)行其不該有的操作。軟件應(yīng)當(dāng)是可預(yù)測且穩(wěn)定的,是不會給用戶帶來意外驚奇的。
“軟件測試是一項(xiàng)技術(shù)性工作,但同時也涉及經(jīng)濟(jì)學(xué)和人類心理學(xué)的一些重要因素”,這是該書第二章中最吸引我的話,耐人深思。而對于該章的內(nèi)容,我個人覺得可概括為以下三個方面:
-
心理學(xué)角度:駁斥了一些社會普遍存在的錯誤認(rèn)識,并給出了測試的正確定義及在含義上進(jìn)行了延伸。(用寫文章上常用的術(shù)語來說,是:先破后立。)
-
經(jīng)濟(jì)學(xué)角度:驗(yàn)證軟件測試不能夠發(fā)現(xiàn)“所有”的錯誤。(術(shù)語是:各個擊破。)
-
歸納了軟件測試中的一些基本原則(術(shù)語是:歸納與演繹。),及三個重要的測試原則:
-
軟件測試是為發(fā)現(xiàn)錯誤而執(zhí)行程序的過程;
-
一個好的測試用例具有較高的發(fā)現(xiàn)某個尚未發(fā)現(xiàn)的錯誤的可能性;
-
一個成功的測試用例能夠發(fā)現(xiàn)某個尚未發(fā)現(xiàn)的錯誤。
文尾,值得一提的是:在本章能明顯感到作者側(cè)重于從心理學(xué)角度來分析一些潛在的問題。