使用 Espresso 實現完整覆蓋的功能測試

發表于:2017-04-20來源:Ohmer作者:Ohmer點擊數: 標簽:功能測試Espresso
對于基于 UI 的功能測試的需求其實一直存在,理由其實很簡單,不想一直讓人去做重復機械的事情,而且可靠性完全是靠人力的堆積產生。然而現在行業大多數公司的功能測試工作依然

對于基于 UI 的功能測試需求其實一直存在,理由其實很簡單,不想一直讓人去做重復機械的事情,而且可靠性完全是靠人力的堆積產生。然而現在行業大多數公司的功能測試工作依然主要是依靠人工來完成,從我們公司的實踐來看我覺得有幾個方面的因素的影響。

  • 之前的 UI 測試框架的表現差強人意。就拿我們公司來說,其實測試部門在去年已經實現并推廣一套主要基于 UIAutomator 實現的測試平臺,但由于對復雜功能的處理能力較弱,基本只能實現部分功能的檢測。這樣導致的一個結果是,并不能有效減少測試的工作,而只能增加測試的額外工作,因此測試編寫測試代碼的積極性不是很高。同時由于測試代碼的可重復利用性差,導致測試腳本的編寫成本和維護成本偏高,實踐中大家只用 UI 測試跑一些主流程業務,覆蓋范圍非常有限。

  • 部分測試人員的編碼能力不是很強。由于大部分測試人員可能并沒有過多的開發經驗,所以在編寫測試代碼時并不能很順暢的完成自己想要的效果,這樣也會導致測試代碼項目的推廣阻力會比較大。

  • 對于怎么編寫 UI 測試,并沒有一個被大家接受認可的最佳實踐。雖然我用 Espresso 實現了一套完整的覆蓋方案,但是其實我用的方法和 Google 官方所建議的寫法還是有蠻多差異的。

對比上面的幾個因素,我覺得更為主要的原因還是在于現有測試平臺對于復雜邏輯處理的能力不夠,導致對于 UI 測試的依賴性僅僅局限在安裝測試和兼容性測試,只能用來跑一些主流程的東西,對于大多數功能還只能依靠人工的方式完成。

Espresso

Espresso 是 Google 在 2013 年推出的 Android UI 測試的開源框架。其實之前我們團隊也多多少少對 Espresso 有過一些嘗試,但遺憾的是都沒有深入的進行實踐。一季度我們將 UI 測試作為一個很明確的坑來填以后,發現 Espresso 已經很強大了,經過實踐下來我們發現用 Espresso 實現 80-90% 的功能性覆蓋測試基本沒有什么問題。而且 Espresso 的測試腳本編寫起來非常簡單,如果測試和開發共同來完成測試代碼的編寫,能夠有效替代測試大量的重復機械的工作。

下面我就來描述一下我們是怎么用 Espresso 來實現這一樣一個完整覆蓋的功能性測試平臺。這篇文章會講到一些在使用 Espresso 中遇到的坑,但是并不會在 How-to 的事情上面花太多的精力,如果你對 Espresso 還不是很了解的話,建議先去 

原文轉自:http://ohmerhe.com/2017/04/18/espresso_huge_ui_test/

...
国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97