徐琨,Testin云測CTO。國內(nèi)最早移動互聯(lián)網(wǎng)公司PICA創(chuàng)始員工,曾任PICA副總裁;領(lǐng)先的HTML5游戲開發(fā)公司山水地信息創(chuàng)始人。作為千萬人在線的即時通信系統(tǒng)架構(gòu)師,領(lǐng)導(dǎo)開發(fā)了過千萬用戶的移動社交平臺。
云測,傳統(tǒng)App測試的革新
CSDN:請先介紹一下自己和目前所做的工作
徐琨:我們做的是一個服務(wù)與App質(zhì)量的云測試平臺,簡單來說,由于手機(jī)型號,操作系統(tǒng)的分裂,帶來了很多適配問題,同時也帶來各種各樣意想不到的崩潰和閃退。而開發(fā)者不可能把市面上所有手機(jī)都買來,就算能買那么多手機(jī)也沒有那么多人力來測試。所以我們就想,是不是可以做一個云端的測試服務(wù),來替所有開發(fā)者購買所有的手機(jī),來提供盡可能多的測試能力,開發(fā)者只需要將App提交到我們的平臺,24小時內(nèi),就能得到一個全方位多維度的測試報告,幫助開發(fā)者發(fā)現(xiàn)其App存在的各種適配兼容問題、各種崩潰和閃退的問題定位。我們正在為這個目標(biāo)努力,最終我們希望能建立這樣一種云服務(wù)平臺,服務(wù)所有的開發(fā)者,讓開發(fā)者專心于他的核心業(yè)務(wù)的開發(fā)上,而測試這個事情,放心地交給我們就好了。
CSDN:你是怎么看待移動App進(jìn)行云測試的,相比較傳統(tǒng)開發(fā)者測試App的方式,兩種測試方式之間有什么相同和不同之處?
徐琨:傳統(tǒng)開發(fā)者測試App的方式,通常是自己購買手機(jī),自己雇用測試人員,或者自己的開發(fā)兼產(chǎn)品測試,在有限的手機(jī)型號中進(jìn)行時間非常有限的測試,由于移動互聯(lián)網(wǎng)時代項(xiàng)目迭代快,導(dǎo)致測試的時間短、任務(wù)重,所以經(jīng)常出現(xiàn)的狀況就是,只要功能基本沒有問題,就算知道可能有bug,也會直就發(fā)布了。
而云測試具備一些傳統(tǒng)測試無法比擬的特性:
- 完美解決移動終端碎片化問題。不需要開發(fā)者再去購買測試設(shè)備,云測試往往會進(jìn)行周期性的測試設(shè)備補(bǔ)充和更新,節(jié)省了傳統(tǒng)測試中購買、部署測試終端的費(fèi)用。
- 傳統(tǒng)測試時,公司往往需要投入大量人力,通宵寫測試用例 。而云測,開發(fā)者甚至不需要自己寫腳本,我們會用自動化的腳本錄制工具,根據(jù)開發(fā)者要求的測試流程來錄制腳本,節(jié)省了人力成本,縮短了測試時間。
- 通過云測試服務(wù)平臺,開發(fā)者可以在全球任何地點(diǎn)、任何時間提交測試任務(wù)到云測試平臺,不受時間和地域的限制。另外Testin提供的是真機(jī)測試服務(wù),而真機(jī)是稀缺資源,每部終端同時只能測試一款應(yīng)用,我們也會有一整套機(jī)制來對終端和測試任務(wù)進(jìn)行自動調(diào)度,以滿足廣大開發(fā)者對于真機(jī)的測試需求,最大限度的提高資源利用率和測試效率。
- 云測試平臺都會使用大量的自動化測試技術(shù), 控制不同系統(tǒng)、不同版本、不同型號的終端,使其可以自動執(zhí)行測試任務(wù),而不需要人工干預(yù)。這樣可以做到同時在成百上千部真實(shí)終端上同時自動運(yùn)行測試腳本,極大的節(jié)省了測試時間,免去了測試者重復(fù)枯燥的勞作。
CSDN:目前市場上移動App測試有很多,如百度移動云測試中心等,Testin云測在這一領(lǐng)域有哪些核心競爭力呢?
徐琨:現(xiàn)在提供自動化測試服務(wù)的企業(yè),Testin云測是進(jìn)入最早也是規(guī)模最大的一家,由于進(jìn)入較早,積累了大量的自動化測試經(jīng)驗(yàn),也根據(jù)開發(fā)者的測試需求,提供了一系列的解決方案:
- 針對應(yīng)用兼容性問題,提供了標(biāo)準(zhǔn)兼容測試;
- 針對不同應(yīng)用的自定義測試流程,提供了深度兼容測試;
- 針對iOS市場的火爆,推出的iOS測試,也是目前市場上唯一提供iOS測試的企業(yè);
- 而應(yīng)用發(fā)布后的仍然存在的影響用戶使用的問題,我們提供了全球最專業(yè)的崩潰分析服務(wù);
- 針對開發(fā)者需要了解真實(shí)用戶體驗(yàn)的需求,推出的用戶體驗(yàn)測試;
- 針對進(jìn)軍海外的應(yīng)用,部署的海外測試專區(qū)。
- 最后,Testin云測是世界上手機(jī)保有量最大的云測試平臺。
同時云測也是一個開發(fā)者之間交流和學(xué)習(xí)的平臺,大家可以互相切磋,共同進(jìn)步。
CSDN:我們都知道手機(jī)型號與屏幕尺寸過多,App適配與測試的工作量相當(dāng)大,而且需要投入大量的人力和財(cái)力。那么Tsetin云測是通過哪些技術(shù)解決這些問題的呢?
徐琨:云測累計(jì)為開發(fā)者提供了超過7000萬次測試,在大量的測試過程中,我們針對App適配的自動化測試的不同問題摸索出一套解決辦法。
- 針對應(yīng)用測試,云測使用控件識別方式,自動識別和查找到應(yīng)用中的控件,用于生成測試腳本和在不同的終端上運(yùn)行腳本。這種方式最大的好處就是可以做到完全支持不同分辨率和屏幕尺寸的終端,確保腳本的通用性;同時可以對測試結(jié)果進(jìn)行判定。使用到的具體技術(shù),包括Android JUNIT、Robotium, UIAutomator等等。
- 針對游戲測試,像大部分手游這種非控件的,依賴?yán)L圖的界面,可以采用坐標(biāo)來記錄位置,而為了解決不同終端不同分辨率的適配問題,云測有一套自己的腳本錄制工具(itestin),能夠去適配不同屏幕的比例,適應(yīng)不同分辨率上的操作。不僅如此,云測也根據(jù)游戲引擎開發(fā)了測試插件,例如我們針對cocos2d-x引擎開發(fā)了cocos2d-x插件,能夠獲取游戲?qū)ο笮畔,比如大小、位置、文字、ID、顯示層級等,通過這種方法,做到類似應(yīng)用獲取控件信息的效果,實(shí)現(xiàn)了手游的完美自動化測試。
以上這些都不需要開發(fā)者自己來做,云測會幫助開發(fā)者完成腳本錄制、應(yīng)用提交,甚至測試完成后的錯誤定位分析。
CSDN:Android作為應(yīng)用的一個巨大平臺,基于Android的手機(jī)品牌眾多、系統(tǒng)版本眾多等等,簡單的來說就是碎片化嚴(yán)重,那么Testin云測在測試過程中又涉及到什么樣的技術(shù)可以與我們分享下?
徐琨:目前安卓市場所有的品牌、型號和系統(tǒng)版本在云測幾乎都能找到,覆蓋了市場上80%的終端,其中主流終端全部覆蓋,Testin云測在測試終端上投入比較多,為的就是解決安卓終端碎片化嚴(yán)重的問題。
在云測平臺的一臺測試終端可以為多個開發(fā)者、多款A(yù)pp提供服務(wù),我們對終端的測試環(huán)境做了統(tǒng)一處理,包括終端之間網(wǎng)絡(luò)屏蔽,保障每臺終端有獨(dú)立的網(wǎng)絡(luò)覆蓋,以及終端執(zhí)行任務(wù)時的整體調(diào)度優(yōu)化,保障這些終端可以最高效的完成眾多開發(fā)者的測試任務(wù)。
我們是通過幾個層面來解決在自動化測試過程中遇到的碎片化問題:
- 一是通過研究不同的Android版本底層和系統(tǒng)API,針對不同的版本制定不同的技術(shù)方案,比如說對4.1以上版本的終端,我們使用UIAutomator編寫了一個自動化執(zhí)行的腳本,增加了終端的可維護(hù)性;
- 二是通過和終端廠商的合作,獲取一些廠商內(nèi)部的接口;
- 三是通過和芯片廠商的合作,針對不同的芯片方案,采用不同的API來獲取底層數(shù)據(jù);
- 四是針對特殊終端制定特殊的策略,因?yàn)槲覀冇泻芏嗟恼鎸?shí)終端,這點(diǎn)我們是可以做到的。
CSDN:App可以分為應(yīng)用App和游戲App,對于這兩塊的測試是否會有不同的側(cè)重點(diǎn)?具體是什么呢?用戶對于應(yīng)用App和游戲App的使用習(xí)慣也是不同的,可以談一下對于應(yīng)用開發(fā)者與手游開發(fā)者在進(jìn)行開發(fā)過程中的建議?
徐琨:應(yīng)用App的測試相對來說對于廣度要求更高,應(yīng)用App很多時候?qū)τ谑謾C(jī)本身能力的調(diào)用做了很多,比如GPS、照相機(jī)、本地文件等等。同時應(yīng)用App對于互動的要求很高,通常需要很復(fù)雜的場景才能完成測試。建議應(yīng)用開發(fā)者對一些功能模塊,尤其是需要調(diào)用手機(jī)能力較多的功能,如拍照等,經(jīng)常做兼容性測試,這樣首先確保這些功能模塊本身在不同設(shè)備上是可用的,在最后集成測試時也會少很多兼容性的問題。
而游戲App的測試更偏重功能和可玩性,對于測試的深度要求較高,很多功能需要特定條件才能觸發(fā),比如有些功能只有高等級用戶才能使用。目前大部分多手游開發(fā)都使用了比較成熟的游戲引擎開發(fā),兼容性問題其實(shí)比應(yīng)用要少一些。我們建議手游開發(fā)者可以在條件成熟的時候(比如公測階段)多安排一些體驗(yàn)測試。
而使用習(xí)慣方面應(yīng)用的操作多基于獨(dú)立的點(diǎn)擊,游戲的前后操作之間連貫性較強(qiáng),在測試過程中,對腳本的要求也會比較高。
測試,只為更好的綻放
CSDN:面對現(xiàn)在很多App的粗制濫造、同質(zhì)化嚴(yán)重(如這兩年的卡牌游戲)等等,優(yōu)質(zhì)的App變得屈指可數(shù)。對此你是怎么看的?App又該如何做到優(yōu)質(zhì)、突破呢?
徐琨:現(xiàn)在的App獲取用戶的成本越來越高,而用戶的口味也變得越來越高,以前是給什么用戶就用什么,現(xiàn)在是用戶挑著用,我們可以看到目前用戶量最大的應(yīng)用多是上線好幾年的應(yīng)用,新的App如果不能有自己的特點(diǎn),并且有足夠的質(zhì)量,很難再冒頭。只從測試的角度出發(fā),我們發(fā)現(xiàn)手機(jī)適配率越高的,崩潰率越低的App,往往用戶量也越大,所以我們的建議是,如果想在現(xiàn)在的市場上有所突破,需要盡可能把功能做少做精,盡可能做最少的功能點(diǎn),要么沒有這個功能,一旦做就做到最好。
CSDN:崩潰、閃退等異常問題可以說是App的致命之處,而對于手游開發(fā)者來說,游戲整體性能必須得到保障。游戲性能才是最終用戶體驗(yàn)的基礎(chǔ),據(jù)了解,Testin最近推出了崩潰大師,那么其與傳統(tǒng)的APM應(yīng)用性能分析有什么不同之處?又是通過哪些技術(shù)檢測游戲本身的性能病癥呢?
徐琨:軟件質(zhì)量是個大的話題,產(chǎn)品的體驗(yàn)、可靠性、安全性、性能都屬于這個范疇。對于App而言,崩潰是最嚴(yán)重的質(zhì)量問題。Testin就從這個出發(fā)點(diǎn)去幫助開發(fā)者提高App質(zhì)量,這點(diǎn)和傳統(tǒng)的APM是最大的區(qū)別。
對于移動應(yīng)用和游戲,Testin崩潰大師通過不同的技術(shù)手段來解決它們出現(xiàn)的崩潰。當(dāng)用戶在使用產(chǎn)品發(fā)生崩潰時,Testin崩潰大師SDK會捕獲到崩潰的堆棧線程、App版本、錯誤頁面、CPU、內(nèi)存使用情況、設(shè)備名字、操作系統(tǒng)、運(yùn)行Log等,開發(fā)者則可以通過這些數(shù)據(jù)來分析錯誤發(fā)生原因。對于游戲引擎,無非是引擎層錯誤(一般C++代碼導(dǎo)致),還有腳本層錯誤。崩潰大師可以抓到不同語言,如Java、Objective-C、C++、C#、Js、Lua等語言發(fā)生的異常。
CSDN:從您的角度來看,游戲開發(fā)者在進(jìn)行用戶體驗(yàn)分析的時候都需要考慮到哪些維度?Testin云測和崩潰大師在這一塊是否會給出具體的建議呢?同時,Testin云測和崩潰大師在進(jìn)行分析的時候不可避免的會收集用戶數(shù)據(jù),那么用戶數(shù)據(jù)的安全性會不會受到威脅呢?
徐琨:真機(jī)測試是在Testin提供的測試機(jī)上運(yùn)行的,測試機(jī)每天要跑上百個App測試,在每次測試之前都會做數(shù)據(jù)清理,還原成手機(jī)原始的測試環(huán)境。而測試結(jié)果與錯誤定位只會由終端輸出后報給最終查看測試報告的人。
做一款好玩的游戲,先決條件是一款“可玩”的游戲。如果您的游戲經(jīng)常崩潰,那無論如何用戶也不會買賬。所以我們認(rèn)為:無論從軟件質(zhì)量或產(chǎn)品用戶體驗(yàn)角度來說,崩潰是頭等問題。在QA的術(shù)語中,崩潰就是致命級別的Bug。
Testin崩潰大師只會上報能夠幫助開發(fā)者定位和解決問題的數(shù)據(jù),一切和崩潰信息無關(guān)的數(shù)據(jù),我們的SDK都不會觸碰。這一點(diǎn)開發(fā)者也可以通過實(shí)地抓包來進(jìn)行驗(yàn)證,我們歡迎任何形式的舉證。
移動App和云測的未來
CSDN:現(xiàn)下物聯(lián)網(wǎng)是一大熱門,它會成為移動App的另一大戰(zhàn)場,您是如何看帶物聯(lián)網(wǎng)的發(fā)展,是否會帶來新一輪的技術(shù)革新?
徐琨:物聯(lián)網(wǎng)其實(shí)是移動互聯(lián)網(wǎng)的一個延伸,就像手機(jī)加上聯(lián)網(wǎng)功能,延展了我們?nèi)祟惖哪芰Γ锫?lián)網(wǎng)是互聯(lián)網(wǎng)將載體拓展到除手機(jī)外更廣闊的天地里,我相信這會是一個更大的革命,10年前沒有人會想到今天我們每個人會對著一塊玻璃消耗掉數(shù)以萬億小時,而未來,互聯(lián)網(wǎng)將會無處不在,今天我們所有的想象,都會證明其實(shí)我們還是太保守。
CSDN:可穿戴、車載、智能家具……都已經(jīng)或者將要出現(xiàn)在我們身邊,移動App也將在這些領(lǐng)域現(xiàn)身,所以在最后為我們暢想一下移動App和Testin云測的未來。
徐琨:無論科技如何發(fā)展,最終都會需要一個載體去承載服務(wù),在PC時代,我們用的是software,在互聯(lián)網(wǎng)時代,我們用的是Web,在移動互聯(lián)網(wǎng)時代,我們用的是App,而無論是software,還是Web,或者是App,保證其可用是其存在的基本的條件,也就是我們通常所說的測試服務(wù),而這正是Testin云測一直在努力提供的服務(wù),所以我們相信,未來互聯(lián)網(wǎng)的載體也許不再是App了,但測試服務(wù)的需求和市場會更加廣大。