大話Android自動化測試--金陽光自動化測試Android系列(1)--金陽光於2013年4月份

本文轉載來自:金陽光老師的csdn博客:http://blog.csdn.net/haorenmin2008

Android自動化測試框架和工具在四年多的發展日趨成熟。從五年前的第一代自動化架構演進到目前第四代(本系列講座第7篇後將詳細剖析第三代和第四代自動化框架)從以前最早谷歌推崇的monkey隨機測試工具到點觸流自動化工具monkeyrunner、MonkeyTalk;基於元素識別的自動化框架sikuli、seeTest、iTest、基於控件識別的Robotium、SL4A。這三種技術各有千秋,基本上現在做出的自動化框架都是整合或者修改了以上這些免費的自動化框架:比如中興通訊的EasyTest3.0(目前應用層自動化測試的先驅和王者,基本上可以對80%以上用例實現自動化,有很多自家的核心技術,比如遠程監控、一套腳本控制a b c三臺機器三方通話,來回切換,不需要人工干預,智能設置斷點,自動化下載版本、雙臺終端無線虛擬屏幕互相映射、腳本自動分配樣機…難怪去年虧損28億還沒有倒下)、華爲終端的自動化框架(據說是在風河公司自動化框架下自己在填坑,哎,世界500強的華爲人才都死絕了嗎?)、東舟軟件自動化SmartRobot(從以前A模式和B模式打Patch包,到現在三種技術完美整合,有時候小公司還是很牛逼的)、印度博思軟件的自動化框架(對monkeyrunner進行二次封裝,形成自己腳本語言,沒有什麼創新)、美國風河公司的:windtest managerment(這個太強大了,從底層驅動、芯片的自動化,對硬解碼、軟解碼自動化、包括上層的framework框架自動化,可以白盒自動化,也可以黑盒系統功能自動化)、包括目前出來的測試雲Itestin、騰訊無線的QQdriver自動化框架。都逃不出以上三種核心技術(這三種核心技術介紹會在第4篇和第5篇詳細剖析)

        自動化測試細分爲黑盒自動化測試和白盒自動化測試(第3篇會詳細介紹白盒自動化測試):我們熟知的壓力測試、可靠性測試、負載穩定性測試、功能性測試都屬於黑盒測試範疇;而白盒一般是單元測試、接口測試、持續的集成測試(也叫冒煙測試)、某系性能測試都可以用白盒測試來進行。因爲白盒測試要求測試工程師編碼能力較強,很多中小型公司無法真正落實和開展,據筆者瞭解也只有百度、企鵝、阿里真正花精力去做,雖然前期投入較大,但是中後期纔會日漸收益。

        自動化測試難點不在於一個操作流程和過程(也就是腳本能夠按照用例去運行),如果有一天你的自動化腳本能幫你解決手工問題,那麼你僅僅是達到了第一代自動化水準。因爲一個完整的自動化框架需要解決的問題至少有三:1.各種業務邏輯是否已正確實現2.各種業務約束是否正確實現3.各類特殊的數據是否能夠正確處理。聰明的同事一看就知道,需要增加驗證點,徹底解放人工去判斷。是的。以上說的三個自動化框架已經包含了這些功能。所以說市面上目前框架至少是第二代自動化框架以上。但是實際上測試複雜度遠遠超乎想象,比如目前我們部門項目app測試需求有:

     1)    內存是否泄漏?

     2)    穩定性是否過關

     3)    對系統和應用程序兼容性如何?

     4)    多程序,多進程交是否正常?

     5)    軟件的容錯機制如何?

     6)    數據的完整性、唯一性、正確性是否已經通過測試?

     7)    系統及數據的安全性是否已通過測試?

     8)    軟件的易用性是否滿足用戶的  需求…………………

       第二代自動化框架很多手段顯得力不從心,而且加上腳本移植問題、工作流程腳本共享、協同工作、生成報告等和工作流程相關的一系列問題,自動化框架部署和調整往往花時間比手工測試還要多一些,這些種種問題造成自動化框架無法普及和推廣。

       不管前途有多麼險惡,道路多麼曲折。引來無數高手和英雄共同模式和開展。建立適合自己公司的自動化框架。在衆多比較成功的經典的自動化框架面前,我們驚歎人類無窮無盡的智慧和毅力。

       在這些成功的自動化框架面前(第6講會詳細介紹經典的企業級自動化框架)。這些專家已經解決了智能手機80%以上的測試用例,儘管技術上已經解決,但是推廣運用自動化代替人工很多公司轉化測試用例不到30%(原因會在後續講座剖析)。基本上做到的由:基本功能、菜單遍歷、壓力、性能、可靠性、併發測試、隨機測試等。

        這裏分享一個用自動化測試取代人工的設想:

假設6個組,每個組5個人,每個組不同項目,每個項目得進行兩個全面測試版本和三個迴歸測試版本。一個全面測試版本得7個工作日,一個迴歸測試版本5個工作日。

       1.版本測試前每個組必須得做預測試(開發自測也算)

       2.每個組的全面測試版本(前兩個)必須得做壓力測試:比如app壓力、通話壓力

       3.每個組會測試出許許多多概率性問題(包括待跟蹤),無法在本次版本中復現(操作次數大於30次纔可能復現)

       4.每個組無法每天晚上或者每個週末都加班

       5.忘記抓log和找不到開發想要的路徑和信息

        總結:自動化測試的優點是把每天需要重複勞動的操作變成機器自動運行,把測試員從繁重勞動中解脫出來,去做一些經驗性操作和複雜操作。

        這次技術分享就到這裏,請隨時關注下一篇:android自動化測試預備知識---基於控件核心技術探討。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章