大數據的測試工做:html
一、模塊的單獨測試前端
二、模塊間的聯調測試web
三、系統的性能測試:內存泄露、磁盤佔用、計算效率sql
四、數據驗證(核心)數據庫
下面對各個模塊的測試工做進行單獨講解。後端
0. 功能測試緩存
1. 性能測試安全
2. 自動化測試服務器
3. 文檔評審oracle
4. 腳本開發
後端的測試重點,主要集中在數據的採集處理、標籤計算效率、異常數據排查(功能),測試腳本編寫(HiveQL)、自動化腳本編寫(造數據、數據字段檢查等)
1.數據的採集處理(Extract-Transform-Load)
ETL:即將數據從源系統加載到數據倉庫的過程。源系統包括:數據文件(excel、log等)、RDD數據庫、非RDD數據庫等;
extract:從源系統提取需求數據。
transform:清洗數據(數據格式轉化、異常數據處理等)。
Load:將清洗的數據加載至數據倉庫。
ETL測試:即確保根據需求將源系統的數據通過處理後加載到目標的數據是準確的。即源和目的數據之間轉化過程當中的數據驗證。
測試類型
測試場景
券商等金融機構,其用戶天天都會產生大量的交易數據,這部分數據最初都會存儲在客戶的關係型數據庫中(oracle),所以後臺天天須要先進行數據採集,將數據採集至Hadoop的hdfs系統;數據採集事後,須要對源數據進行一次數據清洗工做:過濾異常數據(NULL)、篩掉關聯性較高的數據。
2.標籤計算效率
根據標籤文檔編寫hiveSQL、MR等標籤計算代碼,針對hiveSQL,不一樣的開發人員編寫的sql質量不一樣,執行的效率也不相同;此部分不只須要開發人員具有基本的複雜sql編寫功底,也須要開發人員掌握必定的sql性能調優能力;在數據,服務器配置必定的狀況下,效率的提高來源於對sql的優化;
因爲hivesql的計算(都會轉化成一個MR),須要大量的讀寫數據到磁盤的操做,所以計算效率較低;
impala則是將數據push到內存中,而後從內存中讀取數據,效率有大幅提高,可是耗費了較高的服務器內存,成本較高;
Spark :內存計算引擎,提供Cache機制來支持須要反覆迭代計算或者屢次數據共享,減小數據讀取的IO開銷;
3.異常數據排查
異常值:分爲兩類:null,計算錯誤的值。 (1)Null值(標籤下的數據均爲NULL),首先 需求排查是不是數據的影響(例如 依賴數據缺失)。其次排查依賴數據的因素後,就須要排查是不是hiveSQL編寫的問題和MR代碼問題。(2)標籤計算錯誤: 經過手工根據標籤公式計算標籤的值和經過hive計算得出的值進行對比,若是不一致,則須要排查是不是hivesql沒有對標籤公式進行精確實現。計算錯誤的值能夠分爲兩類:1.明顯錯誤(能夠經過sql篩選出來的異常值,針對存在閾值的標籤,好比股票倉位:倉位不得>1,若是出現>1的數據,則能夠判定此標籤計算有問題);2.非明顯錯誤(此部分沒法篩選出來,必須經過計算才能驗證)
因爲此部分計算好的數據須要導入到中臺進行進一步運用,因此此部分的數據準確性有相當重要的做用。(測試人員須要對業務十分了解)
中臺產品通常以web服務呈現。測試內容除了與普通的Java web項目相同,還要測試後臺數據Export中臺的過程當中,數據類型、準確性、完整性、性能進行測試。
就目前的項目而言:測試計劃的內容包括:需求文檔測試、後臺導出表的測試(表字段類型、數據完整性、浮點型數據精度、導出性能等)、中臺接口測試(自動化)、前端UI頁面測試、性能測試、安全測試、兼容性測試。
需求文檔:需求點梳理、整理測試點、編寫測試用例
數據連表導出:後臺數據和中臺數據的類型、精度要保持一致(中臺數據庫爲MySQL,數據類型可能和後臺的數據類型定義不一致,要確保數據類型轉化的正確性);
中臺接口測試:此部分能夠進行接口自動化測試。
UI頁面測試:根據需求文檔、UI設計圖編寫測試用例
性能測試:中臺接口的壓測、中臺服務緩存數據佔服務器的內存空間測試
安全測試:根據公司安全測試手冊進行測試(安全漏洞掃描)
兼容性測試:IE10
主要是app端的測試工做:通常的app測試工做,數據的核對(類型、精度等)
能夠看出來,整個項目始終包含數據的驗證工做。
附錄:
異常值檢查: https://www.cnblogs.com/xiaohuahua108/p/6237906.html
spark 優點: https://www.zhihu.com/question/31930662
接口測試: https://www.cnblogs.com/iloverain/p/9429116.html