離線數倉測試


一.文檔編寫目的

為了指導和規范大數據測試人員對離線數倉的測試方法,減少因為數據測試不夠嚴格,導致后期數據應用出現偏差和錯誤的情況。特別關注下后面的測試總結,是為了減少漏測,添加常見核心測試點,希望能夠指導離線數倉測試人員。

二.大數據測試類型

1.功能測試

通常是數據完整性測試,數據一致性測試,數據准確性測試,數據及時性測試,數據約束檢查,數據存儲檢查,SQL文件檢查,數據處理邏輯驗證,調度任務檢查

a)數據約束檢查

檢查數據類型,數據長度,索引和主鍵等是否符合要求,檢查目標表的約束條件是否滿足設計預期。

b)數據存儲檢查

c)SQL 腳本文件檢查

  • 開發規范檢查  ---這塊現在沒有嚴格要求,主要是檢查HiveQL注釋,字段,表名,中間表,“臟”數據處理,join操作等
  • SQl語法檢查--檢查SQL連接方式,函數,聚合和關鍵字的使用是否正確,確認union(去重)和union all(不去重) 

 

d)數據處理邏輯驗證

  • 驗證過程是否符合業務邏輯,運算符和函數的使用是否正確。
  • 對異常值,“臟”數據,極值,特殊數據(0值,負數等)的 處理是否符合預期。
  • 字段類型與實際數據是否一致,主鍵構成是否合理
  • 去重記錄,是否按照去重規則規則去重處理
  • 數據的輸入輸出是否符合規定格式

e)調度任務檢查

  • 依賴的任務是否配置合理
  • 任務依賴層次是否合理
  • 任務是否在規定時間內完成
  • 任務調度時間設置是否合理

 

 

 

 

 

 

性能測試

 

 

 

 

性能測試結果

場景編號
並發線程
數據量
運行時間/s
QPS
GC
Gc Time/ms
95%延時/ms
1 1 100萬條插入數據 753        
2 16 100萬條插入數據 70        
3 50 100萬條插入數據 43        
4 100 100萬條插入數據 39        
5 200 100萬條插入數據 39        
6 16 50萬條讀取數據,50萬條更新數據 95        
7 50 50萬條讀取數據,50萬條更新數據 68        

三.離線數倉測試流程

分析業務和需求->制定測試方案和測試計划->設計測試用例和准備測試數據->測試執行→生成測試報告並分析結果

(1)分析業務和需求

在澄清會上就要理解業務和需求

(2)制定測試方案和測試計划

參與技術評審,了解技術架構設計,模塊設計和數據模型設計等,並根據不同業務場景,進行項目排期

(3)設計測試用例和准備測試數據

測試用例設計

測試點
測試用例
源數據和目標數據驗證
  • 對照相應的映射表驗證源表和目標表的結構
  • 驗證源數據類型和目標數據類型是否相同
  • 驗證元數據和目標數據的長度
  • 對照映射文檔驗證列名
數據一致性驗證 檢查完整性約束是否正確使用
數據完整性驗證
  • 確保按預期將數據從源傳輸到目標
  • 比較源和目標的記錄計數
  • 檢查數據是否在目標表的列中有被截斷現象
  • 檢查被拒絕的記錄
  • 檢查邊界值
  • 檢查加載數據的唯一鍵屬性
約束驗證 驗證是否按預期為特定表定義了約束
數據正確性驗證

檢查數據是否已記錄或拼寫是否正確

檢查NULL,以及

數據轉換驗證  

造數

  • 業務上根據圖形用戶界面構造數據
  • 批量數據生成工具構造數據
  • 通過數據庫生成數據
  • 真實業務數據脫敏后導入測試環境
  • 基於中間件構造數據

(4)測試執行

(5)生成測試報告並分析結果

 

三.測試總結

1.典型問題

a)數據質量

我們需要關注數據本身的質量問題,以及數據處理過程中各種處理方式和結果是否滿足預期,是否與邏輯不相符,是否影響后續業務的使用等問題,常見如下:

  • 數據記錄不唯一
  • 數據處理過濾條件不正確(特別注意狀態和是否過濾刪除)
  • 處理前后的數據不一致或有部分數據丟失(一般是關聯的數據類型不同,關聯有問題)
  • 數據流轉過程中NULL值被自動替換的問題。
  • 處理前后的數據列順序錯誤
  • 數據的約束關系不正確

現在上了數據質量平台,可以用這個快速發現問題。

b)數據SQL問題

看代碼中的source中的scripts對應表的SQL

  • SQL未對異常數據進行處理(比如空數據的處理)
  • 左右連接使用不正確(實時就發現join和left join使用不恰當)
  • 數據庫索引問題(影響數據庫的查詢速度)
  • SQL函數使用不當

c)數據傾斜的問題

d)大數據分布測試與大數據對比測試

測試類型 常見核心測試點 項目開發類型
新增表 新增字段 修改舊字段 修改表邏輯
大數據分布測試 表級測試-總數據量    
表級測試-是否存在重復數據    
表級測試-主鍵唯一性    
表級測試-空值量    
表級測試-空值率    
表級測試-去重數據量    
表級測試-有效數據量    
大數據對比測試 表級測試-總數據量對比    
表級測試-全量數據對比    
字段級測試-去重數據量對比    
字段級測試-統計類指標對比    

e)數據倉庫分層測試重點

數據倉庫層級
測試目標
測試范圍
測試重點
ods 數據完整性,數據正確性 表,字段

1)表命名規范檢查

2)字段信息檢查

3)數據質量檢查(空值,零值,主鍵唯一性和字段值域

4)數據完整性檢查

dwd 數據完整性,數據正確性和數據清洗邏輯 表,字段

1)表命名規范檢查

2)字段信息檢查

3)數據質量檢查(空值,零值,主鍵唯一性和字段值域

4)數據完整性檢查

5)數據清洗邏輯檢查(包括數據填充,噪聲數據去除等)

dws 業務邏輯性 表,重點字段

1)表命名規范檢查

2)字段信息檢查

3)指標計算,勾稽(內在邏輯對應關系)邏輯檢查

ads 業務邏輯性 表,重點字段

1)表命名規范檢查

2)字段信息檢查

3)指標計算,勾稽(內在邏輯對應關系)邏輯檢查


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM