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