讀書:手工測試與自動(dòng)測試
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2012/7/12 14:55:09 ] 推薦標(biāo)簽:
當(dāng)軟件測試的熱點(diǎn)漸漸轉(zhuǎn)向測試自動(dòng)化,當(dāng)越來越多的測試人員談?wù)摪缀袦y試、測試編程、測試腳本時(shí),測試專家James A. Whittaker旗幟鮮明地捍衛(wèi)手工測試(manual testing),探討如何用探索式測試(exploratory testing)來應(yīng)對嚴(yán)峻的現(xiàn)實(shí)挑戰(zhàn)。
作者以“漫游”為隱喻,提出了以漫游測試(touring testing)為核心的探索式測試方法。
第3章“局部探索式測試法”介紹了如何測試軟件的局部:一個(gè)組件或模塊。
第4章“全局探索式測試法”介紹了如何測試軟件的功用(capacity):以測試意圖為核心,將應(yīng)用程序的多個(gè)特性和功能組合起來進(jìn)行測試。這一章是全書的核心,作者提出一系列漫游測試方法,并組成了方法譜系(catalog)。作者為每一種方法起了獨(dú)特的名字,并分門別類的討論,其效果類似于Martin Fowler在《重構(gòu)》中對重構(gòu)手法的組織。
第5章分享了5個(gè)微軟測試團(tuán)隊(duì)對于漫游測試的技術(shù)報(bào)告,以生動(dòng)的筆觸、豐富的素材證明了積極的手工測試依然是軟件測試不可或缺的關(guān)鍵。
在第8章,作者對未來的軟件測試進(jìn)行了展望,非常有啟發(fā)性。有些內(nèi)容看似天馬行空,實(shí)際上已經(jīng)漸漸出現(xiàn)在現(xiàn)實(shí)的軟件測試中。例如,Visual Studio 2010中代碼覆蓋率與測試用例的映射、手工測試的全程“錄像”(作者曾經(jīng)是Visual Studio Test Edition的架構(gòu)師,相信他為此貢獻(xiàn)良多)、正在出現(xiàn)的基于云計(jì)算的測試服務(wù)商。
在展望未來時(shí),作者提出了“測試人員提示”的構(gòu)想。游戲“魔獸世界”有許多小屏幕、地圖、道具列表、其他玩家的消息,玩家利用這些信息能夠在超級(jí)殘酷的游戲世界中生存。與此相似,“測試人員提示”是是測試者的“游戲地圖”:把光標(biāo)移動(dòng)到控件上,旁邊的小窗口可以顯示源代碼、代碼變更歷史、缺陷修復(fù)歷史、其他測試者已運(yùn)行的用例等信息。有了它,測試者能夠更自如地探索軟件、展開攻擊。
在我看來,”測試人員提示“很可能先出現(xiàn)于Web測試。Firefox的插件Firebug已經(jīng)實(shí)現(xiàn)頁面元素和DOM樹節(jié)點(diǎn)的雙向映射:用鼠標(biāo)點(diǎn)擊一個(gè)頁面元素上,頁面高亮該元素,DOM窗口高亮該節(jié)點(diǎn),源代碼窗口高亮相應(yīng)代碼。一旦能定位到源代碼,那么從源碼管理系統(tǒng)獲得其變更記錄、從Bug管理系統(tǒng)獲得其缺陷歷史、從測試管理系統(tǒng)獲得其測試用例,是相對容易的任務(wù)。James目前在Google任職,似乎正在將相關(guān)理念引入Chrome OS。對于Web OS,所有的應(yīng)用程序都是用HTML和Javascript構(gòu)建的Web程序(其軟件棧是Web-app/Chrome-Browser/Chrome-OS),這是”測試人員提示“的佳舞臺(tái)。無論如何,Google都會(huì)將Chrome Browser打造成Chrome OS上的佳測試平臺(tái),類似于Selenum的測試工具會(huì)以插件的形式植入Chrome Browser,成為Web應(yīng)用和Chorme OS的測試工具。
書的后1/3是作者的博客匯編。許多文章頗具見底,其中一篇引用了Tony Hoare爵士的名句,頗令人深思:軟件測試的真正價(jià)值并不體現(xiàn)在代碼中找出了多少缺陷,而是發(fā)現(xiàn)設(shè)計(jì)和編程人員解決問題方法上的局限、思路中的狹隘和技能方面的不足。這也許在暗示,是作者的持續(xù)思考和反復(fù)實(shí)踐,使他能夠提出漫游測試這種切合軟件測試本質(zhì)的方法吧。
《自動(dòng)化軟件測試實(shí)施指南》
Amazon上的一條書評是“Strong on theory and planning, weak on practical implementation”,很好的概括了此書的優(yōu)缺點(diǎn)。
此書在附錄中介紹了一批典型的開源工具:JUnit、bugzilla/' target='_blank'>Bugzilla、Subversion等,但是并沒有介紹具體的測試實(shí)現(xiàn)技術(shù),例如編寫測試腳本、構(gòu)造測試斷言、生成測試數(shù)據(jù)等。如果你需要第一線的測試開發(fā)手冊,這本書不能滿足你的需求。
此書的貢獻(xiàn)在于,當(dāng)你迫不及待地準(zhǔn)備一個(gè)猛子扎入測試自動(dòng)化的深海時(shí),它問道:
降低什么類型的軟件缺陷重要?
哪套測試活動(dòng)、測試技術(shù)已經(jīng)被證明對于發(fā)現(xiàn)這類測試重要?
有哪些關(guān)鍵測試需要不斷地重復(fù)或頻繁運(yùn)行?
哪個(gè)測試階段的成本高?
哪些測試的附加值高并且要執(zhí)行?
是那些投入多的測試在創(chuàng)造多的價(jià)值么?
這些惱人的問題,毫無樂趣,且難以回答。但是,如果沒有仔細(xì)地考慮過它們,測試自動(dòng)化會(huì)直面失敗的風(fēng)險(xiǎn)。
這本書的目標(biāo)讀者是大規(guī)模測試自動(dòng)化的領(lǐng)導(dǎo)和骨干。它所定義的測試自動(dòng)化是:以改進(jìn)軟件測試生命周期的效率和有效性為目標(biāo),貫穿整個(gè)周期的軟件技術(shù)實(shí)施。其內(nèi)容涵蓋:
為什么需要測試自動(dòng)化。
測試自動(dòng)化的成本和收益。
測試自動(dòng)化失敗的原因。
測試自動(dòng)化的生命周期:獲取自動(dòng)化需求、確定自動(dòng)化策略、開發(fā)自動(dòng)化測試框架、跟蹤度量以評估自動(dòng)化測試效果、完善實(shí)施過程、培養(yǎng)所需人才。
作為測試組織的負(fù)責(zé)人,仔細(xì)地思考其中的問題,謹(jǐn)慎的實(shí)踐,方能提升測試組的整體效率,優(yōu)化整個(gè)軟件開發(fā)過程。
據(jù)我觀察,大多數(shù)測試自動(dòng)化的中文圖書聚焦于具體的自動(dòng)化技術(shù),在組織、戰(zhàn)略層面的思考較少。測試自動(dòng)化往往是錄制、回放、腳本、框架的代名詞,而沒有從測試生命周期的角度涵蓋需求、測試、匯報(bào)、度量與優(yōu)化。此書在高層策略上分享了一些專家經(jīng)驗(yàn),值得思考、借鑒。
相關(guān)推薦
最新發(fā)布
性能測試之測試環(huán)境搭建的方法
2020/7/21 15:39:32軟件測試是從什么時(shí)候開始被企業(yè)所重視的呢?
2020/7/17 9:09:11Android自動(dòng)化測試框架有哪些?有什么用途?
2020/7/17 9:03:50什么樣的項(xiàng)目適合做自動(dòng)化?自動(dòng)化測試人員應(yīng)具備怎樣的能力?
2020/7/17 8:57:06幾大市面主流性能測試工具測評
2020/7/17 8:52:11RPA機(jī)器人能夠快速響應(yīng)企業(yè)需求,是怎么做到的?
2020/7/17 8:48:05Bug可以真正消滅嗎?為什么?
2020/7/17 8:43:03軟件測試基本概念是怎么來的?軟件測試生命周期的形成歷經(jīng)了什么?
2020/7/16 9:11:10