徐琨,Testin云測(cè)CTO。國內(nèi)最早移動(dòng)互聯(lián)網(wǎng)公司PICA創(chuàng)始員工,曾任PICA副總裁;領(lǐng)先的HTML5游戲開發(fā)公司山水地信息創(chuàng)始人。作為千萬人在線的即時(shí)通信系統(tǒng)架構(gòu)師,領(lǐng)導(dǎo)開發(fā)了過千萬用戶的移動(dòng)社交平臺(tái)。
Testin云測(cè)試于2011年6月份成立,一直從事關(guān)于移動(dòng)互聯(lián)網(wǎng)方向的APP測(cè)試服務(wù)。Testin想把測(cè)試這個(gè)事變成云端標(biāo)準(zhǔn)化服務(wù),最終愿景是希望研發(fā)團(tuán)隊(duì)或者APP團(tuán)隊(duì)可以專注自己的產(chǎn)品和市場推廣,把測(cè)試問題最終通過云端服務(wù)的方式來解決。
一般而言,移動(dòng)互聯(lián)網(wǎng)的APP開發(fā)模式是一個(gè)APP團(tuán)隊(duì),大概有幾個(gè)部門。第一是開發(fā),我們俗稱就是技術(shù)。第二會(huì)有產(chǎn)品,一般還有運(yùn)營和市場。如果是一個(gè)對(duì)企業(yè)銷售的團(tuán)隊(duì)還會(huì)有銷售,之后可能還有售后。除了這些職能部門之外有一個(gè)測(cè)試的職能部門,還有一個(gè)運(yùn)維的職能部門。下面我們來看看Testin在開發(fā)者開發(fā)和測(cè)試APP的過程中都能提供哪些測(cè)試相關(guān)的服務(wù):
功能測(cè)試
一般的APP,先是功能開發(fā),然后是發(fā)布,發(fā)布之后上線推廣。如果這個(gè)APP沒有死,它會(huì)循環(huán)進(jìn)行這樣的過程。在功能開發(fā)階段,Testin會(huì)提供一種叫做功能測(cè)試服務(wù)。Testin即將推出眾測(cè)服務(wù),屆時(shí)會(huì)把國內(nèi)優(yōu)秀的測(cè)試PM匯聚在一起,然后通過PM的方式給所有APP的開發(fā)者一個(gè)方案,擁有眾多測(cè)試者的云端的眾包平臺(tái)Testin。為什么會(huì)有這樣形式的服務(wù)?開發(fā)階段,一般會(huì)有14天,包括產(chǎn)品設(shè)計(jì)和技術(shù)開發(fā)的時(shí)間,最后留出兩天時(shí)間,進(jìn)入測(cè)試階段。標(biāo)準(zhǔn)的APP開發(fā)團(tuán)隊(duì)有10個(gè)人,兩個(gè)產(chǎn)品,兩個(gè)技術(shù),最終還有一到兩個(gè)人做運(yùn)營,真正的測(cè)試崗位沒有人。任務(wù)重,人員少,所以導(dǎo)致我們市面上很多移動(dòng)APP,有很多Bug,不過沒關(guān)系,對(duì)于開發(fā)者第一步要有用戶,但是用戶大了發(fā)現(xiàn)質(zhì)量問題越來越突出,所以為了解決這個(gè)問題Testin在這個(gè)階段提出這樣的服務(wù),專門解決這個(gè)事情。通過有幾萬人的眾測(cè)平臺(tái),由PM(測(cè)試項(xiàng)目經(jīng)理)幫助設(shè)計(jì)方案,包括寫好測(cè)試,然后分給眾多測(cè)試者,之后由這個(gè)PM總結(jié),包括Bug,然后會(huì)有一個(gè)測(cè)試報(bào)告。
適配測(cè)試
功能測(cè)試沒有問題之后,接近發(fā)布的時(shí)候,會(huì)出現(xiàn)一個(gè)問題,中國現(xiàn)在有很多手機(jī)型號(hào)和廠家很多,包括小米、三星、華為每個(gè)品牌有很多機(jī)型,以前小米只有一款,但是現(xiàn)在小米差不多十款機(jī)型,小米1、2、3等等等等。此時(shí)就會(huì)出現(xiàn)各個(gè)機(jī)型的版本分裂變得越來越嚴(yán)重,比如一個(gè)APP雖然在小米4上能跑,但是跑魅族的手機(jī)跑不了,魅族4這個(gè)手機(jī)屏幕分辨率和其他手機(jī)不一樣。如果各位關(guān)注手機(jī)會(huì)知道,魅族的Pro又有點(diǎn)不一樣,他們用的MIU那塊的東西,MIU是他們自己做的,華為也搞了一個(gè),包括Vivo包括OPPO也自己做了。雖然功能沒有問題,適配卻變成一個(gè)很嚴(yán)重的問題。適配的問題是因?yàn)榘姹痉至?,屏幕尺寸不一樣,手機(jī)型號(hào)不一樣,Rom不一樣,會(huì)帶來各種各樣的問題。如果是自己要解決,一般的開發(fā)團(tuán)隊(duì)怎么干?他會(huì)買四到五個(gè)手機(jī),他自己用小米,團(tuán)隊(duì)里面有三星,然后試一下自己的APP能不能跑。但是,目前市面上大概有一千款手機(jī),中國是全世界機(jī)型最多的國家,即便在小米1上能跑,小米2、小米3不一定能跑。很多人使用iPhone,iPhone4能跑,iPhone5不一定能跑。所以Testin在擁有一個(gè)適配測(cè)試的服務(wù)。
Testin怎么做適配?和眾測(cè)很像,Testin接了一個(gè)類似于云測(cè)平臺(tái)的東西,它下面掛了很多手機(jī),是一個(gè)一個(gè)的真機(jī)。開發(fā)者把APP通過Testin的Web網(wǎng)站提交給Testin,Testin把這些APP發(fā)到庫房里四千多部真機(jī)去跑,Testin有自己的獨(dú)特技術(shù)和一個(gè)自動(dòng)化的腳本,APP來到Testin的適配平臺(tái),通過這個(gè)腳本到所有的手機(jī)自動(dòng)安裝、運(yùn)行、卸載。第一能不能安裝,第二能不能卸載,第三是不是能正常的執(zhí)行基本功能。目前Testin的適配平臺(tái)總共跑了大概七千八百萬次的自動(dòng)化測(cè)試,Testin定期會(huì)把國內(nèi)一些主流的機(jī)型做統(tǒng)計(jì),然后進(jìn)行采購,然后新機(jī)投入機(jī)房,供所有的開發(fā)者使用。
應(yīng)用、手游性能監(jiān)測(cè)
那么適功能和配都測(cè)試過之后,是不是應(yīng)用可以高枕無憂了?當(dāng)然不是,Testin發(fā)現(xiàn)無論怎么測(cè)試,無論通過怎樣的自動(dòng)化手段,其實(shí)還有很多問題并沒有真正發(fā)現(xiàn)。在APP用戶那端可能會(huì)看到各樣各種的問題,因?yàn)椴涣私庥脩舻木W(wǎng)絡(luò)情況如何,是否是山寨機(jī)等等。所以Testin推出了崩潰大師 ,在APP上線推廣之前,將崩潰大師的SDK嵌入到APP中,那么這個(gè)SDK的作用是什么?開發(fā)者把他的APP加上我們SDK之后, Testin給每一個(gè)APP都有一個(gè)崩潰后臺(tái),這個(gè)后臺(tái)會(huì)將用戶端使用APP時(shí)產(chǎn)生的所有崩潰、閃退包括異常情況的信息做抓取,抓完了之后做備份。
一、代碼級(jí)定位崩潰
APP崩潰異常之后,崩潰大師可監(jiān)測(cè)到導(dǎo)致問題的代碼位置,開發(fā)者可根據(jù)崩潰大師提供的信息進(jìn)行修改。
二、NDK錯(cuò)誤捕獲
NDK錯(cuò)誤,比如安卓手機(jī),用很多的第三方庫,像騰訊或者百度都有第三的SDK,大部分是C寫的,是一個(gè)動(dòng)態(tài)庫。這個(gè)動(dòng)態(tài)庫本身會(huì)產(chǎn)生異常,這就是NDK錯(cuò)誤,這個(gè)叫做原生的錯(cuò)誤,主要是C++的錯(cuò)誤。崩潰大師會(huì)把第三方出現(xiàn)的所有問題可以進(jìn)行捕獲,很多第三方平臺(tái)本身會(huì)導(dǎo)致程序的崩潰和閃退。
三、用戶一對(duì)一定位
用戶端出現(xiàn)了閃退、崩潰,開發(fā)者并不能知道用戶的身份。用戶閃退后反饋問題的時(shí)候可能就是在評(píng)論里發(fā)泄一下情緒,一般并不會(huì)說明自己的型號(hào)是什么,網(wǎng)絡(luò)情況如何等等。崩潰大師可以做到崩潰用戶端的ID展現(xiàn),尤其對(duì)于O2O的企業(yè),或者以手機(jī)號(hào)為ID的企業(yè),可以給用戶打電話,查看到底出了什么問題。
四、手游引擎支持
崩潰大師對(duì)于手游引擎的支持有兩個(gè),是國內(nèi)的cocos2D-X,還有Unity3D,他們也是第三方,類似SDK的工具。開發(fā)者基于這個(gè)引擎,會(huì)用幾種腳本語言來寫,一種腳本語言叫Lua,一種叫JavaScript,基于這幾種腳本語言產(chǎn)生的異常,崩潰大師通過SDK的服務(wù)可以抓取到。
APP應(yīng)用案例
移動(dòng)APP開發(fā)者把需求給Testin,整個(gè)開發(fā)周期,從功能開發(fā)到發(fā)布到上線,Testin會(huì)對(duì)開發(fā)者的APP做一次完整的跟蹤。Testin眾測(cè)的服務(wù),目前已經(jīng)服務(wù)了像E袋洗、高德還有一些企業(yè)。適配測(cè)試服務(wù)是Testin最早并一直持續(xù)的業(yè)務(wù),國內(nèi)移動(dòng)開發(fā)者里面65%基本都是使用的Testin適配測(cè)試服務(wù)。Testin的崩潰大師,于2014年 8月份開發(fā)完成,9月份上線Bate版,到現(xiàn)在三個(gè)半月時(shí)間,國內(nèi)比較大一點(diǎn)的游戲,基本上都是崩潰大師的用戶。比如說全民槍戰(zhàn)、捕魚達(dá)人、啪啪三國、保衛(wèi)蘿卜、Dena海賊王,大部分是游戲。國內(nèi)應(yīng)該是第三方SDK里面,用戶基數(shù)可以排前十的。
崩潰大師服務(wù),即將上線1.7.2的版本,從2014年9月份到現(xiàn)在迭代了30多個(gè)版本,每一周大概迭代一個(gè)版本,到現(xiàn)在應(yīng)該30多個(gè)。崩潰大師的SDK包重量很小,僅為30K,穩(wěn)定性毋庸置疑,能夠抓到更多東西。目前有幾千個(gè)APP已經(jīng)用到其服務(wù),
崩潰大師將異常捕獲做了歸并,上報(bào)崩潰異常時(shí)并不是一個(gè)一個(gè)上傳,而是將其歸并到一起并且分類的上報(bào),這樣開發(fā)者就可以區(qū)別其中的異常(程序不閃退而功能出問題)和崩潰(導(dǎo)致程序閃退)的原因,同時(shí)這種上報(bào)方式可以為用戶減少流量,讓用戶的APP不因?yàn)镾DK導(dǎo)致流量暴漲。
崩潰大師1.7.2版本,崩潰+適配新升級(jí),Testin將原有的適配和現(xiàn)在崩潰大師的功能深度融合,使得適配功能也可以做到精準(zhǔn)定位很多底層錯(cuò)誤,使得適配功能更精準(zhǔn)。
崩潰大師目前都是做本土服務(wù),同時(shí)也做了一個(gè)海外英文版,現(xiàn)已經(jīng)發(fā)布。Testin跟Cocos觸控做了一個(gè)戰(zhàn)略合作,基于崩潰大師,觸控北美團(tuán)隊(duì)與Testin在海外共同做運(yùn)營推廣,位北美和其他海外的更多開發(fā)者提供服務(wù)。
結(jié)語
Testin云測(cè)是以服務(wù)為驅(qū)動(dòng)的團(tuán)隊(duì)。------徐琨
Testin以技術(shù)為基礎(chǔ),服務(wù)為核心,為開發(fā)者提供一個(gè)改善APP質(zhì)量的服務(wù)。Testin的創(chuàng)始團(tuán)隊(duì)都是做研發(fā)出身,以往的Testin相信技術(shù)改變一切,甚至之前迷信通過自動(dòng)化可以解決所有的問題。通過大概三年時(shí)間,比如功能測(cè)試,終于發(fā)現(xiàn)有些問題通過自動(dòng)化也并不能完全解決,因?yàn)橛行〇|西只有人才能知道這個(gè)是對(duì)還是不對(duì),所以推出了眾包測(cè)試平臺(tái),技術(shù)上面可以解決的問題,比如崩潰的自動(dòng)捕捉,可以把技術(shù)做的更精更透,然后幫開發(fā)者做崩潰的統(tǒng)計(jì),把識(shí)別率做的更高。所以技術(shù)是Testin的基礎(chǔ),但最終交付給用戶的是一種服務(wù)。Testin給客戶的價(jià)值,應(yīng)該是Testin來幫開發(fā)者發(fā)現(xiàn),開發(fā)者自己發(fā)現(xiàn)不了的問題,這就是徐琨眼中Testin正在做的事。