天天看點

大資料測試政策

一.功能性測試

      大資料功能主要涉及系統實作面向大資料分析應用的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/吞吐量壓力,系統是否仍然能夠正常運作,功能是否正常,系統資源消耗情況,進而為大資料營運提供依據。