Categories
程式開發

優酷客戶端埋點質量保障三步曲


一、背景

優酷客戶端在埋點的質量保障過程中,遇到了一些困難和挑戰,我們從項目流程、測試方案、業務深入度3個方面進行改造,經歷多個版本的迭代,形成了一套客戶端埋點質量保障方案,這里和大家分享一下。

二、改造之前的我們

先來了解下優酷客戶端埋點,它使用的是阿里巴巴的UT(UserTrack)埋點,把不同的用戶行為分成不同埋點事件,常見的事件有:頁面事件、點擊/曝光事件、播放事件,不同的事件又有基於位置和內容等多維度統計的埋點字段。

在實際的埋點測試工作中,不同事件和字段組合,一個版本的埋點數據需求量很大,而且需要面對枯燥的數據,辛苦測試完成,發布上線後卻是“大問題偶爾有、小問題不間斷”的狀況,是不是很崩潰?

為什麼會有這種狀況?是因為整個環節存在諸多問題:比如,業務上,埋點需求延續性差,容易漏測;測試同學無法將埋點和業務的數據指標關聯,排查問題無從下手;手工測試,效率稍低。流程上,常常是多個大項目項目同時進行,問題處理不及時。

優酷客戶端埋點質量保障三步曲 1

三、埋點質量保障改造之路

針對上面的問題,圍繞質量效率的目標,我們開啟了埋點質量保障的3步改造之路:

優酷客戶端埋點質量保障三步曲 2

1.構建完備測試體系

1)解源頭:優化埋點需求管理

如何高效的管理埋點需求,是構建完備測試體系的前提,我們開發了埋點管理平台,拋棄了原始的Excel埋點管理方式,統一將埋點錄入平台來管理,在此基礎上,還可以進行自動化等提效改造。

平台設計的初衷有3點:

a) 能夠支持優酷內容分發、視頻播放這種特有業務的數據需求;

b) 服務優酷,對於內部不同業務模塊的多種需求,能夠快速支持並上線;

c) 和質量部其他平台打通,能夠進行質量效能統一管理。

平台覆蓋4個維度,規則、需求、方案、報告,支持5類埋點事件,6種埋點字段匹配能力:

a) 規則:埋點事件中不同字段的組合,方便埋點事件的字段錄入;

b) 需求:單個埋點事件,包含不同字段;

c) 方案:多條埋點需求集合;

d) 報告:埋點測試報告;

e) 支持的埋點事件:頁面、點擊、曝光、播放、自定義;

f) 埋點字段匹配能力:等於、非空、包含、正則、枚舉、自定義

“規則”和“需求”維度是針對埋點需求管理:我們為每條埋點需求制定了唯一ID,

將具有不同規則的埋點需求單條或批量導入到平台,實現埋點的統一管理。

優酷客戶端埋點質量保障三步曲 3

埋點管理平台設計框架

2)測試提效:自動化測試

埋點管理平台的後兩個維度“方案”和“報告”,是針對埋點測試:借助埋點管理平台的日誌匹配能力,我們設計了手動驗證、自動驗證功能,來解決測試手段單一,效率低的問題。

手動測試,是對統一錄入的需求集合(即方案)實現手動測試、自動匹配。主要在需求功能測試階段使用,只要保證設備和平台連通,業務測試的同時,平台就會進行埋點匹配驗證。

自動測試,前提是要和設備實驗室打通,通過Jenkins定時任務自動觸發埋點自動化測試。主要在全量回歸階段使用,優點是可多業務大方案同時驗證。

兩種測試方式的結果埋點監控平台以報告形式展示,同時有釘釘和郵件通知。

優酷客戶端埋點質量保障三步曲 4

自動化驗證實現設計圖

3)測試右移:埋點灰度/線上監控

埋點管理平台解決了埋點需求管理和線下埋點測試的問題,但是版本發布後的埋點質量如何跟進,漏測、多報/少報的場景如何能儘早發現?我們的答案是通過埋點監控平台。

埋點監控平台分為3層,業務層、計算層、數據層:

a) 業務層:主要是前端的業務模型。能夠做到分鐘級的單條埋點通過率查詢,支持多版本的埋點波動對比,具備不同維度的埋點通過率概覽,支持用戶行為查詢,方便複雜路徑的埋點問題定位;

b) 計算層:是核心層,它利用Blink實時計算引擎對線上大數據進行規則匹配,並結合業務層的模型需求,進行多維監控和預警;

c) 數據層:主要是線上大批量用戶的埋點日誌和埋點平台中錄入的埋點規則。

優酷客戶端埋點質量保障三步曲 5

監控平台架構圖

平台的業務價值主要體現為兩點:

a) 能夠及時發現漏測場景:線上用戶複雜場景的埋點,會有測試不充分的情況,就可以在版本灰度階段來發現,避免遺漏到線上;

b) 能夠發現多報少報的問題:它是版本測試中很難發現的,通過版本間的波動對比,能夠有效的覆蓋這類問題。目前監控平台會在2個階段使用,版本灰度階段和線上發布階段,灰度階段更重要。

優酷客戶端埋點質量保障三步曲 6

概覽監控圖

優酷客戶端埋點質量保障三步曲 7

業務/事件監控日報圖

優酷客戶端埋點質量保障三步曲 8

版本趨勢對比圖

借助平台化的能力,從需求管理、埋點測試到埋點監控,埋點測試體系構建完成,我們走出了埋點質量保障的第1步。

2.提升業務深入度

測試體系猶如測試的武器,如何使用好這些武器,對測試同學自身也是有一定的要求,這就是埋點質量保障的第2步,深入度提升。

首先,對於測試同學,在埋點測試過程中是否有如下疑問:

“每個版本的產品需求依據是什麼?”

“產品週報裡的數據指標和實際測試的埋點有什麼關聯?”

“版本緊急集成要提供的數據從何而來?”

有這些疑問,是因為很多同學將埋點測試和業務孤立開來,只管埋頭測埋點,保證上報和產品要求的一致就行,卻不關注埋點和對應產品需求的關係與影響。

埋點來源於業務,作為測試,要理解業務,理解埋點對應的業務數據指標,才能理解業務的數據價值,為此,我們進行了一系列的學習和梳理:

優酷客戶端埋點質量保障三步曲 9

3.優化流程,細化任務

完備的測試體系、深入的業務數據理解是測試內部的自我修煉,埋點需求從確定到最終發布上線,如果沒有清晰的流程和明確的分工,內功再好也無用武之地。所以,埋點質量保障的第3步是從流程上進行優化,我們聯合產品、開發、數據、項目管理團隊對整個項目過程進行了細化,明確各角色職責和各階段任務,各司其職,高效協作,版本質量更可控。

優酷客戶端埋點質量保障三步曲 10

四、總結&規劃

埋點質量保障順利完成了3步改造,客戶端埋點測試效率提升近50%,連續多個版本線上無重大數據問題,在一些線上問題排查過程中測試也體現了較好的業務理解。數據質量保障任重道遠,我們將不斷優化,未來希望現有平台能夠支持UT之外的埋點,並和開發側的提效工具結合,實現測試左移,同時,監控報警和問題響應機制上繼續優化。

作者簡介

顧敏,阿里文娛高級測試開發工程師。

相關閱讀

優酷播放測試體系構建及平台化整合方案

優酷如何構建覆蓋全網的播放白盒測試體系

優酷大劇全鏈路技術保障探索和實踐

優酷客戶端打包構建階段的質量評估解決方案——PreMTL

優酷客戶端性能評估解決方案:通用性能測試