讀者不禁要問,釣魚和軟體測試有何聯絡呢?嘿嘿,聯絡可大了,不妨看看?
釣魚者利用魚餌從水庫和池塘中將魚釣上來,釣的越多越有成就。軟體測試者利用軟體測試技術從軟體中找到bug,找到的bug越多越好。還不僅如此......
《how do we test software at microsoft》一書的作者,阿倫.培智,在第七章中寫道:
我的叔叔弗蘭克是乙個很棒的漁夫,他一輩子都在蒙大拿州的河流裡釣魚。他總是十分熟悉什麼樣的釣竿、釣線和魚餌一起使用能釣到魚,是朋友們當中公認的釣魚專家。然而,無論他對釣魚多在行,如果和裡屗魚,他也只能空手而歸。他明白有了好的裝備和誘餌還不行,他還知道如何觀察河流的深度和流向,利用這些資訊來準確地**魚兒在**會出現。熟練的捕魚技術和對漁區的分析策略,兩者結合令他無往不勝。
一些測試技術,比如邊界值分析和結對測試,可以有效地幫助我們在盡量少增加風險的同時,減少測試用例的數目。然而問題是,缺陷並不是平均分布在**裡。在軟體裡,總有些元件比其它元件存在更多的缺陷。就象我叔叔用了很多不同的技術去**魚兒在**一樣,軟體測試的乙個要的環節是**哪個專案區域存在更多的缺陷,並有針對性地投入測試力量。
我的父親也是個釣魚專家,這一點被村裡人所公認,我對他的釣魚技術佩服有加。在我很小的時候,一次父親急急忙忙地回家,臨時用乙個大的鐵釘彎成乙個魚勾,然後匆忙去池塘釣魚,不一會兒就釣上一條大草魚。事後,我問起父親,為什麼那麼匆匆忙忙?他說他剛路過那個池塘,發現水面上有魚吐出的小泡泡,就知道那裡有魚,這種魚過一會兒可能就離開這裡,現在不及時去釣,就釣不到了。我又問他,為什麼不用以前用過的鉤子,而要特製乙個鉤子呢,他解釋道:那是大草魚,平常用的鉤子太小,只有用粗的大鐵釘彎成的鉤子才結實,才能釣上那條大魚。我愈加佩服父親對釣魚的學問了。更讓我驚嘆得五體投地的是,他讓我隔壁的姨父也趕緊去釣,說是那裡還剩下一條。姨父將信將疑地去了,結果,果真也釣上一條大草魚。
這件事在當時轟動了整個村子。事後想想,無非歸功於父親對魚習性的了解,並針對魚的特點採用了特殊的工具。
在這一點上,
測試和釣魚有類似之處。好的釣魚者要對魚的習性有所了解,根據魚的特點決定用什麼樣的工具和方法,並根據一定的現象判定魚的多少。測試者也要對軟體的特點有充分的理解,並不是使用相同的測試工具就一定能找到相同數量的軟體缺陷。
和魚一樣,軟體bug也是結伴而行的。《software testing》一書的作者ron patton在書中說:「bug follows bug」.就是這個道理。
軟體測試和軟體質量
來自wikipedia 描述一種用來促進鑑定軟體的正確性 完整性 安全性和質量的過程。換句話說,軟體測試是一種實際輸出與預期輸出間的審核或比較過程。軟體測試的經典定義 在規定的條件下對程式進行操作,以發現程式錯誤,衡量軟體質量,並對其是否滿足設計要求進行評估的過程。iso 9126 是乙個用來評估軟...
軟體測試學習之路 軟體測試和測試環境筆記
前言 做了第一講 軟體測試和測試環境的筆記,是我自己在萬門大學系統化學習軟體測試做的學習筆記。為啥要學呢?因為雖然從大三就開始接觸軟體測試,但是大學老師教的東西,其實更多是灌填式,老師講什麼,你就學什麼。不知道別人怎麼想,但是我坦白,常常會有為什麼要學這個,學哪個又能幹嘛的疑問。出了社會更講速成化,...
軟體測試之 測試和Beta測試
實施驗收測試的常用策略有三種,它們分別是 正式驗收 非正式驗收或alpha 測試 beta 測試 因此,alpha測試和beta測試都屬於驗收測試。所謂驗收測試是軟體產品完成了功能測試和系統測試之後,在產品發布之前所進行的軟體測試活動,它是技術測試的最後乙個階段,通過了驗收測試,產品就會進入發布階段...