如何攻破軟件
《How to break software》是James A.Whittaker 2000年的一篇有關如何組織帶有明確目標的測試策略的文獻。文章將軟件測試的過程比喻為“攻擊”軟件以發現bug的狩獵過程。目的在于使測試用例的設計變得有章可循,迅速提高軟件測試效率。
James A.Whittaker,測試界的權威人物,先后在IBM、Google、Microsoft擔任過顧問、工程總監、架構師等職位,在測試領域著有《How google test software》等著作。
文章將“攻擊”軟件的策略分為三個大類:
輸入/輸出攻擊
數據攻擊
運算攻擊
每個類型又分為多個小類型,導致特定的有趣的bug。然后以Microsoft Office系列產品為主要對象,以其中真實的
bug為例,具體說明每一種攻擊策略是怎樣導致缺陷呈現的。
輸入/輸出攻擊
所謂的“黑盒測試”,又可以分為以下具體的類型和施行策略。
數據攻擊
首先要理解數據是如何、在何處建立是必要的。
從本質上講,數據的存儲是通過讀取輸入,然后將其存儲在內部或者存儲一些內部計算的結果來實現的。因此,測試正是通過提供輸入和執行計算來實現數據在應用程序中的傳遞。
具體分為以下具體的類型和施行策略:
運算攻擊
總的來說,找bug不外乎幾種大概的思路:1.遍歷一遍輸入,把能出現的結果都覆蓋到;2.通過構造錯誤的輸出來設計輸入并執行輸入,驗證是否bug;3.有相互作用的事務組合測試,包括相互作用的數據、功能等行為。
另外,作者提出了兩個更重要的測試思想:
1.永遠不要低估了測試時懷揣一個具體目標的作用。太多的測試人員把時間浪費在毫無目的地輸入或者隨機地調用API試圖導致軟件出錯。實行測試意味著制定明確的目標——基于會出錯的點——然后設計測試用例來實踐該目標。這樣,每個測試用例都有目的性并且進度可以被隨時控制。
2.測試應該是有趣的。
posted on 2014-05-08 16:34 順其自然EVO 閱讀(196) 評論(0) 編輯 收藏 所屬分類: 測試學習專欄