專訪Testin云測CTO徐琨:完善移動App的誕生記

>>>  創業先鋒 眾人拾柴火焰高  >>> 簡體     傳統


徐琨,Testin云測CTO。國內最早移動互聯網公司PICA創始員工,曾任PICA副總裁;領先的HTML5游戲開發公司山水地信息創始人。作為千萬人在線的即時通信系統架構師,領導開發了過千萬用戶的移動社交平臺。


云測,傳統App測試的革新


CSDN:請先介紹一下自己和目前所做的工作


徐琨:我們做的是一個服務與App質量的云測試平臺,簡單來說,由于手機型號,操作系統的分裂,帶來了很多適配問題,同時也帶來各種各樣意想不到的崩潰和閃退。而開發者不可能把市面上所有手機都買來,就算能買那么多手機也沒有那么多人力來測試。所以我們就想,是不是可以做一個云端的測試服務,來替所有開發者購買所有的手機,來提供盡可能多的測試能力,開發者只需要將App提交到我們的平臺,24小時內,就能得到一個全方位多維度的測試報告,幫助開發者發現其App存在的各種適配兼容問題、各種崩潰和閃退的問題定位。我們正在為這個目標努力,最終我們希望能建立這樣一種云服務平臺,服務所有的開發者,讓開發者專心于他的核心業務的開發上,而測試這個事情,放心地交給我們就好了。


CSDN:你是怎么看待移動App進行云測試的,相比較傳統開發者測試App的方式,兩種測試方式之間有什么相同和不同之處?


徐琨:傳統開發者測試App的方式,通常是自己購買手機,自己雇用測試人員,或者自己的開發兼產品測試,在有限的手機型號中進行時間非常有限的測試,由于移動互聯網時代項目迭代快,導致測試的時間短、任務重,所以經常出現的狀況就是,只要功能基本沒有問題,就算知道可能有bug,也會直就發布了。


而云測試具備一些傳統測試無法比擬的特性:


  • 完美解決移動終端碎片化問題。不需要開發者再去購買測試設備,云測試往往會進行周期性的測試設備補充和更新,節省了傳統測試中購買、部署測試終端的費用。

  • 傳統測試時,公司往往需要投入大量人力,通宵寫測試用例 。而云測,開發者甚至不需要自己寫腳本,我們會用自動化的腳本錄制工具,根據開發者要求的測試流程來錄制腳本,節省了人力成本,縮短了測試時間。

  • 通過云測試服務平臺,開發者可以在全球任何地點、任何時間提交測試任務到云測試平臺,不受時間和地域的限制。另外Testin提供的是真機測試服務,而真機是稀缺資源,每部終端同時只能測試一款應用,我們也會有一整套機制來對終端和測試任務進行自動調度,以滿足廣大開發者對于真機的測試需求,最大限度的提高資源利用率和測試效率。

  • 云測試平臺都會使用大量的自動化測試技術, 控制不同系統、不同版本、不同型號的終端,使其可以自動執行測試任務,而不需要人工干預。這樣可以做到同時在成百上千部真實終端上同時自動運行測試腳本,極大的節省了測試時間,免去了測試者重復枯燥的勞作。


CSDN:目前市場上移動App測試有很多,如百度移動云測試中心等,Testin云測在這一領域有哪些核心競爭力呢?


徐琨:現在提供自動化測試服務的企業,Testin云測是進入最早也是規模最大的一家,由于進入較早,積累了大量的自動化測試經驗,也根據開發者的測試需求,提供了一系列的解決方案:


  • 針對應用兼容性問題,提供了標準兼容測試;

  • 針對不同應用的自定義測試流程,提供了深度兼容測試;

  • 針對iOS市場的火爆,推出的iOS測試,也是目前市場上唯一提供iOS測試的企業;

  • 而應用發布后的仍然存在的影響用戶使用的問題,我們提供了全球最專業的崩潰分析服務;

  • 針對開發者需要了解真實用戶體驗的需求,推出的用戶體驗測試;

  • 針對進軍海外的應用,部署的海外測試專區。

  • 最后,Testin云測是世界上手機保有量最大的云測試平臺。


同時云測也是一個開發者之間交流和學習的平臺,大家可以互相切磋,共同進步。


CSDN:我們都知道手機型號與屏幕尺寸過多,App適配與測試的工作量相當大,而且需要投入大量的人力和財力。那么Tsetin云測是通過哪些技術解決這些問題的呢?


徐琨:云測累計為開發者提供了超過7000萬次測試,在大量的測試過程中,我們針對App適配的自動化測試的不同問題摸索出一套解決辦法。


  • 針對應用測試,云測使用控件識別方式,自動識別和查找到應用中的控件,用于生成測試腳本和在不同的終端上運行腳本。這種方式最大的好處就是可以做到完全支持不同分辨率和屏幕尺寸的終端,確保腳本的通用性;同時可以對測試結果進行判定。使用到的具體技術,包括Android JUNIT、Robotium, UIAutomator等等。

  • 針對游戲測試,像大部分手游這種非控件的,依賴繪圖的界面,可以采用坐標來記錄位置,而為了解決不同終端不同分辨率的適配問題,云測有一套自己的腳本錄制工具(itestin),能夠去適配不同屏幕的比例,適應不同分辨率上的操作。不僅如此,云測也根據游戲引擎開發了測試插件,例如我們針對cocos2d-x引擎開發了cocos2d-x插件,能夠獲取游戲對象信息,比如大小、位置、文字、ID、顯示層級等,通過這種方法,做到類似應用獲取控件信息的效果,實現了手游的完美自動化測試。


以上這些都不需要開發者自己來做,云測會幫助開發者完成腳本錄制、應用提交,甚至測試完成后的錯誤定位分析。


CSDN:Android作為應用的一個巨大平臺,基于Android的手機品牌眾多、系統版本眾多等等,簡單的來說就是碎片化嚴重,那么Testin云測在測試過程中又涉及到什么樣的技術可以與我們分享下?


徐琨:目前安卓市場所有的品牌、型號和系統版本在云測幾乎都能找到,覆蓋了市場上80%的終端,其中主流終端全部覆蓋,Testin云測在測試終端上投入比較多,為的就是解決安卓終端碎片化嚴重的問題。


在云測平臺的一臺測試終端可以為多個開發者、多款App提供服務,我們對終端的測試環境做了統一處理,包括終端之間網絡屏蔽,保障每臺終端有獨立的網絡覆蓋,以及終端執行任務時的整體調度優化,保障這些終端可以最高效的完成眾多開發者的測試任務。


我們是通過幾個層面來解決在自動化測試過程中遇到的碎片化問題:


  • 一是通過研究不同的Android版本底層和系統API,針對不同的版本制定不同的技術方案,比如說對4.1以上版本的終端,我們使用UIAutomator編寫了一個自動化執行的腳本,增加了終端的可維護性;

  • 二是通過和終端廠商的合作,獲取一些廠商內部的接口;

  • 三是通過和芯片廠商的合作,針對不同的芯片方案,采用不同的API來獲取底層數據;

  • 四是針對特殊終端制定特殊的策略,因為我們有很多的真實終端,這點我們是可以做到的。


CSDN:App可以分為應用App和游戲App,對于這兩塊的測試是否會有不同的側重點?具體是什么呢?用戶對于應用App和游戲App的使用習慣也是不同的,可以談一下對于應用開發者與手游開發者在進行開發過程中的建議?


徐琨:應用App的測試相對來說對于廣度要求更高,應用App很多時候對于手機本身能力的調用做了很多,比如GPS、照相機、本地文件等等。同時應用App對于互動的要求很高,通常需要很復雜的場景才能完成測試。建議應用開發者對一些功能模塊,尤其是需要調用手機能力較多的功能,如拍照等,經常做兼容性測試,這樣首先確保這些功能模塊本身在不同設備上是可用的,在最后集成測試時也會少很多兼容性的問題。


而游戲App的測試更偏重功能和可玩性,對于測試的深度要求較高,很多功能需要特定條件才能觸發,比如有些功能只有高等級用戶才能使用。目前大部分多手游開發都使用了比較成熟的游戲引擎開發,兼容性問題其實比應用要少一些。我們建議手游開發者可以在條件成熟的時候(比如公測階段)多安排一些體驗測試。


而使用習慣方面應用的操作多基于獨立的點擊,游戲的前后操作之間連貫性較強,在測試過程中,對腳本的要求也會比較高。


測試,只為更好的綻放


CSDN:面對現在很多App的粗制濫造、同質化嚴重(如這兩年的卡牌游戲)等等,優質的App變得屈指可數。對此你是怎么看的?App又該如何做到優質、突破呢?


徐琨:現在的App獲取用戶的成本越來越高,而用戶的口味也變得越來越高,以前是給什么用戶就用什么,現在是用戶挑著用,我們可以看到目前用戶量最大的應用多是上線好幾年的應用,新的App如果不能有自己的特點,并且有足夠的質量,很難再冒頭。只從測試的角度出發,我們發現手機適配率越高的,崩潰率越低的App,往往用戶量也越大,所以我們的建議是,如果想在現在的市場上有所突破,需要盡可能把功能做少做精,盡可能做最少的功能點,要么沒有這個功能,一旦做就做到最好。


CSDN:崩潰、閃退等異常問題可以說是App的致命之處,而對于手游開發者來說,游戲整體性能必須得到保障。游戲性能才是最終用戶體驗的基礎,據了解,Testin最近推出了崩潰大師,那么其與傳統的APM應用性能分析有什么不同之處?又是通過哪些技術檢測游戲本身的性能病癥呢?


徐琨:軟件質量是個大的話題,產品的體驗、可靠性、安全性、性能都屬于這個范疇。對于App而言,崩潰是最嚴重的質量問題。Testin就從這個出發點去幫助開發者提高App質量,這點和傳統的APM是最大的區別。


對于移動應用和游戲,Testin崩潰大師通過不同的技術手段來解決它們出現的崩潰。當用戶在使用產品發生崩潰時,Testin崩潰大師SDK會捕獲到崩潰的堆棧線程、App版本、錯誤頁面、CPU、內存使用情況、設備名字、操作系統、運行Log等,開發者則可以通過這些數據來分析錯誤發生原因。對于游戲引擎,無非是引擎層錯誤(一般C++代碼導致),還有腳本層錯誤。崩潰大師可以抓到不同語言,如Java、Objective-C、C++、C#、Js、Lua等語言發生的異常。


CSDN:從您的角度來看,游戲開發者在進行用戶體驗分析的時候都需要考慮到哪些維度?Testin云測和崩潰大師在這一塊是否會給出具體的建議呢?同時,Testin云測和崩潰大師在進行分析的時候不可避免的會收集用戶數據,那么用戶數據的安全性會不會受到威脅呢?


徐琨:真機測試是在Testin提供的測試機上運行的,測試機每天要跑上百個App測試,在每次測試之前都會做數據清理,還原成手機原始的測試環境。而測試結果與錯誤定位只會由終端輸出后報給最終查看測試報告的人。


做一款好玩的游戲,先決條件是一款“可玩”的游戲。如果您的游戲經常崩潰,那無論如何用戶也不會買賬。所以我們認為:無論從軟件質量或產品用戶體驗角度來說,崩潰是頭等問題。在QA的術語中,崩潰就是致命級別的Bug。


Testin崩潰大師只會上報能夠幫助開發者定位和解決問題的數據,一切和崩潰信息無關的數據,我們的SDK都不會觸碰。這一點開發者也可以通過實地抓包來進行驗證,我們歡迎任何形式的舉證。


移動App和云測的未來


CSDN:現下物聯網是一大熱門,它會成為移動App的另一大戰場,您是如何看帶物聯網的發展,是否會帶來新一輪的技術革新?


徐琨:物聯網其實是移動互聯網的一個延伸,就像手機加上聯網功能,延展了我們人類的能力,物聯網是互聯網將載體拓展到除手機外更廣闊的天地里,我相信這會是一個更大的革命,10年前沒有人會想到今天我們每個人會對著一塊玻璃消耗掉數以萬億小時,而未來,互聯網將會無處不在,今天我們所有的想象,都會證明其實我們還是太保守。


CSDN:可穿戴、車載、智能家具……都已經或者將要出現在我們身邊,移動App也將在這些領域現身,所以在最后為我們暢想一下移動App和Testin云測的未來。


徐琨:無論科技如何發展,最終都會需要一個載體去承載服務,在PC時代,我們用的是software,在互聯網時代,我們用的是Web,在移動互聯網時代,我們用的是App,而無論是software,還是Web,或者是App,保證其可用是其存在的基本的條件,也就是我們通常所說的測試服務,而這正是Testin云測一直在努力提供的服務,所以我們相信,未來互聯網的載體也許不再是App了,但測試服務的需求和市場會更加廣大。




CSDN 2015-08-23 08:44:23

[新一篇] 優秀代碼所具備的5大品質你的代碼呢

[舊一篇] 專欄 功能與用戶體驗哪個更重要?
回頂部
寫評論


評論集


暫無評論。

稱謂:

内容:

驗證:


返回列表