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