一.功能性測試
大資料功能主要涉及系統實現面向大資料分析應用的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.通過原始檔驗證輸出資料來保證資料處理正確完成;5.按照大資料業務所需,驗證輸出資料檔案格式是否符合要求。
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/吞吐量壓力,系統是否仍然能夠正常執行,功能是否正常,系統資源消耗情況,從而
為大資料運營提供依據.
專案的一般流程
軟體專案一般流程可分為3大段 需求設計 編碼測試 執行除錯。一 需求設計 1.首先要做需求報告,和使用者溝通需要實現的功能,以及相關的資料和業務邏輯。然後做er圖 cdm和pdm,再做類圖,用軟體直接生成相關 專案組成員需要反覆論證邏輯是否正確,需要吵架吵架再吵架!否則以後就要麻煩。2.將前期所用 ...
機器學習專案的一般流程
將實際問題抽象為機器學習能處理的數學問題,理解實際業務場景問題是機器學習的第一步。機器學習的特徵工程和模型訓練通常都是一件非常耗時的過程,胡亂嘗試時間成本是非常高的。深入理解要處理的問題,能避免走很多彎路。理解問題,包括明確可以獲得什麼樣的資料,機器學習的目標是乙個分類 回歸還是聚類。如果都不是的話...
BI大資料專案的0 1開展模型
在軟體工程的概念裡面,對於乙個資訊系統專案,有幾類開發模型。對於bi大資料專案而言,各種模型各有利弊,對於不同類的企業,也需要不同的開發模型進行資料化運營的實施。下面為大家介紹bi大資料專案的開展使用的模型。下面我們可以結合各類軟體開發模型進行講解 1 瀑布模型 瀑布模型的開發過程是通過設計一系列階...