超碰人人人人人,色婷婷综合久久久久中文一区二区,国产-第1页-浮力影院,欧美老妇另类久久久久久

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

[點(diǎn)晴永久免費(fèi)OA]月活8.89億背后:微信工程師細(xì)數(shù)兼容測試經(jīng)驗(yàn)

admin
2017年5月4日 10:51 本文熱度 8495

2017年4月,企鵝智酷公布了最新的《2017微信用戶&生態(tài)研究報(bào)告》。報(bào)告數(shù)據(jù)顯示,截止到2016年12月微信全球共計(jì)8.89億月活用戶,新興的公眾號平臺擁有1000萬個(gè)。微信這一年來直接帶動(dòng)了信息消費(fèi)1742.5億元,相當(dāng)于2016年中國信息消費(fèi)總規(guī)模的4.54%。


坐擁如此量級的用戶,也意味著,微信發(fā)生一個(gè)小問題,即會影響大量的用戶體驗(yàn)?;诖?,微信非常注重質(zhì)量。

目前國內(nèi)很多硬件廠商,對于Android版本,深度定制自己的ROM、系統(tǒng)版本,例如小米的MIUI、華為的EMUI、聯(lián)想的VIBEUI等。這就是N個(gè)廠商乘以M個(gè)版本,導(dǎo)致的版本數(shù)量爆炸,牽引出各種適配問題。

微信應(yīng)用去適配那么多的設(shè)備花費(fèi)了大量精力時(shí)間。在這個(gè)環(huán)境下,微信團(tuán)隊(duì)寄托于自動(dòng)化測試,希望把更多的測試環(huán)節(jié)放在云端自動(dòng)化地運(yùn)行。


微信最關(guān)注的質(zhì)量問題

兼容性測試覆蓋的環(huán)節(jié)眾多,微信優(yōu)先選取核心的環(huán)節(jié)進(jìn)行測試。并把必測的環(huán)節(jié)盡量以自動(dòng)化,云端化的方式實(shí)現(xiàn)。那么,哪些問題屬于高優(yōu)先級?

1、安裝和啟動(dòng)失敗

安裝和啟動(dòng)問題是屬于最嚴(yán)重的bug。這種問題一般比較少出現(xiàn),但是一出現(xiàn)就是大問題。安裝和啟動(dòng)失敗,很可能造成微信團(tuán)隊(duì)的監(jiān)控?cái)?shù)據(jù)不充分,有時(shí)無法主動(dòng)發(fā)現(xiàn)問題,最后只能通過用戶反饋感知到這種錯(cuò)誤。此時(shí)可能已經(jīng)給用戶造成很大影響了。

比如曾經(jīng)發(fā)現(xiàn)華為和三星某臺機(jī)型的getDrawable這個(gè)api掛掉了,導(dǎo)致這兩款機(jī)型部分用戶啟動(dòng)不了微信,雖然影響用戶量不大,但非常嚴(yán)重。安裝失敗和啟動(dòng)失敗是兼容性測試最基本的要求。

2、Crash問題

Crash率是微信團(tuán)隊(duì)衡量一個(gè)版本是否穩(wěn)定的重要標(biāo)準(zhǔn),尤其是新出現(xiàn)的Crash。當(dāng)測試包灰度出去之后,如果Crash率偏高,或新出現(xiàn)的Crash占比較高,微信團(tuán)隊(duì)一般會采取換包,撤包措施。這會帶來以下連鎖反應(yīng)

1、給用戶造成極差的使用體驗(yàn)

2、給開發(fā)和測試造成額外的工作

3、造成因版本發(fā)布延遲引起的一系列損失

因此,新出現(xiàn)的Crash一定是微信最關(guān)注的質(zhì)量標(biāo)準(zhǔn)之一。

對癥下藥,提前發(fā)現(xiàn)問題

上面提及的兼容性問題,出現(xiàn)任何一種情況都是極其嚴(yán)重。微信團(tuán)隊(duì)根據(jù)同行的積累和歷史經(jīng)驗(yàn),針對不同的問題,做不同的測試。

1、針對安裝和啟動(dòng)問題——覆蓋安裝測試

覆蓋安裝,顧名思義就是用新版本的應(yīng)用覆蓋舊版本。

覆蓋安裝的測試流程如下:

針對安裝和啟動(dòng)問題是影響最嚴(yán)重的問題,微信團(tuán)隊(duì)目前在版本發(fā)布前都要做覆蓋安裝測試。將要發(fā)布的包,安裝并且啟動(dòng)成功之后保證微信基本功能能正常運(yùn)行。微信的每個(gè)正式版本基本都會修改配置的版本號,Android也是根據(jù)版本號來判斷App是否有更新。當(dāng)覆蓋安裝完之后,App有專門的代碼處理更新,保證數(shù)據(jù)兼容。一般第三方商店都是以這個(gè)值來檢測軟件是否更新。 

覆蓋安裝測試的流程較簡單,盡可能模擬真實(shí)用戶升級安裝使用的場景。覆蓋安裝之后,用戶啟動(dòng)微信時(shí),后臺發(fā)出升級指令,升級主要是確認(rèn)老版本的數(shù)據(jù)能否在新版本中使用;最后通過冒煙測試,檢測微信核心功能(覆蓋到主要的數(shù)據(jù)庫)能否正常通過。微信團(tuán)隊(duì)重視覆蓋安裝測試,除了監(jiān)測一些數(shù)據(jù)兼容性問題外,還需檢測新打的包是否有問題。此外tinker的patch包也需要經(jīng)過類似的測試,保證patch成功以及基本的核心功能。

覆蓋安裝測試只在發(fā)布前夕做,因?yàn)槲⑿胚@邊是持續(xù)集成開發(fā),分布分支上的包一直在更新,所以只拿即將發(fā)布的包來做,通過之后才會進(jìn)行外網(wǎng)發(fā)布。

2、Crash問題——穩(wěn)定性測試

Crash問題對應(yīng)的測試是穩(wěn)定性測試。對于app的穩(wěn)定性測試,官方的測試工具是monkey。monkey會產(chǎn)生一些列隨機(jī)性事件(具體比例可以配置)測試目標(biāo)APP是否出現(xiàn)Crash。

Monkey測試的局限性

微信團(tuán)隊(duì)發(fā)現(xiàn)monkey不會去檢測界面上的控件,因此產(chǎn)生的事件過于隨機(jī),不太符合微信的測試需求。因此,微信開發(fā)了一個(gè)基于控件的定制化monkey來做穩(wěn)定性測試。

要基于控件開發(fā)一個(gè)定制化monkey,首先就需要獲取界面(Activity)的所有控件(View)。

選擇框架修改Monkey腳本

一開始采用robotium框架,但微信本身是一個(gè)多進(jìn)程的App,比如打開相冊,或者webview的時(shí)候,都是在一個(gè)tools進(jìn)程中的,而robotium只針對單個(gè)進(jìn)程,需要去改框架源碼才可以支持多進(jìn)程的微信App,實(shí)現(xiàn)起來比較繁瑣。因此后面微信團(tuán)隊(duì)開始使用官方框架UIAutomator。

利用框架獲取控件(View)

google并沒有給出公開接口獲取所有控件,如果使用selector來獲取,速度很慢,因?yàn)間oogle為了保證ui自動(dòng)化的執(zhí)行,很多地方加了等待,而monkey測試需要快速的點(diǎn)擊。通過參考UIAutomator的源碼實(shí)現(xiàn),微信團(tuán)隊(duì)決定利用java的反射原理拿到AccessibilityNodeInfo,中間去掉無謂的等待或者減少等待事件增加重試次數(shù)。AccessibilityNodeInfo 跟view(控件)有一對一的關(guān)系,在uiautomator里面就跟一個(gè)UiObject對應(yīng)。目前外面很多的搶紅包插件也是利用AccessibilityService拿到AccessibilityNodeInfo來做識別和點(diǎn)擊。

定制化Monkey的誕生

通過反射的方案,獲取當(dāng)前activity的速度可以保證在十幾毫秒以內(nèi)完成。獲取所有控件之后,就可以針對控件做隨機(jī)探索了!

為了更好的遍歷盡可能多的activity,微信團(tuán)隊(duì)采用改造之后深度遍歷算法。我們稱之為“定制化Monkey”。定制化monkey的運(yùn)行邏輯比較簡單,其中,還有一些特殊處理,比如返回的時(shí)候要檢查是否有彈框,打開webview的時(shí)候檢查是否有彈框(地理位置),跑的時(shí)候是否有退出登錄等。目前來看改造的效果比原生的效果有一定的提升,下面是單機(jī)的測試結(jié)果: 

從上圖可以看出,相對于原生的monkey,行覆蓋率大約有80%的提升,activity覆蓋率大約有將近200%的提升。而且從曲線上可以看到,這兩個(gè)monkey在登錄之后的1個(gè)小時(shí)以內(nèi),行覆蓋率和activity覆蓋率都有明顯的提升,在1到2個(gè)小時(shí)以內(nèi)也會緩慢提升,而兩個(gè)小時(shí)之后提升就非常緩慢了。

微信團(tuán)隊(duì)每天都會取最新代碼編的apk包進(jìn)行穩(wěn)定性測試,收集出現(xiàn)的Crash,并且把新出現(xiàn)的Crash,提交bug給對應(yīng)開發(fā)。

3、機(jī)型覆蓋——云端化測試

兼容性測試根本還是要覆蓋機(jī)型,微信團(tuán)隊(duì)在做一些自動(dòng)化方案目的就是為了在多種機(jī)器上并行執(zhí)行。原先,微信團(tuán)隊(duì)用來做自動(dòng)化的機(jī)型數(shù)量較少。上面提到的覆蓋安裝測試和定制化monkey測試,可能只跑典型的6到10臺機(jī)型。

現(xiàn)在兼容性測試遷移到WeTest平臺上,測試基于WeTest給微信搭建的私有云平臺進(jìn)行,同時(shí)公有云的機(jī)型作為補(bǔ)充。

至此,微信團(tuán)隊(duì)實(shí)現(xiàn)了機(jī)型管理云端化,設(shè)備覆蓋也有了實(shí)質(zhì)性提升。

微信團(tuán)隊(duì)每天都會在測試平臺上申請上百臺手機(jī)跑多輪定制化Monkey測試,日均測出十幾個(gè)Crash,一些新特性上線的高峰期有時(shí)可達(dá)40/50個(gè)。

其他關(guān)鍵質(zhì)量問題——新功能適配

除以上問題之外,新功能上線時(shí),微信團(tuán)隊(duì)會非常關(guān)注其是否會產(chǎn)生新的適配問題。譬如,字體截?cái)鄦栴},鍵盤問題等。一年多前,微信發(fā)布小視頻功能,發(fā)現(xiàn)多個(gè)廠商定制ROM導(dǎo)致的視頻方向錯(cuò)誤,黑屏,播放失敗等問題,嚴(yán)重影響用戶體驗(yàn)。

每個(gè)版本都有功能兼容性問題,并且每個(gè)版本的測試內(nèi)容都不一樣。目前采用的方式還比較低級,主要依靠人力在主流機(jī)型上進(jìn)行兼容性測試以及眾測。

版本間差異大,自動(dòng)化陷入困境

功能測試一般針對某個(gè)特定版本,因此自動(dòng)化腳本基本只適用特定版本,復(fù)用性弱,自動(dòng)化不能帶來好的收益。同時(shí),功能測試路徑有時(shí)比較特殊,自動(dòng)化腳本難寫,驗(yàn)證麻煩。比如小視頻功能測試,自動(dòng)化腳本判斷不出來是否出現(xiàn)黑屏、花屏,必須要人眼判斷。

部分特性可以自動(dòng)化實(shí)現(xiàn):半自動(dòng)化測試

一些特性可以做自動(dòng)化或者半自動(dòng)化測試。比如H5測試,主要是檢測在不同手機(jī)上打開頁面,看看頁面是否有UI問題。半自動(dòng)化測試方案:通過腳本驅(qū)動(dòng)UI操作和webview操作,同時(shí)在關(guān)鍵的頁面截圖,生成帶一系列截圖的測試報(bào)告。事后肉眼查看截圖,比對判斷測試是否通過。

功能兼容性問題目前我們還沒有一個(gè)通用的解決方案,都是根據(jù)不同的需求利用目前手頭資源做盡可能完善的測試。

功能自動(dòng)化測試遷入WeTest平臺

針對功能適配兼容性測試,微信團(tuán)隊(duì)也把H5適配兼容性測試和部分高優(yōu)先級自動(dòng)化用例遷移到WeTest平臺上。

● 建立微信私有云:在私有云上,微信團(tuán)隊(duì)不間斷提交自動(dòng)化腳本進(jìn)行24小時(shí)測試。當(dāng)私有云缺少某臺特定機(jī)型時(shí),WeTest公有云上的機(jī)型作為補(bǔ)充測試。

● 微信質(zhì)量系統(tǒng)與私有云對接:WeTest將一些接口開放給微信,微信利用這些接口,搭建了自己的云端質(zhì)量管理平臺,直觀、便捷地進(jìn)行測試管理工作,大大提升了效率。

效果

微信團(tuán)隊(duì)通過自動(dòng)化、云端化測試,在兼容性和功能測試方面效率提升了1倍多,更快速、精準(zhǔn)地定位解決問題,累計(jì)發(fā)現(xiàn)并解決的問題數(shù)達(dá)數(shù)千個(gè),覆蓋億級用戶,提供了流暢穩(wěn)定的體驗(yàn)環(huán)境。

后續(xù),我們期待云端化、自動(dòng)化測試深度覆蓋到更多測試環(huán)節(jié),使測試過程和測試結(jié)果變得更加流暢、可視化。通過技術(shù)的力量,持續(xù)提升產(chǎn)品的質(zhì)量!


該文章在 2017/5/4 11:35:27 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved