什么是大數據測試
大數據測試通常是指對采用大數據技術的系統或應用的測試。大數據測試可以分為兩個維度,一個維度是數據測試,另一個維度是大數據系統測試和大數據應用產品測試。
數據測試:
主要關注數據的完整性、准確性和一致性等。
大數據系統測試和大數據應用產品測試:
這里的大數據系統一般是指使用hadoop生態組件搭建的或者自主研發的大數據系統。自主研發的大數據系統主要包括數據的存儲、計算和分析等應用。
大數據系統測試主要包括功能、基准、安全和可靠性測試。功能測試主要是對數據的采集和傳輸、數據的存儲和管理、數據計算、數據的查詢和分析,以及數據的可視化等功能的測試。基准測試主要用於對比和評估大數據框架組件的性能指標等。
大數據應用產品,典型的有BI報表、數據分析平台等。構建大數據應用產品通常依賴數據倉庫和ETL過程。
大數據測試類型
按照測試類型划分:功能測試、性能測試、其他非功能性測試(兼容、安全等)
數據的生命周期划分:數據采集測試、數據處理測試、數據計算測試和應用展示階段測試
功能測試
功能測試主要覆蓋數據質量、數據維度、數據處理和數據展示等多個方面。功能測試常用的測試方法:數據的完整性、一致性、准確性、及時性測試、數據約束檢查、數據存儲檢查、sql文件檢查、數據處理邏輯驗證、shell腳本測試和調度任務測試等。
在數據質量方面,主要包括4種測試方法: 數據的完整性、一致性、准確性、及時性測試。
數據的完整性測試
數據的一致性測試
數據的准確性測試
數據的及時性測試
數據的及時性是指數據從產生到可以查看的時間間隔(也稱數據的延長時長)在可接受范圍。及時性對大數據離線項目的影響不大,但對大數據實施項目有很大影響
數據約束檢查
數據約束檢查主要檢查:數據類型、數據長度、索引和主鍵是否符合要求。數據類型比較豐富,測試過程中需要覆蓋所有的數據類型,對於 不支持的數據類型也要有異常處理。檢查目標表中的約束關系是否滿足設計期望。
數據約束檢查
數據存儲檢查主要檢查數據的存儲是否合理、正確
1)評估是否需要以壓縮文件形式存儲 2)hive表類型選擇是否合理(內部表、外部表、分區表和分桶表)3)代碼中讀取和寫入的文件及目錄是否正確
SQL文件檢查
1)開發規范檢查
eg:建議先進行過濾操作,去掉無用數據后在進行join操作;建議將小表放在join的左邊,join左邊的邊會首先加載進內存,這樣可以有效降低內存溢出錯誤發生的概率;盡量少使用distinct操作,因為distinct操作比較耗資源等等
2)sql語法檢查
主要檢查sql是否存在語法問題,即檢查sql連接方式、函數、聚合和關鍵字的使用是否正確
數據處理邏輯驗證
1)驗證過程是否符合業務邏輯,運算符和函數的使用是否正確
2)對異常值,“臟”數據、極值、特殊數據(0值、負值)的處理是否符合預期
3)字段類型愚書記數據是否一致,主鍵構成是否合理
4)是否按照去重規則進行去重處理
調度任務測試
1)任務本身是否支持重跑,任務失敗是否有日志,重跑數據是否正常有重復數據,任務失敗是否可以監控告警等
2)依賴的父任務是否更配置合理
3)任務依賴層次是否合理,任務執行先后、並行是否合理,是否會沖突。
4)任務是否在規定的時間內完成