軟件測試工程師又一大挑戰:大數據測試

什么是大數據

大數據是指無法在一定時間范圍內用傳統的計算機技術進行處理的海量數據集。

對于大數據的測試則需要不同的工具、技術、框架來進行處理。

大數據的體量大、多樣化和高速處理所涉及的數據生成、存儲、檢索和分析使得大數據工程師需要掌握極其高的技術功底。

需要你學習掌握更多的大數據技術、Hadoop、Mapreduce等等技術。

大數據測試策略

大數據應用程序的測試更多的是去驗證其數據處理而不是驗證其單一的功能特色。

當然在大數據測試時,功能測試和性能測試是同樣很關鍵的。

對于大數據測試工程師而言,如何高效正確的驗證經過大數據工具/框架成功處理過的至少百萬兆字節的數據將會是一個巨大的挑戰。

因為大數據高效的處理測試速度,它要求測軟件工程師具備高水平的測試技術才能應對大數據測試。

我們來看下大數據處理的三個特性:

  • 大批量
  • 實時性
  • 可交互

另外,數據質量也同樣是大數據測試的一個重要維度。

因此在進行應用程序測試之前,必須確保數據質量,并且考慮把數據質量作為數據庫測試的一部分。涉及數據的各種特性的檢驗,例如一致性、準確性、重復性、連貫性、有效性及完整性等等。

大數據應用測試步驟

下面我們一起看看大數據應用的測試過程是怎么樣的。

大數據測試過程.png

整體而言,大數據測試大體可以分為三大步驟:

  • 步驟一,數據預處理驗證
    在進行大數據測試時,首先要預hadoop前驗證數據的準確性等等。
  1. 我們數據來源可能是關系數據庫、日志系統、社交網絡等等,所以我們應該確保數據能正確的加載到系統中

  2. 我們要驗證加載的數據和源數據是一致的

  3. 我們要確保正確的提取和加載數據至hdfs中

  • 步驟二,Map Reduce驗證
    在進行大數據測試時,第二個關鍵步驟是“Map Reduce”驗證。在本階段,我們主要驗證每一個處理節點的業務邏輯是否正確,并驗證在多個運行后,確保:
  1. Map Reduce過程工作正常

  2. 數據聚合、分離規則已經實現

  3. 數據key-value關系已正確生成

  4. 驗證經過map reduce后數據的準確性等特性

  • 步驟三,結果驗證
    在本階段主要驗證在經過大數據工具/框架處理后,生成的最終數據的成果。

主要驗證:

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

  2. 驗證數據的完整性和是否成功持久化到目標系統

  3. 驗證無數據損壞

架構測試

Hadoop處理海量數據是非常的消耗資源的,良好的架構是確保大數據項目成功的基礎。糟糕的涉及會導致性能急劇的下降,進而使得系統無法滿足我們的需要,因此我們需要,或是說至少在Hadoop環境下進行性能測試、故障恢復測試,以應改進效率和應對可能的最糟糕的情況。

性能測試是一個復雜的工作,它貫穿整個測試周期,需要關注內存、CPU、網絡等等指標。

故障恢復測試則是驗證數據處理過程中可能出現的故障,為做好意外的恢復做好相應的應對措施。

性能測試

大數據性能測試主要包含以下幾個部分:

  • 數據提取、存儲效率

在本階段,我們主要驗證大數據應用從源數據中提取、加載數據的效率。

一是驗證單位時間內數據的提取、加
載效率。

二是驗證數據持久化至mongodb等庫的效率等等

  • 數據處理

在本階段,我們驗證map reduce任務的執行效率,重點關注的是數據處理的效率。當然這個過程可能也會涉及到數據的持久化相關指標,例如存儲至HDFS讀寫效率等等,同樣也會涉及在內存中處理效率,即我們的處理算法效率等等

  • 子組件性能

大數據處理,一般都會需要綜合利用各種組件來輔助處理,所以我們也是需要關注這些輔助組件的性能

性能測試策略

大數據應用性能測試涉及海量的結構化和非結構化的數據,與我們平時所面對的業務系統有所不同,所以我們需要針對大數據應用制定特定的測試策略,以應對海量的數據。

大數據測試策略.png

根據上圖性能測試執行過程一般是這樣的:

  1. 在性能測試前需要先初始化大數據集群環境
  2. 梳理和設計大數據性能測試場景
  3. 準備大數據性能測試腳本
  4. 執行并分析測試結果(如果指標異常,則調優相應的組件并重新測試)
  5. 優化配置

性能測試基礎準備

在大數據性能測試時,需要準備相關的基礎工作,如下:

  • 數據準備,我們需要在不同的節點準備什么量級數據?
  • 日志預估,在測試過程中,可能會生成多大的日志,日志的可能增量是什么樣的?
  • 并發,在測試時,可能會有多少線程并發讀和寫?
  • 超時設置,應對設置怎樣的連接超時?查詢超時?寫超時等等?
  • JVM參數,如何設置最優的jvm參數,heap size、GC機制等等
  • Map Reduce,我們應該選擇什么樣的sort、merge等算法?
  • 消息隊列,消息隊列長度會怎么樣?等等

必備的測試環境

大數據測試不同于常規的應用測試,你應該具備以下一些基礎環境:

  • 擁有足夠的存儲設備來存儲和處理大數據
  • 擁有集群來做分布式節點和數據處理
  • 至少擁有足夠的cpu、內存來確保有高性能的處理基礎

大數據測試的挑戰

對于從事大數據測試的軟件測試工程師而言,與傳統的測試工作相對比,我們可能面臨的以下幾個可能的挑戰:

  • 自動化
    自動化測試是從事大數據測試必備的技術,但自動化測試工具可能并不具備處理測試過程所引發的異常的能力,意味著現有工具可能并不適用,編程能力將是更好的一種技能。

  • 虛擬化
    當前業內大規模使用虛擬化技術,但虛擬機的延遲有可能造成大數據實時測試處理的異常。

對大數據而言,管理影像信息也將是一個巨大的問題。

  • 海量數據集
  1. 需要驗證的數據量巨大,而且需要更快的處理速度
  2. 需要有效的自動化測試手段
  3. 需要盡可能的跨平臺

大數據性能測試的挑戰

對于從是大數據性能測試,與傳統性能測試相比較,我們要面臨是樣的挑戰呢,可能有以下幾個方面:

  • 技術的多樣化,復雜化,面對不同的大數據解決方案,我們可能需要掌握不同的技術和定制不同的測試解決方案

  • 無通用的工具,目前業界暫無通用的標準的大數據性能測試工具,這意味著我們需要根據大數據應用解決方案技術,要自行開發或整合多種相關工具才可能解決問題

  • 測試環境復雜化,因為海量的數據,我們所需要測試環境亦會更加復雜,所消耗的基礎成本會更高

  • 監控解決方案,目前有的監控解決方案有限,但通過整合不同的監控工具,大致可能擁有一套相對可行的監控解決方案

  • 診斷方案,由于大數據應用所涉及的技術、環境復雜性,對于問題的診斷調優,我們需要根據實際情況來進行開發定制

從上面幾個方面來看,從事大數據性能測試所要面臨的問題是相對復雜的,尤其對當下國內的測試工程師而言,要走的路還很長,很艱難。

小結

  • 隨著大數據工程和數據分析逐步的進入新的階段,大數據測試將成為必然,也必定成為未來的一個熱門的職業方向

  • 大數據處理必須是批量的,實時的、可交互的

  • 大數據應用測試的三大階段:

  1. 數據驗證
  2. Map Reduce 驗證
  3. 數據處理結果驗證
  • 架構測試也是非常重要的一個測試類型,糟糕的架構可能直接導致您的大數據項目的失敗

  • 性能測試三大節點:

  1. 數據提取、存儲效率
  2. 數據處理效率
  3. 子組件工作效率
  • 大數據測試不同于傳統的測試,不僅僅是類型、策略的不同,工具等具體技術都會有區別

  • 大數據因其復雜性,其測試所面臨的挑戰也會不同于傳統的測試

  • 大數據性能測試將會是軟件測試工程師進一步艱難攻克的目標之一


我的微信號: 開源優測
未經允許,禁止轉載,謝謝

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,345評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,494評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,283評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,953評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,714評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,186評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,255評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,410評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,940評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,776評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,976評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,518評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,210評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,642評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,878評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,654評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,958評論 2 373

推薦閱讀更多精彩內容