2021年7月16與17日, 以“質(zhì)量無界 測繪未來”為主題的中國互聯(lián)網(wǎng)測試開發(fā)大會Testing Summit China(簡稱 MTSC)在上海寶華萬豪酒店成功舉辦,大會匯集了全國互聯(lián)網(wǎng)行業(yè)的測試、研發(fā)工程師,以交流軟件質(zhì)量標(biāo)準(zhǔn)、保障體系和測試研發(fā)技術(shù)為目的,議題內(nèi)容涵蓋國內(nèi)外前沿技術(shù)落地、業(yè)界工程最佳實(shí)踐經(jīng)驗(yàn)等。
會議上,友盟+高級產(chǎn)品專家、數(shù)據(jù)傳承官陳新祥帶來了“如何保證移動(dòng)應(yīng)用的穩(wěn)定性”的主題分享。
移動(dòng)應(yīng)用的崩潰現(xiàn)狀
移動(dòng)應(yīng)用的穩(wěn)定性、性能與體驗(yàn)十分重要,直接影響著用戶對產(chǎn)品本身的體驗(yàn)。根據(jù)友盟+《2021年Q1移動(dòng)應(yīng)用性能體驗(yàn)報(bào)告》顯示,目前移動(dòng)應(yīng)用整體崩潰率為 0.29%,其中 Android 端崩潰率為0.32%, iOS 端崩潰率為0.10%。當(dāng)某款應(yīng)用iOS的崩潰率超過0.8%、Android崩潰率超過0.4%時(shí),活躍用戶將呈現(xiàn)明顯的下降態(tài)勢。
另外,頁面加載速度也會對客戶滿意度帶來影響。頁面響應(yīng)時(shí)長每增加一秒,用戶滿意度就將降低16%,而如果頁面響應(yīng)時(shí)長超過3秒,部分用戶甚至?xí)苯油顺觥?/p>
基于上述數(shù)據(jù),陳新祥認(rèn)為,對目前市面上的App而言,其崩潰率需低于0.10%,方能達(dá)到優(yōu)秀標(biāo)準(zhǔn)。
不同的行業(yè)基于產(chǎn)品形態(tài)、技術(shù)架構(gòu)不同,其應(yīng)用崩潰率也存在差異。以游戲行業(yè)為例,其行業(yè)性質(zhì)特殊,加之游戲產(chǎn)品本身也較為復(fù)雜,所以崩潰率遠(yuǎn)遠(yuǎn)高于其他行業(yè)。而新聞、影音、閱讀等應(yīng)用則相對崩潰率較低。此外,不同日活量級的App,應(yīng)用崩潰率也參差不齊。日均活躍用戶數(shù)量超500萬的常用App,崩潰率大多低于0.1%;而日均活躍用戶數(shù)量較低的C端App,基于各方面的原因,穩(wěn)定性表現(xiàn)則相對較差,某些App崩潰率甚至高達(dá)3%、4%。
但不論所處行業(yè)是否相同,產(chǎn)品用戶體量是否一致,保證產(chǎn)品穩(wěn)定性都應(yīng)以業(yè)務(wù)效果、業(yè)務(wù)數(shù)據(jù)為落腳點(diǎn)。想要有穩(wěn)定的性能體驗(yàn),就要將其加入到產(chǎn)品的研發(fā)階段、測試階段、灰度階段以及全量階段,并從中找到業(yè)務(wù)與應(yīng)用性能穩(wěn)定性的平衡點(diǎn)。
知之非艱,行之惟艱。選取合理的平衡點(diǎn)并非易事,在此過程中,項(xiàng)目團(tuán)隊(duì)既要保業(yè)務(wù),又要保時(shí)間,對團(tuán)隊(duì)來說,這是極大的挑戰(zhàn)。
移動(dòng)應(yīng)用的共性問題
要解決問題,首先要知道問題所在。當(dāng)前移動(dòng)應(yīng)用面臨著許多共性問題,例如Android市場的碎片化,以及崩潰問題的定位困難,類似的共性問題雖然具體,卻難以輕易解決。
以U-APM曾經(jīng)服務(wù)過的客戶為例,其App被用戶反饋頁面加載緩慢,但這并不屬于崩潰,原因也難以定位。除此之外,由內(nèi)存泄漏等原因造成的崩潰問題,測試階段并不能全面覆蓋和發(fā)現(xiàn),這對上線后的實(shí)時(shí)采集和問題復(fù)現(xiàn)有著極高要求,其中涉及多個(gè)技術(shù)難點(diǎn),亟需高效便捷的應(yīng)對解決。
首先是采集方面。一般來說,上線后的應(yīng)用需要具備多種基礎(chǔ)核心采集能力,以采集Android系統(tǒng)中Java層的崩潰與Native層崩潰,以及iOS系統(tǒng)中的Objective-C層或Swift層崩潰。除此之外,還需具備捕獲ANR、自定義異常、卡頓等的能力。
要想全面捕獲與采集種類繁多的問題并不容易,類似設(shè)備重啟環(huán)境下的異常類型崩潰與設(shè)備兼容性所產(chǎn)生的崩潰問題,就難以被常規(guī)方式所采集。同時(shí),對于用戶使用Android APP 過程中出現(xiàn)的提示應(yīng)用無響應(yīng)的ANR問題,傳統(tǒng)讀取系統(tǒng)trace日志的方式,并不能將其全面捕獲。
其次是聚類方面。要將不同類別錯(cuò)誤、不同版本、新舊問題聚合到一起,中間還存在著重重困難。
另外,陳新祥發(fā)現(xiàn)在崩潰等問題修復(fù)中存在這樣的問題:應(yīng)用崩潰往往會重復(fù)性出現(xiàn)。老版本解決了的問題,卻又在新版本出現(xiàn),在反復(fù)修復(fù)重復(fù)問題后,發(fā)現(xiàn)過往崩潰異常原因與最終解法可沉淀繼承比例,竟高達(dá)70%、80%。
上述情況的產(chǎn)生,主要源于團(tuán)隊(duì)內(nèi)部的人員流動(dòng)所導(dǎo)致的信息交換效率過低。某些研發(fā)人員面對問題時(shí),很可能會以為該問題已被自己或他人解決,殊不知,問題依然存在。
在采集與聚類之外,還有測試方面的問題。
目前,大部分研發(fā)測試團(tuán)隊(duì)存在有產(chǎn)品快速適配特定設(shè)備的需求的同時(shí),還會經(jīng)常收到來自客戶即時(shí)的App崩潰反饋,兩者往往都需要調(diào)用真機(jī)參與測試。在移動(dòng)應(yīng)用端,真機(jī)測試是許多測試人員使用最多的場景。但傳統(tǒng)真機(jī)測試流程相對繁瑣,效率因此較低。
針對上述多種問題,友盟+整合了產(chǎn)研實(shí)踐過程中應(yīng)用性能問題的采集、監(jiān)控、發(fā)現(xiàn)、流轉(zhuǎn)、定位,以及測試環(huán)節(jié),將其沉淀輸出為“U-APM應(yīng)用性能監(jiān)控平臺”,以解決產(chǎn)研團(tuán)隊(duì)在整個(gè)開發(fā)周期與線上運(yùn)營階段所面臨的諸多痛點(diǎn)。
U-APM:保障移動(dòng)應(yīng)用穩(wěn)定性的強(qiáng)力工具
U-APM 作為免費(fèi)的一站式應(yīng)用性能監(jiān)控平臺,集App穩(wěn)定性監(jiān)控、性能監(jiān)控和云真機(jī)測試平臺為一體,很大程度上能解決移動(dòng)應(yīng)用的共性問題。
以采集為例,U-APM能夠捕獲包括產(chǎn)品信息、設(shè)備層與環(huán)境層的運(yùn)行狀態(tài)等信息,從而快速地分析出導(dǎo)致App崩潰的主要原因。針對ANR,U-APM通過監(jiān)控整個(gè)系統(tǒng)信號,抓取事件并生成相應(yīng)的日志信息之后,再吐還給信號,從而顯著提高了系統(tǒng)ANR的捕獲率,以快速定位錯(cuò)誤根源。
而針對問題聚類和智能診斷,U-APM則是參考了阿里集團(tuán)內(nèi)部的聚合算法和過往經(jīng)驗(yàn),將所發(fā)現(xiàn)問題的沉淀原因、曾經(jīng)的解法等相關(guān)信息匯聚為方案交由研發(fā)人員的思路,將錯(cuò)誤摘要相同的錯(cuò)誤日志所聚合并展示其詳細(xì)信息,以幫助產(chǎn)研團(tuán)隊(duì)快速定位問題、解決問題。
另外,面向測試環(huán)節(jié),U-APM云真機(jī)在提供ADB調(diào)試、WEB遠(yuǎn)程調(diào)試、掃碼、抓包等常規(guī)測試功能之外,更是提供了海量 Android 、iOS 真機(jī),以滿足測試人員發(fā)版前測試、復(fù)現(xiàn)問題等真機(jī)測試需求。與此同時(shí),真機(jī)如果在線上發(fā)生崩潰問題,U-APM會自動(dòng)采集崩潰信息,提供詳盡的崩潰報(bào)告協(xié)助開發(fā)、測試人員篩查,從而幫助他們找到測試階段產(chǎn)生的崩潰原因,節(jié)約大量購機(jī)成本的同時(shí),還顯著提升了效率,真正實(shí)現(xiàn)監(jiān)控測試全流程深度打通。
基于保證業(yè)務(wù)的出發(fā)點(diǎn),陳新祥從始至終都在談?wù)撔剩@種對效率的執(zhí)著,也反映在了U-APM的內(nèi)部流轉(zhuǎn)機(jī)制上面。陳新祥表示,內(nèi)部流轉(zhuǎn)基本分為兩層:
第一層是從問題識別到監(jiān)控流程的通知到位。除釘釘外,U-APM還支持郵箱、企業(yè)微信、飛書等多種觸達(dá)方式。
第二層則是以集成內(nèi)部項(xiàng)目軟件或API的方式,將具體的崩潰問題直接流轉(zhuǎn)給相應(yīng)的技術(shù)同學(xué)進(jìn)行排查
值得一提的是,U-APM同時(shí)對阿里內(nèi)部和外部開放,自U-APM平臺落地以來,阿里內(nèi)部的諸多產(chǎn)品都在使用。基于U-APM出色的產(chǎn)品力,其支持的App整體崩潰率水準(zhǔn)均可低于0.10%這一優(yōu)秀標(biāo)準(zhǔn),在研發(fā)效能上也有提升3倍(300%)效果。
自去年U-APM對所有開發(fā)者免費(fèi)開放后,為開發(fā)者帶來10%-40%的效率提升。目前,U-APM已對外服務(wù)超2萬款應(yīng)用,以及應(yīng)用背后的上萬家客戶。
埃利德·尤德考斯基(Eliezer Yudkowsky)曾說過:“任何能帶來優(yōu)于人類智能的東西,(其形式可能為人工智能,人腦-計(jì)算機(jī)交互界面,基于神經(jīng)科學(xué)的人類智能提升),都會在改變世界的競賽中占據(jù)領(lǐng)先地位。再沒有什么能與此相提并論。”而在數(shù)智化突飛猛進(jìn)的當(dāng)下,U-APM更像是新時(shí)代的智能警察,為優(yōu)質(zhì)的用戶體驗(yàn)保駕護(hù)航。