一、大數(shù)據(jù)的概念
大數(shù)據(jù)本身是一個(gè)比較抽象的概念,單從字面來看,它表示數(shù)據(jù)規(guī)模的龐大。引用維基百科對(duì)“大數(shù)據(jù)”的解讀是:“大數(shù)據(jù)”(Big Data),或稱巨量數(shù)據(jù)、海量數(shù)據(jù)、大資料,指的是所涉及的數(shù)據(jù)量規(guī)模巨大到無法通過人工,在合理時(shí)間內(nèi)達(dá)到截取、管理、處理、并整理成為人類所能解讀的信息。
二、大數(shù)據(jù)的特征
主要為4V特征:規(guī)模性(Volume)、高速性(Velocity,)、多樣性(Variety)、價(jià)值性(Value)。
規(guī)模性:不再以幾個(gè)GB或幾個(gè)TB為單位來衡量,而是以PB(1千個(gè)T)、EB(1百萬個(gè)T)或ZB(10億個(gè)T)為計(jì)量單位。
高速性:區(qū)別于傳統(tǒng)數(shù)據(jù)的顯著特征,大數(shù)據(jù)對(duì)處理數(shù)據(jù)的響應(yīng)速度有更嚴(yán)格的要求。實(shí)時(shí)分析、幾乎無延遲,這一特征也成為了眾家爭奪之地。
多樣性:主要體現(xiàn)在數(shù)據(jù)來源多、數(shù)據(jù)類型多和數(shù)據(jù)之間關(guān)聯(lián)性強(qiáng)這三方面。數(shù)據(jù)類型不在僅僅局限于傳統(tǒng)的結(jié)構(gòu)化數(shù)據(jù),還包括圖片、視頻、HTML文檔等等非結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù)。
價(jià)值性:正由于數(shù)據(jù)的多樣性,決定了數(shù)據(jù)的價(jià)值比傳統(tǒng)數(shù)據(jù)能發(fā)揮更大的價(jià)值。
三、大數(shù)據(jù)測試概要設(shè)計(jì)
不同的大數(shù)據(jù)平臺(tái)開發(fā)使得大數(shù)據(jù)測試變得復(fù)雜,但簡而言之,所有大數(shù)據(jù)平臺(tái)開發(fā)都是一個(gè)ETL過程(即Extract提取, Transform轉(zhuǎn)換, Load加載)。拆分為4個(gè)步驟,就是:數(shù)據(jù)遷移、數(shù)據(jù)獲取、數(shù)據(jù)整合和數(shù)據(jù)可視化輸出。
結(jié)合大數(shù)據(jù)的4V特征和ETL過程,可以將大數(shù)據(jù)測試分為以下階段:
1.? ? ?數(shù)據(jù)提取階段測試
該階段要求來自不同數(shù)據(jù)源的數(shù)據(jù)都能被正確提取、加載進(jìn)系統(tǒng),測試重點(diǎn)是關(guān)注開發(fā)過程中數(shù)據(jù)提取后的完整性和相關(guān)性保持度。
2.? ? ? 數(shù)據(jù)轉(zhuǎn)換階段測試
該階段主要是對(duì)加載進(jìn)系統(tǒng)的數(shù)據(jù)進(jìn)行清洗,主要步驟包括聚合(map)和隔離(reduce)。測試重點(diǎn)是轉(zhuǎn)換數(shù)據(jù)時(shí)的正確性,及數(shù)據(jù)的完整性和數(shù)據(jù)之間的相關(guān)性。
3.? ? ? 數(shù)據(jù)輸出階段測試
該階段生成數(shù)據(jù)文件,并把文件移動(dòng)到企業(yè)數(shù)據(jù)倉庫或其他需求的系統(tǒng)中。測試重點(diǎn)是檢測數(shù)據(jù)的完整性、轉(zhuǎn)換規(guī)則的正確性以及數(shù)據(jù)的成功使用。
四、大數(shù)據(jù)測試與傳統(tǒng)數(shù)據(jù)測試的區(qū)別與聯(lián)系
1.? ? ?區(qū)別
傳統(tǒng)數(shù)據(jù)測試是在靜止或緩速的數(shù)據(jù)流上進(jìn)行的,而大數(shù)據(jù)測試是基于連續(xù)的數(shù)據(jù)流進(jìn)行測試,測試更應(yīng)該關(guān)注數(shù)據(jù)的處理而不是產(chǎn)品的單個(gè)功能。因此大數(shù)據(jù)測試需要在真實(shí)數(shù)據(jù)下驗(yàn)證數(shù)據(jù)處理的每個(gè)部分。
區(qū)別與傳統(tǒng)數(shù)據(jù)的測試中的功能測試、負(fù)載測試,性能測試,可用性測試,安全測試,比較測試,兼容性測試、易用性測試等等,在大數(shù)據(jù)背景下,我們必須考慮數(shù)據(jù)的完整性、數(shù)據(jù)的價(jià)值、數(shù)據(jù)的相關(guān)性,以及隱藏再數(shù)據(jù)背后的用戶情緒和行為,大數(shù)據(jù)測試可以分為功能測試、架構(gòu)測試、性能測試、易用性測試等等。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?表1 大數(shù)據(jù)測試與傳統(tǒng)數(shù)據(jù)測試的區(qū)別

2.? ? ? 聯(lián)系
從測試設(shè)計(jì)方面來看,對(duì)于大數(shù)據(jù)平臺(tái)/系統(tǒng)的測試,同傳統(tǒng)數(shù)據(jù)測試依然有相同點(diǎn)。
功能測試方面:依然可以沿用傳統(tǒng)數(shù)據(jù)測試的設(shè)計(jì)方法,如:等價(jià)類劃分測試法、邊界值測試法、錯(cuò)誤推測法等等;
性能測試方面:大數(shù)據(jù)測試依然需要關(guān)注吞吐量、磁盤I/O、內(nèi)存/CPU消耗等等指標(biāo);
易用性測試方面:傳統(tǒng)數(shù)據(jù)的易用性測試方法和UI自動(dòng)化測試工具(如selenium ide),依然可以用于大數(shù)據(jù)測試。
五、大數(shù)據(jù)測試的挑戰(zhàn)
大數(shù)據(jù)測試最大的挑戰(zhàn),就是存儲(chǔ)在關(guān)系數(shù)據(jù)庫中的大量結(jié)構(gòu)化、非結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù)。這些數(shù)據(jù)的不同排列組合使測試用例成幾何指數(shù)增長,傳統(tǒng)手工測試對(duì)測試點(diǎn)的覆蓋難以全面。且由于大數(shù)據(jù)的自動(dòng)化測試工具還不成熟,進(jìn)行自動(dòng)化測試時(shí)往往使用開發(fā)工具。而這些開發(fā)工具要求測試人員具有專業(yè)的技能和培訓(xùn),從而使得測試人員進(jìn)行自動(dòng)化測試更是面臨更大的難題。