軟體測試工程師又一大挑戰 大資料測試

2022-05-18 03:03:55 字數 4125 閱讀 6626

什麼是大資料

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

對於大資料的測試則需要不同的工具、技術、框架來進行處理。

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

需要你學習掌握更多的大資料技術、hadoop、mapreduce等等技術。

大資料測試策略

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

當然在大資料測試時,功能測試效能測試是同樣很關鍵的。

對於大資料測試工程師而言,如何高效正確的驗證經過大資料工具/框架成功處理過的至少百萬兆位元組的資料將會是乙個巨大的挑戰。

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

我們來看下大資料處理的三個特性:

●大批量

●實時性

●可互動

另外,資料質量也同樣是大資料測試的乙個重要維度。

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

大資料應用測試步驟

下面我們一起看看大資料應用的測試過程是怎麼樣的。

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

●步驟一,資料預處理驗證

在進行大資料測試時,首先要預hadoop前驗證資料的準確性等等。

1.我們資料**可能是關聯式資料庫、日誌系統、社交我那個落等等,所有我們應該確保資料能正確的載入到系統中

2.我們要驗證載入的資料和源資料是一致的

3.我們要確保正確的提取和載入資料至hdfs中

●步驟二,map reduce驗證 在進行大資料測試時,第二個關鍵步驟是「map reduce」驗證。在本階段,我們主要驗證每乙個處理節點的業務邏輯是否正確,並驗證在多個執行後,確保:

map reduce過程工作正常

資料聚合、分離規則已經實現

資料key-value關係已正確生成

驗證經過map reduce後資料的準確性等特性

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

主要驗證:

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

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

3.驗證無資料損壞

架構測試

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

效能測試是乙個複雜的工作,它貫穿整個測試週期,需要關注記憶體、cpu、網路等等指標。

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

效能測試

大資料效能測試主要包含以下幾個部分:

●資料提取、儲存效率

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

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

二是驗證資料持久化至mongodb等庫的效率等等

●資料處理

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

●子元件效能

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

效能測試策略

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

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

1.在效能測試前需要先初始化大資料集群環境

2.梳理和設計大資料效能測試場景

3.準備大資料效能測試指令碼

4.執行並分析測試結果(如果指標異常,則調優相應的元件並重新測試)

5.優化配置

效能測試基礎準備

●資料準備,我們需要在不同的節點準備什麼量級資料?

●日誌預估,在測試過程中,可能會生成多大的日誌,日誌的可能增量是什麼樣的?

●併發,在測試時,可能會有多少執行緒併發讀和寫?

●超時設定,應對設定怎樣的連線超時?查詢超時?寫超時等等?

●jvm引數,如何設定最優的jvm引數,heap size、gc機制等等

●map reduce,我們應該選擇什麼樣的sort、merge等演算法?

●訊息佇列,訊息佇列長度會怎麼樣?等等

必備的測試環境

●擁有足夠的儲存裝置來儲存和處理大資料

●擁有集群來做分布式節點和資料處理

●至少擁有足夠的cpu、記憶體來確保有高效能的處理基礎

大資料測試的挑戰

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

●自動化

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

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

對大資料而言,管理影像資訊也將是乙個巨大的問題。

●海量資料集

1.需要驗證的資料量巨大,而且需要更快的處理速度

2.需要有效的自動化測試手段

3.需要盡可能的跨平台

大資料效能測試的挑戰

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

1.技術的多樣化,複雜化,面對不同的大資料解決方案,我們可能需要掌握不同的技術和定製不同的測試解決方案

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

3.測試環境複雜化,因為海量的資料,我們所需要測試環境亦會更加複雜,所消耗的基礎成本會更高

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

5.診斷方案,由於大資料應用所涉及的技術、環境複雜性,對於問題的診斷調優,我們需要根據實際情況來進行開發定製

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

小結

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

●大資料處理必須是批量的,實時的、可互動的

●大資料應用測試的三大階段:

1.資料驗證

2.map reduce 驗證

3.資料處理結果驗證

●架構測試也是非常重要的乙個測試型別,糟糕的架構可能直接導致您的大資料專案的失敗

●效能測試三大節點:

1.資料提取、儲存效率

2.資料處理效率

3.子元件工作效率

●大資料測試不同於傳統的測試,不僅僅是型別、策略的不同,工具等具體技術都會有區別

●大資料因其複雜性,其測試所面臨的挑戰也會不同於傳統的測試

●大資料效能測試將會是軟體測試工程師進一步艱難攻克的目標之一

軟體測試工程師

首先,最根本的還是要看企業自身的需要,綜合自己的測試團隊力量,自己公司的研發狀況,當然還有公司的資金 到底到測試這塊公司願意投入多少money呢?另外要搞清楚自己公司招聘測試人員的目的是什麼?比如,如果公司暫時還沒有測試團隊,這個時候公司剛好有財力,同時研發力量比較大的時候,因為發展的需要,必須要組...

軟體測試工程師

理解產品的功能要求,並對其進行測試,檢查軟體有沒有缺陷,測試軟體是否具有穩定性 安全性 易操作性等效能,寫出相應的測試規範和測試用例的專門工作人員。最重要的客戶是軟體的使用者。測試工程師需要站在客戶的使用和需求角度測試軟體,報告問題。軟體測試只能證明軟體存在錯誤,不能保證軟體沒有錯誤,不可能找出全部...

軟體測試工程師感悟

這兩天和朋友談到軟體測試的發展,其實軟體測試已經在不知不覺中發生了非常大的改變,前幾年的軟體測試行業還是乙個風口,隨著不斷地轉行人員以及畢業的大學生瘋狂地湧入軟體測試行業,目前軟體測試行業 缺口 已經基本飽和。當然,我說的是最基礎的功能測試的崗位需求已經很少了,而自動化 效能 安全乃至於以後可能出現...