完美軟件

出版時間:2009-12  出版社:電子工業(yè)出版社  作者:Gerald M.Weinberg  頁數(shù):345  譯者:宋銳  
Tag標簽:無  

前言

  軟件測試的目的是什么?  我想大多數(shù)人對于這個問題的回答會是“保證交付高質(zhì)量的軟件”。也許從最終目的上來說是這樣的,但是單純只是軟件測試本身是無法為軟件的質(zhì)量提供保證的。軟件的質(zhì)量是從需求分析甚至是剛剛產(chǎn)生軟件相關(guān)概念的時候就開始產(chǎn)生,受到整個開發(fā)過程影響的一個性質(zhì),而測試只是用來將這一性質(zhì)數(shù)值化、表面化的過程。是不是擁有良好的測試過程就能夠保證交付高質(zhì)量的軟件呢?顯然是不夠的。要保證軟件具有較高的品質(zhì),需要管理、開發(fā)、測試等多個部門的共同努力,尤其是管理部門如何看待測試,如何利用測試獲得的信息是至關(guān)重要的?! ‘?dāng)我們按照一個預(yù)定的過程對軟件進行測試,卻未能獲得預(yù)期的結(jié)果時,往往會說:“這次測試失敗了?!被蛘呤恰斑@個測試沒有通過?!倍鴮嶋H上正確的說法應(yīng)該是:“軟件在這個測試中失敗了?!被蛘呤恰败浖]能通過這個測試?!薄 ≡谠S多人看來,這種說法上的差異也許是微不足道的,或者只是文字游戲。但是事實上,它反映了大家對于軟件測試的心理誤區(qū)。人們往往并不能很清楚地區(qū)分測試與除錯、開發(fā)過程甚至是軟件本身的關(guān)系。而這一誤區(qū)正是導(dǎo)致對測試產(chǎn)生不切實際的期望,夸大或者忽視測試的作用的根源?! ∪绻銖氖聹y試已經(jīng)有很長時間了,就很可能聽到過這樣一些問題:  “你為什么沒有發(fā)現(xiàn)那個問題?”  “我們?yōu)槭裁匆诳梢宰詣踊瘻y試的情況下雇傭人來進行測試?”  “一定要讓它在下周可用。”  而產(chǎn)生這些問題的原因,往往就在于人們對軟件測試的誤解。本書的主要目的,就是要破除這樣的一些誤解,還軟件測試以本來面目。這本書的預(yù)期讀者非常廣泛,涉及與軟件開發(fā)有關(guān)的所有人,包括但不限于軟件開發(fā)人員、測試人員、客戶、項目經(jīng)理以及高層管理人員,等等?! ”緯淖髡逩erald M. Weinberg在軟件行業(yè)浸淫了五十余年,幾乎開發(fā)過所有類型的軟件,出版了四十余本技術(shù)書籍,發(fā)表過數(shù)百篇技術(shù)文章。他對軟件項目的管理、設(shè)計、開發(fā)和測試具有極其豐富的經(jīng)驗,對于與軟件開發(fā)有關(guān)人員的心理尤其有深入的研究。他的《The Psychology of Computer Programming》(中譯本名為《程序開發(fā)心理學(xué)》)開創(chuàng)了“以人為本”的研究方法,它以其對程序員們的智力、技巧,團隊和問題求解能力等方面獨特的視角和敏銳的觀察經(jīng)受住了時間的考驗,具有深遠影響。  而在《完美軟件——對軟件測試的各種幻想》這本書中,Weinberg采用的是純散文和故事化的風(fēng)格,而沒有使用花哨的指標和圖表。他深入淺出地講述了與軟件測試有關(guān)的各種誤解與錯覺,可以為行政人員、經(jīng)理或者開發(fā)人員提供有關(guān)測試的足夠信息,以便他們理解測試所要面對的挑戰(zhàn),進而對測試設(shè)置恰當(dāng)?shù)钠谕⒕瓦@些期望進行清晰的交流?! ”緯卮鸬膯栴}包括:  為什么在看起來測試只會耽擱時間的時候還要進行測試?  為什么無法一開始就構(gòu)建正確的軟件,從而不需要測試?  需要對所有可能性都進行測試嗎?  為什么不對所有可能性都進行測試?  是什么原因?qū)е聹y試如此困難?  為什么測試需要這么長的時間?  是否有可能構(gòu)建完美的軟件?  為什么我們不能接受一些缺陷?  本書的入手點更多的是出于心理學(xué)而不是計算機技術(shù)。通過對心理學(xué)的研究,我們會發(fā)現(xiàn)人類本身就是不完美的,自然也不應(yīng)該期望軟件是完美的。由于除了某些最簡單的情況以外,軟件的可能路徑實際上都是無限的,因此對軟件進行窮舉測試通常是不可能的。由于人類容易出錯,而且程序中產(chǎn)生缺陷的可能途徑也非常多,所以沒有任何缺陷的(完美的)程序是一個無法實現(xiàn)的目標。雖然這不是什么好消息,但是事實就是如此?! ∈軜酚^主義和必要性的推動,人們每年仍然會創(chuàng)造數(shù)百萬行代碼,而這些程序中的相當(dāng)一部分將會被發(fā)布到到客戶群中。因此,謹慎的開發(fā)人員別無選擇,只能通過建立測試過程來發(fā)現(xiàn)軟件中最重要的和最有可能出現(xiàn)的那些缺陷?! ≌鏦einberg 指出的那樣,有些人確實選擇只進行很少的測試,有時是依賴于諸如“如果我們運氣好的話,就沒有人會遇到那個缺陷”的想法。其他一些人只是將該缺陷重新定義成一個特性就繼續(xù)別的工作。這些做法既不合乎道德,也可能導(dǎo)致法律問題?! einberg以非常詼諧而含蓄的風(fēng)格介紹了他遇到過的眾多例子,揭示了與軟件測試有關(guān)的眾多常見誤解與謬論,還揭露了在測試中常見的各種欺詐方式。通過閱讀本書,應(yīng)該認識到軟件測試是一個與人的心理活動密切相關(guān)的過程;測試工作的核心是收集信息,這些信息是關(guān)于軟件產(chǎn)品、開發(fā)過程以及測試過程本身的;要達到“保證軟件質(zhì)量的目的”,不僅僅要進行良好的測試,更重要的是要對測試獲得的信息進行合理的利用。  本書是給涉及軟件開發(fā)的所有人的一本指南,告訴他們:對于軟件而言,完美是一個不現(xiàn)實的目標。因此,本書對軟件開發(fā)團隊中的所有人都是必備的。

內(nèi)容概要

  《完美軟件:對軟件測試的各種幻想(中英文對照)》是從事軟件行業(yè)五十余年的Gernald M. Weinberg針對軟件測試所寫的新作。他在軟件項目的管理、設(shè)計、開發(fā)和測試方面都具有極其豐富的經(jīng)驗,對于與軟件開發(fā)有關(guān)人員的心理尤其有深入的研究。在《完美軟件:對軟件測試的各種幻想(中英文對照)》中,他重點討論了與軟件測試有關(guān)的各種心理問題及其表現(xiàn)與應(yīng)對方法。作者首先闡述軟件測試之所以如此困難的原因——人的思維不是完美的,而軟件測試的最終目的就是發(fā)現(xiàn)對改善軟件產(chǎn)品和軟件開發(fā)過程有益的信息,故軟件測試是一個信息獲取的過程。接著,作者利用豐富的經(jīng)歷和大量的實例,展現(xiàn)了在軟件測試中可能會出現(xiàn)的各種與人的心理有關(guān)的現(xiàn)象、誤區(qū)、欺詐,以及容易犯下的常見錯誤等等?!锻昝儡浖簩浖y試的各種幻想(中英文對照)》的重點不是告訴大家要做什么或者說如何做,而更多的是讓讀者明白在與軟件測試相關(guān)的活動中會出現(xiàn)某些特定現(xiàn)象的原因。理解這些與人的心理有關(guān)的現(xiàn)象有助于與軟件開發(fā)有關(guān)的所有人之間更好地就軟件測試的目的和實現(xiàn)過程進行溝通,從而實現(xiàn)具有更高品質(zhì)的軟件。

作者簡介

  Gerald M.Weinberg,軟件領(lǐng)域最著名的專家之一,美國計算機名人堂代表人物,Weinberg&Weinberg)顧問公司的負責(zé)人。Weinberg精力旺盛、思想活躍,從20世紀70年代開始,他總共撰寫了40多本書籍和數(shù)以百計的論文。在西方國家乃至全球,Weinberg擁有大量忠實的讀者群,他們甚至建有專門的組織和網(wǎng)站,討論和交流大師的重要思想。可以說,Weinberg近年來的每本新書都是在萬眾矚目中推出的。

書籍目錄

前 言第1章 進行測試的原因 11.1 人類不是完美的思考者 31.2 我們要做出有關(guān)軟件的決定 31.2.1 日記條目1 31.2.2 日記條目2 51.2.3 日記條目3 51.2.4 日記條目4 71.2.5 日記條目5 71.2.6 日記條目6 71.3 決定可能是有風(fēng)險的 91.4 測試可以提供降低風(fēng)險的信息 131.5 小結(jié) 171.6 常見錯誤 17第2章 測試無法做的事 212.1 信息不一定有助于降低風(fēng)險 232.2 也許我們不會使用那些花錢得到的信息 252.3 決定是感性的而不是理性的 272.4 不良的測試也許比不測試更糟 292.5 產(chǎn)品可能尚未準備好接受測試 312.6 小結(jié) 332.7 常見錯誤 33第3章 不對所有可能性進行測試的原因 393.1 可能進行測試的數(shù)目是無限的 393.2 測試最多只是采樣 433.3 信息的成本可能超過無知的成本 453.4 我們也許可以用較少的測試獲取更多的信息 473.5 測試自助餐 473.6 小結(jié) 493.7 常見錯誤 49第4章 測試和除錯的區(qū)別 531.通過測試來發(fā)現(xiàn) 532.查明問題 553.定位 554.確定重要性 575.修改 576.解決問題 577.通過測試來學(xué)習(xí) 598.任務(wù)切換 614.1 測試會隨著機構(gòu)的成長發(fā)生變化 614.2 以時間限制試探法作為管理法則,但根據(jù)需要進行調(diào)整 654.3 小結(jié) 674.4 常見缺陷 67第5章 元測試 735.1 我們有說明書,但是找不到了 755.2 我們的錯誤太多了,導(dǎo)致缺陷數(shù)據(jù)庫無法高效運轉(zhuǎn) 755.3 我們沒找到任何缺陷,實際上我們并沒有真正地找 775.4 我們修改記錄讓缺陷看起來沒那么嚴重 775.5 這不是我的組件中的問題,所以我不記錄 795.6 我不知道在測試錯誤的應(yīng)用程序 795.7 我們不測試最差的組件,因為花得時間太長 815.8 我們發(fā)現(xiàn)了這么多缺陷,不會還有更多的 815.9 我們的測試證明程序是正確的 835.10 我們運行了很多測試用例,根本就看不過來 835.11 如果我們的軟件在有三名用戶時工作良好,顯然它在有一百名用戶時也不會有問題 835.12 我們不希望測試人員知道我們將忽略他們提供的信息 855.13 我沒有報告缺陷,所以開發(fā)人員不會對我發(fā)脾氣 875.14 我們不需要測試它,因為開發(fā)人員非常有水平 875.15 接著說元信息 895.16 小結(jié) 895.17 常見錯誤 91第6章 信息免疫 956.1 我們在生存規(guī)則受到威脅的時候會感到害怕 976.2 我們壓抑無法接受的事物 996.3 我們讓不可接受的事物合理化 1016.4 我們將自己的負面品質(zhì)投射給其他人 1056.5 我們轉(zhuǎn)移指責(zé)從而免除自己的責(zé)任 1076.6 我們對自己的不足進行過度補償 1116.7 我們在覺得失去控制時開始出現(xiàn)強迫 1116.8 小結(jié) 1136.9 常見錯誤 113第7章 如何應(yīng)對防衛(wèi)反應(yīng) 1197.1 確定恐懼 1217.2 使用危機思維 1217.3 實踐,實踐,再實踐 1237.4 對自己進行測試 1257.5 小結(jié) 1277.6 常見錯誤 127第8章 良好測試的要素 1298.1 永遠無法確切地知道 1298.2 只能根據(jù)事實來評估良好性 1318.3 可能希望故意插入一些缺陷 1358.4 對良好性的估算總是統(tǒng)計性的 1358.5 可以對非差性進行估算 1378.6 小結(jié) 1398.7 常見錯誤 139第9章 有關(guān)測試的主要誤區(qū) 1439.1 指責(zé)誤區(qū) 1439.2 窮舉測試誤區(qū) 1459.3 “測試產(chǎn)生質(zhì)量”誤區(qū) 1479.4 分解誤區(qū) 1499.5 合成誤區(qū) 1519.6 “所有測試都相同”誤區(qū) 1519.7 “隨便哪個笨蛋都可以測試”誤區(qū) 1559.8 小結(jié) 1579.9 常見錯誤 157第10章 測試不僅僅是敲擊鍵盤 16110.1 毫無目的地敲擊鍵盤是不是測試 16310.2 白手套測試 16510.3 狗食測試 16710.4 對測試人員也要進行測試 17110.5 可能在沒有意識到的情況下進行測試 17310.6 演示不是測試 17310.7 小結(jié) 17510.8 常見錯誤 175第11章 信息攝取 18111.1 使用薩提亞交互模型來解析溝通 18111.1.1 攝取 18311.1.2 確定含義 18311.1.3 確定重要性 18511.1.4 做出反應(yīng) 18511.2 人們聽取信息時是有選擇性的 18711.3 數(shù)據(jù)來源會影響到攝取 18711.4 時機也會導(dǎo)致差異 18911.5 人們會出現(xiàn)信息過載 19111.6 減少測試的數(shù)量也許可以傳遞更多的信息 19311.7 尋找測試之外的信息攝取 19311.8 不要混淆理解和攝取 19511.9 使用數(shù)據(jù)質(zhì)疑來過濾理解 19711.10 小結(jié) 19711.11 常見錯誤 197第12章 確定含義 20112.1 案例1:四個缺陷,五種含義 20112.2 案例2:四個缺陷,七種含義 20512.3 案例3:四個缺陷,自行確定含義 20712.4 進行解釋之前先弄清期望的是什么 20912.5 不知道期望時的做法 21112.6 使用已經(jīng)獲得的信息 21312.7 使用間接信息 21312.8 使用未獲得的信息 21512.9 同樣的話可能具有不同的含義 21712.10 “相同”可能并不一樣 21712.11 某些時候不精確會更好 21912.12 小結(jié) 22112.13 常見錯誤 221第13章 確定重要性 22513.1 不同的人會給同樣的信息賦予不同的重要性 22713.2 公共的重要性也許與對個人的不一樣 22913.3 重要性依賴于上下文環(huán)境 23113.4 不能總是根據(jù)金錢來確定重要性 23313.5 不要采用過細的尺度 23713.6 首先解決重要問題 23713.7 聽從自己的情緒反應(yīng) 23913.8 小結(jié) 24313.9 常見錯誤 243第14章 做出反應(yīng) 24714.1 是運氣不好還是管理不善 24714.2 項目最后會趕進度的原因 24914.3 接近項目結(jié)束時應(yīng)如何反應(yīng) 25314.4 對測試所需時間的估算與現(xiàn)實差距很大的原因 25514.4.1 好天氣估算 25514.4.2 不切實際的過程模型 25514.4.3 低質(zhì)的過程數(shù)據(jù) 25714.4.4 沒有過程數(shù)據(jù) 26114.5 確定是否已經(jīng)錯過了可以有所改變的時刻 26314.6 小結(jié) 26314.7 常見錯誤 265第15章 避免軟件測試變得越發(fā)困難 26715.1 情況變得更糟的原因 26715.2 讓系統(tǒng)盡可能小 26915.3 讓“系統(tǒng)”模型是可擴展的 27115.4 增量構(gòu)建有清晰接口的分立組件 27315.5 減少進入產(chǎn)品的缺陷數(shù)目 27515.6 小結(jié) 27515.7 常見錯誤 275第16章 不使用機器進行測試 27916.1 用機器進行測試總是不夠的 27916.1.1 即時評審 28116.2 首先對最差的部分進行評審可以讓人了解缺陷的嚴重性 29316.3 事實并不總是能令人信服 29516.4 測試人員是頗有價值的評審者 29516.5 小結(jié) 29716.6 常見錯誤 297第17章 測試欺詐 30117.1 我們會賣給你一個神奇的工具 30117.2 我們的演示是欺詐 30317.3 這么多的證明信表明它一定很好 30717.4 我們可以通過定價來欺詐 30717.5 我們的工具會讀心術(shù) 30917.6 我們保證你不用做任何事 31317.7 我們一起密謀 31317.8 避免欺詐的方法 31517.9 小結(jié) 31517.10 常見錯誤 315第18章 忘卻型欺詐 31918.1 推遲文檔化造成的后果 31918.2 不明確的測試報告就像流沙一樣 31918.3 偽造的測試報告阻止了改進 32118.4 在別的地方進行報復(fù) 32318.5 早期的答案可能產(chǎn)生誤導(dǎo) 32318.6 “量”不是“質(zhì)”的同義詞 32518.7 不要將非測試活動當(dāng)做測試 32718.8 太整潔了,不可能是真的 32918.9 電子表格中的垃圾還是垃圾 33118.10 小結(jié) 33118.11 常見錯誤 331尾聲 333尾注 335其他閱讀材料 343

章節(jié)摘錄

  產(chǎn)品何時準備好接受測試了?這個問題并不總是很容易回答,但是可以通過問一些更容易回答的問題來了解一些信息,幫助確定何時尚未準備好接受測試。  對于產(chǎn)品是否存在一個以上的問題.需要通過測試來幫助回答?如果沒有任何問題,就沒有理由進行測試。  是否希望知道該問題的答案?如果不想知道答案,就不要提出問題,也就是說,不要進行測試?! ∈欠裰皇菬o聊地對測試結(jié)果感到好奇?如果并不準備對測試結(jié)果進行估算或據(jù)此采取行動,就不要考慮測試。如果只是為了滿足無聊的好奇心而進行測試,代價就太高了。不過從另一方面來說,積極的好奇心是有效測試的一個重要方面,因為你永遠無法準確地知道自己應(yīng)該尋找什么。因此,如果準備花一些時間來進行探索,保持好奇心就有助于讓測試物有所值,不過一定要對發(fā)現(xiàn)的情況追根究底?! ∈欠衲軌蚝蜏y試人員預(yù)先就如何算通過測試達成一致?如果不能就怎樣才能算通過測試、怎樣不能算通過測試達成一致,那你想通過測試得到什么呢?  是否已經(jīng)預(yù)先就怎樣的測試是成功的、怎樣又是不成功的達成了一致?是否認可只要是能夠提供新信息的測試,就至少可以被看作是部分成功的?  是否以為測試的結(jié)果會替你做出決定?不可能從純技術(shù)的角度做出商業(yè)決策。當(dāng)然應(yīng)該使用測試得到的信息來支持商業(yè)決策,但是不要用測試代替商業(yè)決策過程。例如,交付一個未能通過某些測試的系統(tǒng)可能是一個不錯的商業(yè)決定。與之相反,交付一個通過了所有測試的系統(tǒng)也可能是一個不良的商業(yè)決定。

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


    完美軟件 PDF格式下載


用戶評論 (總計4條)

 
 

  •   不錯的軟件測試書
  •   翻譯的有點差勁
  •   有點貴額
  •   想充實一下自己
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機版

京ICP備13047387號-7