-- 轉(zhuǎn)自挖數(shù)網(wǎng) 自己備份用 這個(gè)網(wǎng)貌似掛掉了
數(shù)據(jù)質(zhì)量是數(shù)據(jù)應(yīng)用的核心基礎(chǔ),數(shù)據(jù)測試是非常重要的一環(huán)幸缕,若質(zhì)量把控不夠嚴(yán)格群发,后續(xù)所有的行為都可能有偏差甚至錯(cuò)誤晰韵,所以做好數(shù)據(jù)測試很關(guān)鍵,如下是針對怎樣做好數(shù)據(jù)測試的一些總結(jié)
核心理論
以小博大熟妓,即用小部分?jǐn)?shù)據(jù)驗(yàn)證全部數(shù)據(jù)雪猪,所以如何選擇小去驗(yàn)證大呢,主要是構(gòu)成結(jié)果數(shù)據(jù)的維度和度量組合起愈,從中找到可覆蓋全部的小部分?jǐn)?shù)據(jù)
對比對象
對比對象指結(jié)果數(shù)據(jù)同哪些數(shù)據(jù)進(jìn)行比對只恨,從而驗(yàn)證數(shù)據(jù)的準(zhǔn)確,即一方數(shù)據(jù)是準(zhǔn)確的抬虽,另一方基于其進(jìn)行的二次計(jì)算官觅,測試二次計(jì)算的過程是否存在問題。數(shù)據(jù)測試的主要場景是數(shù)倉模型阐污、應(yīng)用層報(bào)表休涤、臨時(shí)數(shù)據(jù),這三塊對比對象有所不同
(1)數(shù)倉模型
數(shù)據(jù)來自業(yè)務(wù)系統(tǒng)笛辟,經(jīng)過處理整合成數(shù)倉模型功氨,便于應(yīng)用于更復(fù)雜的數(shù)據(jù)場景,因此假設(shè)業(yè)務(wù)系統(tǒng)數(shù)據(jù)正確手幢,數(shù)倉模型的數(shù)據(jù)與其對上即可
(2)應(yīng)用層報(bào)表
數(shù)據(jù)是基于數(shù)倉模型開發(fā)的結(jié)果捷凄,中間可能會(huì)有DM、RPT層等围来,此處統(tǒng)稱為應(yīng)用層跺涤,假設(shè)數(shù)倉模型數(shù)據(jù)正確,應(yīng)用層和數(shù)倉模型對上即可
補(bǔ)充:若在已開發(fā)好的應(yīng)用層上迭代监透,部分未改變?nèi)魏芜壿嫷臄?shù)據(jù)可同報(bào)表原有數(shù)據(jù)比對钦铁,修改邏輯的數(shù)據(jù)和數(shù)倉模型對比即可
(3)臨時(shí)數(shù)據(jù)
數(shù)據(jù)都有臨時(shí)的邏輯和數(shù)據(jù)來源,和來源的數(shù)據(jù)對應(yīng)上即可
*如何測試呢才漆?*數(shù)倉模型牛曹、應(yīng)用層、臨時(shí)數(shù)據(jù)有各自的特色醇滥,分別展開討論
“數(shù)倉模型”
需測試的目標(biāo)表格式如下
步驟一 大數(shù)校驗(yàn)
測試主題:目標(biāo)表和源表的數(shù)據(jù)條數(shù)是否一致
如源數(shù)據(jù)有10000條黎比,目標(biāo)表中是否有10000條(前提是源數(shù)據(jù)沒有臟數(shù)據(jù)的前提下)
步驟二 預(yù)知校驗(yàn)
測試主題:各維度存在的枚舉值是已知的,檢驗(yàn)數(shù)倉中各維度枚舉值是否完整鸳玩,如門店是否包含全部門店阅虫、渠道是否包含全部渠道等
**
**
步驟三 各維度-度量值的明細(xì)數(shù)據(jù)測試
測試主題:針對具體的維度、度量值的測試
(1)設(shè)計(jì)表格不跟,協(xié)助測試
數(shù)據(jù)可看的維度視角非常多颓帝,通過測試表格把思路梳理清楚,避免想到什么測試什么造成的遺漏,且記錄測試的過程购城,便于回顧總結(jié)吕座,看似很麻煩,但數(shù)據(jù)質(zhì)量是首要保證瘪板,且執(zhí)行起來非常清晰吴趴,磨刀不誤砍柴工
格式如下
注釋:
a.指標(biāo)是需要測試數(shù)據(jù)表的度量值,全部需測試
b.組合維度指確定好的以小博大的小侮攀,由結(jié)果表中各種不同維度組合而成的數(shù)據(jù)锣枝,具體后續(xù)有詳細(xì)說明
(2)確定需測試的組合維度
方法:數(shù)據(jù)模型保存的是最細(xì)顆粒度的數(shù)據(jù),因此粒度是一個(gè)兰英,但每個(gè)維度的枚舉值卻有多 個(gè)撇叁,因此需基于各維度的枚舉值,找到可代表全部數(shù)據(jù)的枚舉值互相組合畦贸,從而確定測試的組合維度
案例:維度枚舉值如下
基于上表確認(rèn)測試的組合維度值税朴,基于選擇的枚舉值互相組合后仍很多,可選擇任意交叉組合家制,篩選原則是盡可能保證每個(gè)維度的枚舉值出現(xiàn)的頻率均等
*此處選擇組合成9組不同的值作為“組合維度”*
- 門店1&天貓&生鮮的商品1&當(dāng)日配送&是退貨單&是預(yù)售
- 門店2&京東&食品的商品1&日次配送&不是退貨單&不是預(yù)售
- 門店3&唯品會(huì)&用品的商品1&自提&是退貨單&是預(yù)售
- 門店1&自營&加工的商品1&次日配送&不是退貨單&不是預(yù)售
- 門店2&天貓&食品的商品2&當(dāng)日配送&是退貨單&不是預(yù)售
- 門店3&京東&生鮮的商品2&次日配送&不是退貨單&是預(yù)售
- 門店1&唯品會(huì)&用品的商品2&自提&不是退貨單&不是預(yù)售
- 門店2&自營&加工的商品2&自提&是退貨單&不是預(yù)售
- 門店3&天貓&食品的商品2&次日配送&不是退貨單&是預(yù)售
(3)測試方法
數(shù)據(jù)在業(yè)務(wù)系統(tǒng)有最直接的結(jié)果,對應(yīng)條件篩選好后泡一,直接比對兩者的度量值(如銷售額)是否一致颤殴,結(jié)果記錄在測試表中,完善的記錄可幫助全面的看出問題在哪鼻忠,需如何完善
“應(yīng)用層報(bào)表”
結(jié)果數(shù)據(jù)是經(jīng)過各種聚合計(jì)算得來涵但,因此不需數(shù)倉的“條數(shù)比對”
步驟一 預(yù)知校驗(yàn)
測試主題:每個(gè)維度的枚舉值是否完整
如全國/區(qū)域,是否應(yīng)該出現(xiàn)的區(qū)域都出現(xiàn)了帖蔓,比如全國/區(qū)域/門店矮瘟,是否每家門店都出現(xiàn)了
步驟二 各維度-度量值的明細(xì)數(shù)據(jù)測試
測試主題:針對具體的維度、度量值的測試
(1)設(shè)計(jì)表格塑娇,協(xié)助測試
和數(shù)倉類似澈侠,此處不再重復(fù)
(2)確定需測試的組合維度
方法:應(yīng)用表的維度是事先約定好的,需針對每個(gè)維度選擇合適的枚舉值埋酬,枚舉值和數(shù)倉的確認(rèn)過程是一樣的哨啃,此處不再復(fù)述
補(bǔ)充:枚舉值的選擇和數(shù)倉有差別,因數(shù)倉是一個(gè)維度粒度写妥,但應(yīng)用層在維度上存在很多組合拳球,粒度不是最細(xì)的,有很多層次的歸屬關(guān)系珍特,如:全國累計(jì)祝峻、全國各區(qū)域累計(jì)、全國各區(qū)域各門店累計(jì),這三者之間還有從屬關(guān)系莱找,所以測試粒度的枚舉值選擇酬姆,和數(shù)倉不同
案例:
每個(gè)維度最少選擇3個(gè)枚舉值參與測試,若時(shí)間充运尉啵可把數(shù)量提升轴踱,由此可確保更完整
選擇如下由不同枚舉值組合而成的組合維度參與測試
(3)測試方法
方法1:把原始數(shù)據(jù)導(dǎo)出到excel進(jìn)行各種規(guī)則組合和結(jié)果數(shù)據(jù)計(jì)算對比
? 優(yōu)點(diǎn)1:看數(shù)據(jù)時(shí),非常直觀了解原始數(shù)據(jù)的模樣谚赎,或許可讓測試者發(fā)現(xiàn)一些之前忽略的盲點(diǎn)淫僻,畢竟真實(shí)數(shù)據(jù)中藏著什么其他數(shù)據(jù),我們是沒辦法預(yù)知的
? 優(yōu)點(diǎn)2:excel處理起來很便捷壶唤,篩選過濾加工雳灵,但有個(gè)很明顯的缺點(diǎn)就是沒辦法快速高效的處理很大批量的數(shù)據(jù),所以適用于數(shù)量小的場景下進(jìn)行測試
方法2:基于計(jì)算規(guī)則編輯好SQL闸盔,從數(shù)倉直接計(jì)算的結(jié)果和結(jié)果數(shù)據(jù)對比
? 方法1的優(yōu)點(diǎn)是方法2的缺點(diǎn)悯辙,方法2的缺點(diǎn)就是方法1的優(yōu)點(diǎn)
上述方式在實(shí)際中可靈活互相組合應(yīng)用,不是限定死
步驟三 具有從屬關(guān)系維度之間的度量數(shù)據(jù)要一致
測試主題:結(jié)果表中迎吵,不同維度粒度之間是有從屬關(guān)系的躲撰,這類數(shù)據(jù)必須保持一致。本處的從屬關(guān)系指主維度的數(shù)據(jù)可由從維度的累積而成击费,祥見后續(xù)“確認(rèn)從屬維度關(guān)系”
(1)設(shè)計(jì)表格
(2)確認(rèn)從屬維度關(guān)系
什么是從屬關(guān)系
如組合維度有 全國拢蛋、全國/省、全國/省/門店蔫巩,其中區(qū)域的累計(jì)是全國谆棱,區(qū)域?qū)?yīng)門店的累計(jì)是區(qū)域的累計(jì),所以這三者之間的數(shù)據(jù)需一致
從屬關(guān)系確立的規(guī)則
“主維度”屬于匯總方的數(shù)據(jù)圆仔,“從維度”屬于主維度數(shù)據(jù)進(jìn)行進(jìn)一步的拆分
確定好不同維度之間的從屬關(guān)系垃瞧,針對每個(gè)從屬關(guān)系驗(yàn)證數(shù)據(jù)是否對的上
案例:
注意:部分度量值,在具有從屬關(guān)系的維度上坪郭,是不能直接累加匹配的个从,如訂單量,如果是累加的關(guān)系歪沃,就是錯(cuò)誤的信姓,需獨(dú)立計(jì)算,需特別注意下
(3)測試數(shù)據(jù)
針對從屬關(guān)系的數(shù)據(jù)需進(jìn)行全部匹配校驗(yàn)
如:主維度“全國”對應(yīng)的所有“從維度”绸罗,在“度量值:銷售額”上意推,需全部進(jìn)行累計(jì)校驗(yàn),確保完全一致珊蟀。將結(jié)果記錄在測試表中菊值,可清晰明了的看到測試過程的問題和全局
“臨時(shí)數(shù)據(jù)測試”
臨時(shí)數(shù)據(jù)的特點(diǎn)是完全基于新的規(guī)則獲取的數(shù)據(jù)外驱,相當(dāng)于把開發(fā)干的活都做了一遍,但好處是維度少腻窒、數(shù)據(jù)少昵宇,需驗(yàn)證的數(shù)據(jù)不多,因此無需那么復(fù)雜的設(shè)計(jì)測試表格儿子。因抽數(shù)據(jù)的SQL腳本是自己寫的瓦哎,自檢相對來說比較難,所以分兩步走
步驟一 給業(yè)務(wù)看
因長久地觀察跟蹤研究柔逼,業(yè)務(wù)對自己負(fù)責(zé)業(yè)務(wù)板塊的數(shù)據(jù)敏感度很高蒋譬,明顯錯(cuò)誤的數(shù)據(jù)大多數(shù)情況下一眼是看得出來,所以讓對方幫忙做一手的判斷效率比較高
如愉适,某個(gè)門店的SKU犯助,最多4000上下,初次提供的數(shù)據(jù)是10000维咸,業(yè)務(wù)看到后直接提出來了疑問剂买,倒逼數(shù)據(jù)提供者快速查找問題出在哪里
步驟二 自校驗(yàn)
針對部分?jǐn)?shù)據(jù)導(dǎo)出其對應(yīng)的底層明細(xì)數(shù)據(jù),抽樣檢查與結(jié)果進(jìn)行匹配校驗(yàn)
補(bǔ)充重點(diǎn)
上述步驟要做好癌蓖,還有一些關(guān)鍵細(xì)節(jié)瞬哼,在此處提一下,后續(xù)也會(huì)嘗試針對關(guān)鍵點(diǎn)進(jìn)行展開分享租副,看如何可以做得更好
(1)數(shù)據(jù)產(chǎn)品(or分析師)與數(shù)據(jù)開發(fā)間合理的協(xié)作方式
協(xié)作方式是否合理非常重要坐慰,很多細(xì)節(jié)開發(fā)更清楚,但業(yè)務(wù)邏輯產(chǎn)品分析師更清楚附井,需互相更融洽滲透,做好分工協(xié)作
(2)讓業(yè)務(wù)開發(fā)更好的理解數(shù)據(jù)產(chǎn)品的真實(shí)訴求
如何與業(yè)務(wù)系統(tǒng)的開發(fā)和產(chǎn)品溝通的更好两残,讓他們更好的理解數(shù)據(jù)產(chǎn)品的真實(shí)訴求永毅,可以和他們分享數(shù)倉的建設(shè)過程,幫助更好的理解自己的某些行為可能會(huì)給數(shù)據(jù)開發(fā)帶來什么樣的后果
(3)底層表摸底
對底層表結(jié)構(gòu)在正式開工之前進(jìn)行摸底工作人弓,這樣可以便于加深熟悉沼死,避免走坑
寫在最后
數(shù)據(jù)測試是一門需要耐心細(xì)心的辛苦活,方法也是需要持續(xù)優(yōu)化崔赌,非常歡迎有自己方法的你來補(bǔ)充意蛀,一起來完善