大數據項目的一般測試方法


轉自:https://blog.csdn.net/qq_32595075/article/details/80234568

一.功能性測試

      大數據功能主要涉及系統實現面向大數據分析應用的POSIX API,包括文件讀取與訪問控制,元數據操作,鎖操作等功能;

大數據分析系統的POSIX語義不同,實現的文件系統API也不同,功能測試要覆蓋到大數據系統涉及實現的API和功能點;

功能測試工作量大,應該重點考慮應用自動化測試方法進行,同時結合手動測試補充,自動化工具推薦ltp,fstest和locktests。

    在多個節點上處理大數據的過程中,存在由於‘無用數據’和數據質量問題帶來的各種問題。功能測試主要用以識別由於編碼錯誤或節點配置錯誤帶來的數據問題。

其包括以下幾個階段:

         a.數據導入/預處理驗證階段

根據具體的應用背景和業務需求,各種數據源如網絡日志,物聯網,社會網絡及互聯網文本和文件等被按需加載到HDFS中待處理。在這個過程可能會由於不正確或不復制,存儲而導致的錯誤數據,對於這種情況,可采用以下方式進行測試:

1.輸入文件與源文件進行比對,保證數據的一致性;

2.根據數據需求來保證獲取數據的准確性;

3.驗證文件被正確的加載進HDFS,且被分割,復制到不同的數據節點中。

b.MapReduce數據輸出驗證階段

當數據加載進行HDFS后,mapreduce開始對來自不同數據源的數據進行處理。在這個過程中可能會出現mapreduce處理過程中的編碼問題,如在單一節點上運行正確,在多個節點上運行不正確的問題,包括不正確的聚合,節點配置,輸出格式等。針對於這個階段的問題,可采用以下驗證手段:

1.驗證梳理數據處理正常完成,輸出文件正常得到;

2.在單個節點上驗證大數據的業務邏輯,進

而在多節點上進行相同驗證;

3.驗證mapreduce處理過程的key/value對是否正確生產;

4.在reduce過程結束后驗證數據的聚集合並是否正確;

5.通過源文件驗證輸出數據來保證數據處理正確完成;

6.按照大數據業務所需,驗證輸出數據文件格式是否符合要求。

c.驗證大數據ETL到數據倉庫

當mapreduce過程結束后,產生的數據輸出文件將被按需移至數據倉庫或其它的事務型系統.在此過程中,可能會由於不正確地應用轉換規則,從HDFS中提取的數據不完全而帶來問題。針對於這個階段的問題可采用以下方法:

1.驗證轉換規則是否正確應用;

2.通過比較目標表數據和HDFS文件數據來驗證是否有數據損壞;

3.驗證目標系統數據加載是否成功;

4.驗證目標系統的數據完整性。

d.驗證分析報告

從數據倉庫或者Hive中得到的數據,可通過報表工具得到分析報告;這個過程可能會產生報表定義不能達到要求的報表數據問題;在這個過程中可通過查詢來驗證報表是否滿足業務要求。

二.非功能性測試

    由於大數據面向具體行業的應用,除了功能性測試,在整個大數據處理框架下需要進行非功能性測試,以下幾種:

a.性能測試

性能是評估一個大數據分析系統的最為關鍵的維度,大數據系統性能主要包括吞吐量,任務完工時間,內存利用率等多個指標,可反應大數據分析平台的處理能力,資源利用能力等性能。可通過Hadoop性能監控器來監測運行狀態性能指標和瓶頸問題,性能測試采用自動化化方式進行,測試系統在不同負載情況下的性能.

b.容錯性測試

可從部分失效中自動恢復,而且不會驗證的影響整體性能,特別地,當故障發生時,大數據分析系統應該在進行恢復的同時繼續以可接受的方式進行操作,在發生錯誤時某種程度上可以繼續操作,需根據應用場景來設計解決方案和具體部署,然后手動測試。

c.可用性測試

高可用性已是大數據分析不可或缺的特性之一,從而保證數據應用業務的連續性.大數據高可用性對很多應用非常關鍵,需要嚴格進行測試和驗證,以手動測試為主。

d.擴展性測試

彈性擴展能力對於大數據時代的文件系統尤其重要,文件系統擴展性測試主要包括測試系統彈性擴展能力(擴展/回縮)及擴展系統帶來的性能影響,驗證是否具有線性擴展能力,以手動測試為主。

e.穩定性測試

大數據分析系統通常是不間斷長期運行,穩定性的重要性不言而喻,穩定測試主要驗證系統在長時間(7/30/180/365*24)允許下,系統是否仍然能夠正常運行,功能是否正常.穩定性測試通常采用自動化方式進行,LTP,10ZONE,POSTMARK,FIO等工具對測試系統產生負載,同時需要驗證功能。

f.部署方式測試

大數據具備scale-out的特點,能夠構建大規模,高性能的文件系統集群。針對不同應用和解決方案,文件系統部署方式會有顯著不同;

部署方式測試需要測試不同場景下的系統部署方式,包括自動安裝配置,集群規模,硬件配置(服務器,存儲,網絡),自動負載均衡等,這部分測試不大可能進行自動化測試,需要根據應用場景來設計解決方案和具體部署,再進行手動測試.

g.數據一致性測試

這里的數據一致性是指文件系統中的數據與從外部寫入前的數據保持一致,即寫入數據與讀出數據始終是一致的.數據一致性能夠表明文件系統可保證數據的完整性,不會導致數據丟失或數據錯誤,這是文件系統最基本的功能,測試可用diff,md5sum編寫腳本自動化測試,LTP也提供了數據一致性的測試工具。

h.壓力測試

大數據分析系統的負載能力是存在上限的,系統過載時,系統就可能存在性能下降,功能異常,拒絕訪問等問題。壓力測試是驗證系統造大壓力下,包括數據多客戶端,高OPS壓力,高IOPS/吞吐量壓力,系統是否仍然能夠正常運行,功能是否正常,系統資源消耗情況,從而為大數據運營提供依據。


免責聲明!

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



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