移動應用的左膀右臂:持續集成與自動化測試

本文轉自微信號EAWorld。掃描下方二維碼,關注成功後,回覆“普元方法+”,將會獲得熱門課堂免費學習機會!

本文目錄:
一、爲什麼要做移動應用的持續集成與自動化測試
二、移動應用持續集成與自動化測試的四大挑戰
三、移動應用持續集成與自動化測試的最佳實踐
四、總結

一、爲什麼要做移動應用的持續集成與自動化測試

持續集成與自動化測試是移動應用又快又穩發展的催化劑

移動應用需要做持續集成與自動化測試嗎?我想告訴大家的是,這事非常值得做。爲什麼呢?

近5年來移動業務快速發展,市場也日趨成熟,但是移動應用的開發在大部分企業裏還是採用傳統的開發模式,完全靠手工完成開發-編譯-打包-測試等一系列軟件研發過程,過程重複且單一,人會疲勞,工作容易出錯,無法實現敏捷研發,更無法做到快速發佈,雖提出版本快速迭代目標,但未真正達到預期。

引入持續集成與自動化測試,它利用空閒機器資源優勢,可以將移動應用研發過程中的大部分工作實現自動化,釋放更多的人力投入到更有價值的工作當中去,持續集成與自動化測試纔是移動應用又快又穩發展的催化劑。

圖片描述

持續集成和自動化測試是加快移動應用快速發佈的有效手段

與傳統企業應用相比,移動應用是企業應用生態的有益補充,日趨得到重視,移動本身特點導致移動應用開發過程中測試迴歸週期長,質量成本高。

但由於投入的不足,移動應用發佈週期長,響應市場慢,質量低,用戶體驗較差。持續集成與自動化測試支持快速回歸,縮短週期,自動化執行測試,穩定高效,持續集成和自動化測試組合拳是加快移動應用快速上線的有效手段,現在引入也正當時。

圖片描述

持續集成與自動化測試是移動應用測試發展的必然

從測試行業發展的角度來看,持續集成與自動化測試是移動應用測試發展的必然:

信息科技高速發展,企業的本土化信息也趨於國際化,削減企業營銷成本,提升企業形象,優化用戶體驗,基於移動的信息展現也在影響着企業的品牌形象,各企業開始對移動信息化平臺的質量提出更高的要求,並開始重視質量、看重測試;

在移動互聯時代,移動應用作爲一種新的移動終端營銷服務,大部分企業都通過移動信息化來快速響應市場,要求公司移動產品的更新和發佈能夠更快更穩定;

在測試行業,持續集成與自動化測試不再是新概念,而且持續集成與自動化測試在很多企業內部已開展實施,大部分軟件巨頭還建立了自己的自動化測試體系與平臺,針對移動應用持續集成與自動化測試的工具相繼推出,有開源的也有商業的,有條件的企業也正在組織預研,並嘗試落地;

在移動應用質量越來越受重視的今天,測試團隊的整體能力、測試效率和個人發展等方面也開始得到領導的特別關心,希望測試團隊在能在移動應用的持續集成與自動化測試方面實現突破,推動移動應用研發的創新。

圖片描述

持續集成和自動化測試是天生的一對

要真正實現移動應用的持續發佈,開展持續集成、持續部署和持續測試是先決條件,在無人值守的持續測試中,持續集成和自動化測試是絕配,是天生的一對,它們相互依託,在移動應用的質量保證中擔任重要角色。

圖片描述

二、移動應用持續集成與自動化測試的四大挑戰

挑戰一:要支持多技術、多平臺,工具選型困難

對於好多企業來說,即使有了傳統應用測試經驗的積累,要做好移動應用的持續集成與自動化測試,也不是一件很容易的事情,會面臨着諸多挑戰。

圖片描述

要面臨着着針對不同移動技術的持續集成,除了傳統技術如Native、Hybrid和Web,還有新興的技術如驅動原生跨平臺技術(Primeton Mobile),針對不同技術的持續集成該怎麼做?

持續集成和自動化測試如何支持多平臺,包括iOS、Android等,我們需要爲每個平臺部署一套,還是一套支持過個平臺,具體該如何做?

要做持續集成和自動化測試,工具是不可缺少的,現在市場上測試工具也層出不窮,但成熟度、穩定性方面還需要考究,是否同步移動技術發展、是否含有技術支持,要從衆多的工具中選擇滿足自己應用的自動化測試要求的工具也不那麼簡單。

挑戰二:團隊規模小,自動化測試落地難

圖片描述

就大多數企業的移動發展來看,移動應用相對於傳統應用規模較小,麻雀雖小,五臟俱全,也需要做功能測試、服務接口測試、兼容性測試、安全測試、性能測試和用戶體驗測試等,測試任務也並不少,在有限測試投入的情況,自動化測試落地就比較難。

挑戰三:測試並行執行互斥,測試數據難以管理

圖片描述

在移動應用的測試工作中,兼容性測試也是重中之重。

自動化測試需要在不同設備中執行,測試用例需要爲不同平臺準備一份嗎?測試用例該怎麼維護?測試數據又該如何管理?

根據行業調查結果顯示,並行測試在移動測試執行中是一個基本的要求,大部分企業不可能爲每個平臺準備一個獨立運行的後臺環境,

在測試資源共享的背景下,要確保自動化測試支持多平臺並行執行,隨時並不限次數的執行,對測試數據的組織與管理也是一個挑戰。

挑戰四:測試的投入產出,收益平衡難以把握

圖片描述

少量的投入產生較大的回報,這是每個人都樂意見到的事情。在測試過程中這是領導的要求,也是測試團隊努力的目標。

理想很豐滿,現實卻很骨感。

測試是無止境的,要做好持續集成與自動化測試,測試策略如何制定?測試人員如何分工?如何把握測試這個度?測試的投入和收益比較難以把握。

三、移動應用持續集成與自動化測試的最佳實踐

建立全面的持續測試管理體系

總的來說,移動應用引入持續集成與自動化測試要取得好的效果,僅僅依靠工具還是不夠的,建立一套全面的持續測試管理體系作爲支撐也很有必要,就我們的經驗來講,主要可以從測試體系、平臺與工具和組織保障三個維度入手,有計劃有步驟的開展實施,進行系統化建設。

圖片描述

首先,建立適合自身的測試體系:強調領導作用,制訂質量方針;制定測試過程與規範;制定測試標準,準備過程文檔模板;在研發團隊內部進行宣導,由質量部門監督實施。

其次,選擇適合自身發展的測試平臺與工具:引入持續集成與自動化測試平臺,搭建測試管理系統,對測試需求、測試計劃、測試環境、產品缺陷等管理;

再次,提供強有力的組織保障:提高質量是整個研發團隊的一致目標,我們要從團隊建設、技術能力、測試策略方法、監控度量技術等方面進行保障,並在每個項目的迭代種針對度量結果進行分析、總結,推動測試測試體系的不斷改進的良性循環。

普元移動應用持續集成技術方案

從工具維度來講,移動應用的持續集成我們採用的是普元的持續集成平臺。普元的持續集成平臺支持以項目爲單元進行持續集成管理,以任務流驅動持續集成任務的完成;平臺支持分佈式部署,支持持續集成任務的分佈式執行;平臺支持持續集成任務機的管理,可以完全勝任採用現有移動技術開發的移動應用的持續集成工作。

圖片描述

普元移動應用自動化測試技術方案

移動應用的自動化測試引入的是普元的統一測試平臺產品,這款產品採用行業內典型的層次化體系架構,支持採用圖形化的測試用例開發,入手容易;通過組件化方式構件測試用例,後期維護簡單;不僅支持移動應用前端UI的自動化測試還支持後臺接口的自動化測試,通過選件的擴展還能滿足更多的技術測試要求。

統一測試平臺與持續集成平臺無縫對接,通過持續集成平臺能力,則可以實現無人值守的對移動應用進行自動化的持續驗證。

圖片描述

針對移動應用的自動化測試,引入普元的統一測試平臺,選擇移動測試選件MobileTest,使用產品自帶的移動技術組件,就能開發一套基於多平臺的自動化測試用例,在裝有Android或iOS系統的手機、平板等設備上執行。

圖片描述

自動化測試設計原則與實施方法論

有了工具,在自動化測試實施的時候還要遵守一些自動化測試的設計原則與實施方法論,設計原則主要把握四個方面:易實現性、易管理性、易維護性與易定位性。

圖片描述

在測試實施過程中,無論被測對象是啥,我們通過選件提供自動化測試能力,通過組件封裝屏蔽技術細節,測試用例採用統一的實現方式,而且低學習曲線;

測試用例作爲軟件資產進行規劃及管理,測試用例實現與開發代碼的統一版本控制;測試用例資源的自包含,技術和業務進行分離,降低用例的耦合度,測試數據統一規劃,提高測試用例的可維護性;用例設計粒度適中,降低邏輯複雜度,增加測試斷言,輔以截圖、日誌等提高用例執行失敗的易定位性。

移動自動化測試用例開發流程化與標準化

在自動化測試設計原則和實施方法論的指導下,我們按照統一的流程與標準實現移動應用的自動化測試用例,並積累和沉澱測試知識庫。

圖片描述

應用、數據及用例實行版本化管理

測試數據的管理在移動應用的自動化測試中也比較複雜,因此在實施自動化測試前就要根據業務進行數據分析,根據被測對象的粒度及關係建立對應的數據模型,可以分爲基礎數據、項目數據、功能數據和用例數據,基準數據在自動化測試執行前由持續集成任務實現初始化或恢復,其他測試數據則可以在自動化測試執行過程中準備。

圖片描述

測試基準數據集
基準測試數據環境是移動應用系統正常使用的前提,必須先恢復環境,才能繼續做接下來的測試數據準備工作。

項目測試數據集
項目測試數據需要從版本管理工具中提取出來,通過腳本或者代碼的形式部署到測試環境中,爲模塊的正常執行構造條件。

功能測試數據集
功能模塊測試用例在執行前,先在測試環境進行功能測試數據集的發佈,爲功能模塊的測試用例執行提供必要前提。

測試用例數據集
所有的數據環境和功能模塊準備完畢後,可以執行用例自動化測試,測試中使用用例數據集。

在實施移動應用的持續集成與自動化測試項目時,要達到不限次數並且是無人值守對升級版本持續驗證的目標,我們必須對應用、用例和數據統一實現版本化管理。

制定合理的自動化測試策略,測試收益最大化

圖片描述

建立了體系,選擇了工具,面對移動應用的持續集成與自動化測試,該從哪裏入手?

我們需要確定範圍,制定策略,以穩定功能優先作爲自動化測試實施對象,像一些底層接口、關鍵集成場景、UI常用功能等,我們可以採用由點及面的方式展開,發揮自動化測試的執行優勢,爭取獲得測試收益最大化。

建立金字塔層級結構的自動化測試團隊

工具再完備,體系再好,沒有人也是不行的。真正實施持續集成與自動化測試的主體還是人,測試人員匱乏在移動應用項目團隊中比較常見。

根據我們的經驗,按照金字塔層級結構建立起的自動化測試團隊,可以充分發揮團隊力量。在這樣的團隊裏,通過建立導師機制,讓每個測試團隊成員得到成長,形成個人的滿意感和歸屬感。

圖片描述

四、總結

簡單總結一下,移動應用持續集成與自動化測試的最佳實踐是通過持續集成、持續部署和持續測試,實現無人工值守對版本的持續驗證。

圖片描述

依靠普元移動測試盒子,移動應用的持續集成與自動化測試落地也不再是件難事。

圖片描述

關於作者
王俊其
普元軟件產品部統一測試平臺產品經理,十餘年的開發與測試工作經驗,一直專注於持續集成與自動化測試領域技術的研究,帶領團隊成功實施多個有關金融、保險、證券等客戶的持續集成與自動化測試項目,現擔任普元統一測試平臺產品經理,全面負責測試產品研發、售前諮詢、項目實施等工作。

圖片描述

關於EAWorld
微服務,DevOps,元數據,企業架構原創技術分享,EAii(Enterprise Architecture Innovation Institute)企業架構創新研究院旗下官方微信公衆號。

掃描下方二維碼,關注成功後,回覆“普元方法+”,將會獲得熱門課堂免費學習機會!
微信號:EAWorld,長按二維碼關注。

圖片描述

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