◆羅 芬
?
大數據系統的評測方法研究
◆羅 芬
(上海市軟件評測中心有限公司 上海 200233)
隨著大數據時代的來臨,大數據越來越受到關注。大數據系統架構設計的復雜性使得系統測試也非常復雜,本文將簡要介紹大數據系統的特點,其測試的挑戰和關鍵技術,并通過介紹測試方法,以期提高大數據系統的穩定性和安全性。
大數據;大數據分析;Hadoop技術架構;大數據測試
大數據已經毫無爭議成為當下信息技術發展趨勢和熱點,其系統具有高性能、高擴展、高可用、高效能、易使用、易管理等特點,其架構設計的復雜性使得系統測試也非常復雜,本文將在通用的系統與軟件要求和評價規范標準[1]的基礎上,基于大數據的核心數據特征和Hadoop技術架構特點提出大數據測試方法、關鍵技術,對大數據系統軟件的評測方法做嘗試性研究。
大數據系統是指存儲、分析處理大數據的軟硬件系統,主要包括大數據的存儲系統和大數據分析處理系統。大數據系統具有高性能、高擴展、高可用、高效能、易用、易管理等特點,結合系統與軟件工程中系統與軟件質量要求和評價,其測試關鍵點有:
( 1 ) 數據的讀、寫、刪等測試,一般將對照需求規格書對所有的基本功能(接口)進行測試,保證系統基本功能的正確性。
( 2 ) 高可擴展性測試,大數據系統一般是分布式的,分布式系統支持服務熱插拔,其測試需要根據本身系統的特性設計相應的擴展功能或者容災用例,如增加或者刪除節點,此時需要考慮數據的完整性和一致性,不能影響數據正常操作[2]。
( 3 ) 高可用性也叫高穩定性,大數據系統的測試需要增加穩定性壓力測試,保證各種情況下服務的正常。增加異常的容災用例,如不同節點的異常以及服務的關起等測試[3],在一定約束條件下測試系統所能承受的最大并發用戶量、運行時間、數據量,以確定系統在給定約束條件下的服務能力,并最終確定在什么負載條件下系統性能處于失效狀態,并以此來獲得系統能提供的最大服務級別的測試。
( 4 ) 易用性測試,主要從可辨識性(功能的易理解性、描述的完整性和軟件出錯消息的易理解性)、易學性(用戶接口、幫助功能或用戶文檔集的有效性)、易操作性、用戶差錯防御性、用戶界面舒適性(用戶界面的易定制性)、易訪問性等維度判別該大數據系統的易用性。
首先由IBM提出的大數據系統本身具有5V特性,即:大規模(Volume)、多種數據類型(Variety)、多維度(Multi-Dimension)、數據價值密度低(Value)和可控的數據質量(Qualify),設計大數據系統的測試用例同時需要滿足5V特性;其次,大數據系統架構一般采用Master-Slave或者Peer to Peer等分布式架構,其架構復雜,其網絡環境、硬件配置、系統的配置參數、虛擬化等因素都將影響大數據系統的性能;第三,來自測試方法的挑戰,傳統的測試工具并不適用大數據測試系統,缺乏自動化測試手段,系統的不同模塊需要不同的測試技術等;第四,缺乏專業的測試人員,大數據系統的特點對測試人員的測試技術和知識面要求比較高,但是目前具備專業的大數據系統測試評測人員并不多。
大數據系統評測一般分為4個步驟,分別是評測計劃(需求分析、評測環境準備)、測評規程(對于給定測試用例的設置、執行和結果評價的詳細說明)、評測過程(評測數據加載)、系統評測與結果分析。
大數據系統評測計劃主要關注兩個階段,一是需求分析階段,一是評測環境準備階段。
評測需求分析階段主要關注的是大數據系統的性能和可靠性,例如吞吐量、任務完工時間、內存利用率等多個指標,可以反映大數據分析平臺的處理能力、資源利用能力性能等等。
大數據系統對行業背景有一定的依賴性,很難進行客觀、有效地測試,因此在大數據系統測試之前應做好關于業務背景、測試平臺設計的前期準備工作(如圖1所示)。大數據系統評測環境搭建通常需要準備一個具有分布式數據存儲與分布式數據計算的集群,具有足夠的存儲與處理大規模數據集。存儲空間包括離線的磁盤空間和內存空間。同時要確保集群中沒有運行其他的應用,集群中CPU和內存利用率處于最低開銷。

圖1 大數據測試的前期準備
大數據系統評測規程中測試用例設計主要來源于兩大類。一類來源于實際的業務數據,一類來源于大數據基準測試工具生成的模擬數據,我們根據系統評測的需要,設定合適的數據量、數據類型和數據邏輯。
在大數據系統評價過程中重點在評測用例加載階段,我們需要重點驗證數據是否已正確地加載到了分布式存儲系統,例如源數據和HDFS上大數據目錄、數據大小是否匹配,數據是否加載到了正確的HDFS存儲目錄等。如果數據需要被加載到分布式數據庫系統的話,我們需要重點驗證數據是否能正確地加載到數據表中。
大數據系統評測將從功能性、性能效率、兼容性、易用性、可靠性、信息安全性、維護性、可移植性、有效性、效率、滿意度、抗風險、周境覆蓋等特性,重點評測系統的功能性、性能效率、兼容性、信息安全性。
3.4.1功能性測試
大數據系統的功能性測試主要考慮功能完備性、功能正確性、功能適合性以及功能性的依從性,并以書面形式展示可驗證的依從性證據。一般大數據系統的功能測試主要采用基于用戶文檔集的黑盒測試方法,通過用戶界面與用戶程序的交互,對交互的輸出或者結果進行分析,以此驗證系統功能是否符合產品說明中的要求及功能是否正確實現。
功能測試主要從以下角度來進行考慮:
( 1 ) 系統基本功能的正確性、準確性;
( 2 ) 系統功能實現的完整性,是否實現了需求相關文檔中的規定;
( 3 ) 系統內部接口功能是否正確實現;
( 4 ) 系統的每個特性至少被一個正確測試用例所覆蓋;
( 5 ) 測試用例的輸入包括有效等價類、無效等價類和邊界值數據;
( 6 ) 逐項測試系統/子系統設計說明規定系統功能特性;
( 7 ) 測試系統的輸出及格式。
Hadoop是目前最熱門的大數據處理架構[4]。其數據處理架構及其測試要點如圖2所示。

圖2 Hadoop數據處理架構及其測試要點
3.4.2性能測試
性能是評估一個大數據系統的最為關鍵的維度,大數據系統性能主要包括吞吐量、任務完工時間、內存利用率等多個指標,可以反映大數據系統的處理能力、資源利用能力等性能。可以通過Hadoop性能監控器來監測運行狀態性能指標和瓶頸問題,性能測試采用自動化方式進行,測試系統在不同負載情況下的性能[5]。
3.4.3容錯性測試
容錯性測試主要是為了避免死機,在測試過程中,大數據系統引起整個運行環境死機的情況,系統部分失效后如何在不會嚴重地影響整體性能下自動恢復的能力。當故障發生時,大數據系統應該在進行恢復的同時繼續以可接受的方式進行操作,在發生錯誤時某種程度上可以繼續操作。此時,需要根據應用場景來設計解決方案和具體部署,然后手動進行測試。
3.4.4信息安全性測試
大數據系統信息安全性主要考慮保密性,一方面是訪問的可控制性,可控制不同用戶對系統進行訪問的權限,系統能夠屏蔽非法操作;另一方面是病毒檢查,采用殺毒軟件對被測軟件進行掃描,檢測軟件是否含有已知的病毒。
在當今信息化潮流下,大數據系統產業正快速發展,與此同時,大數據系統的特殊性和復雜性決定了對其測試的艱巨性。實現對大數據系統的有效測試,才能最大限度提高大數據系統產品質量,更好地服務于各個領域。
[1]GB/T 25000.51-2016 系統與軟件工程系統與軟件質量要求與評價(SQuaRE)第51部分:就緒可用軟件產品(RUSP)的質量要求和測試細則[s].
[2]TRAN N,SKHIRI S,LESUISSE A,et al.AROM:p-rocessing big data with data flow graphs and functional pro-gramming [C]// Proc of the 4th IEEE International Conferen-ce on Cloud Computing Technology and Science 2012,875-882.
[3]MAGNUSSON J,KVERNVIK T.Subscriber classificat-ion within telecom networks utilizing big data technologies and machine learning [C]//Proc of the 1st International Conf--erence on Big Data,Streams and Heterogeneous Source Mi-ning.New York:ACM Press,2012:77-84.
[4]HOFSTEE.H.P,CHEN.G.C,GEBARA.F.H,etal,Un--derstanding system design for big data workloads[J].IBM Jo-urnal of Research and Development,2013,5793/40:1-10.
[5]代亮,陳婷,許宏科,大數據測試技術研究[J].計算機應用研究,2014,31(6):1607-1608.