自動化測試發展變革——第五期魅族技術開放日現場精彩回顧

壹佰案例發表於2016-09-27

9月24日,由魅族與msup聯合主辦的第五期魅族技術開放日“構建適合你的自動化測試體系”在深圳弈投咖啡舉行。魅族測試部技術開發組組長王照輝、原惠普中國自動化測試工程師高焰、騰訊架構平臺部質量工具體系負責人劉卓夫進行自動化測試的分享,與現場聽眾共同探討自動化框架的演進以及自動化測試發展過程中曾遇到的問題和解決方案。

《魅族自動化測試架構之路》 活動當天共分為3堂課程,首先由魅族測試部技術開發組組長王照輝對魅族測試框架、魅族自動化發展階段以及魅族ATS平臺進行介紹分享。

enter image description here

魅族測試部技術開發組組長王照輝

魅族測試的兩個主要框架 魅族主要使用UIAutomator和Monkey兩個框架進行自動化測試,兩個框架均為系統原生支援的框架,不需要對系統修改或安裝其他應用。 UIAutomator主要用於迴歸測試和冒煙測試,如驗證APP的功能是否正常,流暢度和待機耗電等情況,Monkey用於做長時間的壓測,如檢查7*24小時的壓測是否出現崩潰的情況。

魅族自動化測試發展的5個階段 魅族自動化測試第一階段通過守護APP+WEB的形式實現了人性化的報告輸出、錯誤的監控和與缺陷平臺的無縫對接,方便測試人員檢視與分享報告並簡便的追溯Bug來源。具體實現方式是由自動化指令碼提供操作步驟、期望、結果,然後由守護APP提供錄製、截圖以及對崩潰、ANR和Log的收集,最後到平臺上做結果展示,對於自動化過程中出現的異常與缺陷平臺資料相關聯。 第二階段通過一些稽核、預編譯這樣的操作來打包依賴並提高指令碼的穩定性。首先規範了整個編譯的描述檔案並打包依賴資源,由Gerrit伺服器進行程式碼的稽核,稽核通過後由Jenkins負責打包編譯並將JAR包上傳至平臺,執行時通過守護APP拉取這些指令碼,最終呼叫執行。 第三階段主要通過一些模組的配置來解決不同機型和版本之間的依賴問題,通過引數擴充套件指令碼的適應性,在這個階段之後,已經不需要在指令碼中做邏輯判斷來適應機型或是不同的韌體版本。 第四階段的解決方案,比較抽象的提出了“裝置池”的概念,實現了完全無人工干預的自動化。 第五階段提出了任務型別的概念,主要做專項的測試,如穩定性測試、效能測試、升級測試、安全測試等。能夠有效的補充UI自動化的不足,從不同角度檢查包括效能、流暢度和安全方面是否存在問題,進而在不同的維度闡述產品的質量。

魅族的ATS平臺 在自動化測試研究過程中,魅族的測試團隊遇到了各式各樣的問題,如最開始的初始條件和指令碼穩定性,後來需要集中資源,再後來需要專項測試,希望有一個統一測試的平臺解決此類問題,由此,魅族開發了ATS平臺。ATS平臺整合了韌體的UI自動化的測試幷包含了壓力、效能、安全等各方面的專項測試。 ATS平臺主要由線上列表、任務管理、報告檢視等功能組成,測試體系人員都可以通過平臺對一些特定的APP進行特定場景的測試,比如UI測試、穩定性測試和效能測試等等。 王照輝認為,一個比較理想的自動化,就像一個全自動的黑盒子,為上游提供介面、為下游產出有意義的報告。

《基於Cucumber的BDD的自動化測試平臺》 在王照輝的分享中,不斷提到UI測試的難點,而在本期技術開放日的第二場分享中,原惠普中國自動化測試工程師高焰帶來了針對UI自動化方面的分享,主要講解基於Cucumber的BDD的自動化測試平臺。

enter image description here

原惠普中國自動化測試工程師高焰

高焰提到,程式碼、用例、指令碼和測試資料的關係、維護等是自動化測試的幾大難點,除此以外,平臺越來越多、技術越來越多,每一個都要學,每一個都要去維護。 BDD現在對Cucumber的官方解釋是行為驅動開發,講師喜歡將其理解成業務驅動開發,它是站在業務的層面。Cucumber的自動化指令碼看起來像一段文字描述,維護相對容易。Cucumber分為技術和業務層,相互之間有對映關係,讓技術人員有更多的精力覆蓋業務點。 在講師的分享中,對Cucumber的特點、工作原理、能夠解決的問題以及應用案例等方面進行了講解,Cucumber平臺可以實現對測試指令碼、業務場景及功能點的集中化管理,使用中文來編寫指令碼易於維護和理解,並且可以降低後期指令碼的維護成本。

《現網撥測 -- 自動化測試後移實踐》 在高焰老師的分享之後,由騰訊架構平臺部質量工具體系負責人劉卓夫帶來了本期開放式的第三場分享:關於騰訊視訊直播業務的自動化測試實踐。

enter image description here

騰訊架構平臺部質量工具體系負責人劉卓夫

2016年,音視訊行業呈現爆發式的增長,劉老師所帶領的團隊需要從傳統儲存業務的測試快速過渡到音視訊業務。在應對挑戰的過程中,劉老師產生了一些新的思路,由此產生了本期開放日分享的主題《現網撥測 -- 自動化測試後移實踐》。 騰訊視訊的點播有一個內容分發系統,所有點播的片源會從這個分發系統逐級分發,全國都有接入點,所有媒體檔案都逐級分發到每一個接入點,我們也可以從就近的接入點做訪問。面對成千上萬臺現網裝置的撥測,先從全網排程系統裡面去拉取全網正在做服務的列表,以最新的列表作為測試的測試源。對於某一臺單機,我們也不是從一個結點去測,而是通過多個結點測試出現問題才認為是單機出了故障。 劉老師通過花屏、卡頓、VOIP等場景列舉了騰訊自動化測試的方法,整體設計思路分前臺和後臺兩個部分,前臺主要是通過Django和nginx、uwsgl和mysql來做。後臺通過執行器進行自動化測試,主要包括資源載入、資源分配、撥測邏輯和結果統計四個擴充套件點。

以上為本期魅族技術開放日講師分享的摘要內容,3位講師從自身對自動化測試的經歷與認知出發,解讀自動化測試的工具、方法和演進過程。這是魅族技術開放日的第五期,也是魅族與msup合作舉辦的第三次技術開放日活動。魅族與msup都希望能夠以開放的心態,讓更多人蔘與到技術分享的活動中來,融入技術大家庭,打造國內技術人員的交流分享平臺。 enter image description here

開放與分享逐漸成為國內技術開放日的主流心態,msup主辦的第5屆TOP100全球軟體案例研究峰會將於12月9日在北京國家會議中心舉行,目前已有Twitter、微博等國內外多家網際網路企業提交了年度案例。TOP100全球軟體案例研究峰會是是一場開放分享的盛會,網際網路從業者可自主提交軟體研發案例,入選後即可與近萬名參會者分享。msup希望通過開放的技術盛會發現更多的優秀網際網路研發案例,通過交流與分享,與技術從業者共同進步。

第五屆TOP100summit全球案例研究峰會案例徵集中,如果在您心目中有非常合適的演講人選或優秀的軟體研發案例,歡迎向組委會推薦。請發郵件至speaker@top100summit.com。

相關文章