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