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