翻譯自:http://www.guru99.com/big-data-testing-functional-performance.html#1
什么是大數(shù)據(jù)?
大數(shù)據(jù)是不能使用傳統(tǒng)計(jì)算技術(shù)處理的大型數(shù)據(jù)集的集合。這些數(shù)據(jù)集的測(cè)試涉及各種工具,技術(shù)和框架來處理。大數(shù)據(jù)涉及數(shù)據(jù)創(chuàng)建,存儲(chǔ),檢索和分析,在數(shù)量,多樣性和速度方面都非常出色。您可以在這里了解有關(guān)大數(shù)據(jù),Hadoop和Mapreduce的更多信息
在本教程中,我們將學(xué)習(xí),
- 大數(shù)據(jù)測(cè)試策略
- 驗(yàn)證大數(shù)據(jù)應(yīng)用程序的測(cè)試步驟
- 架構(gòu)測(cè)試
- 性能測(cè)試
- 測(cè)試環(huán)境需求
- 大數(shù)據(jù)測(cè)試 傳統(tǒng)數(shù)據(jù)庫(kù)測(cè)試
- 大數(shù)據(jù)場(chǎng)景中使用的工具
- 大數(shù)據(jù)測(cè)試中的挑戰(zhàn)
<h3 id="1">大數(shù)據(jù)測(cè)試策略</h3>
測(cè)試大數(shù)據(jù)應(yīng)用程序更多的是驗(yàn)證其數(shù)據(jù)處理,而不是測(cè)試軟件產(chǎn)品的個(gè)別功能。當(dāng)涉及到大數(shù)據(jù)測(cè)試時(shí),性能和功能測(cè)試是關(guān)鍵。
在大數(shù)據(jù)測(cè)試中,QA工程師使用集群和其他支持組件來驗(yàn)證TB級(jí)數(shù)據(jù)的成功過程。它需要高水平的測(cè)試技能,因?yàn)檫^程非???。過程可以是三種類型

與此同時(shí),數(shù)據(jù)質(zhì)量也是大數(shù)據(jù)測(cè)試的一個(gè)重要因素。在測(cè)試應(yīng)用程序之前,有必要檢查數(shù)據(jù)的質(zhì)量,并應(yīng)將其視為數(shù)據(jù)庫(kù)測(cè)試的一部分。它涉及檢查各種特征,如一致性,準(zhǔn)確性,重復(fù),一致性,有效性,數(shù)據(jù)完整性等。
<h3 id="2">驗(yàn)證大數(shù)據(jù)應(yīng)用程序的測(cè)試步驟</h3>
下圖給出了測(cè)試大數(shù)據(jù)應(yīng)用程序階段的高級(jí)概述

大數(shù)據(jù)測(cè)試大致可分為三個(gè)步驟
步驟1:數(shù)據(jù)分段驗(yàn)證
大數(shù)據(jù)測(cè)試的第一步,也稱為pre-Hadoop階段涉及過程驗(yàn)證。
- 來自各種來源(如RDBMS,博客,社交媒體等)的數(shù)據(jù)應(yīng)進(jìn)行驗(yàn)證,以確保正確的數(shù)據(jù)被拉入系統(tǒng)
- 將源數(shù)據(jù)與推送到Hadoop系統(tǒng)中的數(shù)據(jù)進(jìn)行比較,以確保它們匹配
- 驗(yàn)證正確的數(shù)據(jù)被提取并加載到正確的HDFS位置
像工具Talend,Datameer,可用于數(shù)據(jù)分段的驗(yàn)證
步驟2:“MapReduce”驗(yàn)證
第二步是驗(yàn)證“MapReduce”。在這個(gè)階段,測(cè)試人員驗(yàn)證每個(gè)節(jié)點(diǎn)上的業(yè)務(wù)邏輯驗(yàn)證,然后在多個(gè)節(jié)點(diǎn)運(yùn)行后驗(yàn)證它們,確保
- Map Reduce進(jìn)程正常工作
- 在數(shù)據(jù)上實(shí)現(xiàn)數(shù)據(jù)聚合或隔離規(guī)則
- 生成鍵值對(duì)
- 在Map Reduce進(jìn)程后驗(yàn)證數(shù)據(jù)
步驟3:輸出驗(yàn)證階段
大數(shù)據(jù)測(cè)試的最終或第三階段是輸出驗(yàn)證過程。生成輸出數(shù)據(jù)文件,并準(zhǔn)備根據(jù)需要將其移至EDW(企業(yè)數(shù)據(jù)倉(cāng)庫(kù))或任何其他系統(tǒng)。
第三階段活動(dòng)包括
- 檢查轉(zhuǎn)換規(guī)則是否正確應(yīng)用
- 檢查數(shù)據(jù)完整性和成功的數(shù)據(jù)加載到目標(biāo)系統(tǒng)中
- 通過將目標(biāo)數(shù)據(jù)與HDFS文件系統(tǒng)數(shù)據(jù)進(jìn)行比較來檢查沒有數(shù)據(jù)損壞
<h3 id="3">架構(gòu)測(cè)試</h3>
Hadoop處理非常大量的數(shù)據(jù),并且資源密集。因此,架構(gòu)測(cè)試對(duì)于確保大數(shù)據(jù)項(xiàng)目的成功至關(guān)重要。系統(tǒng)設(shè)計(jì)不當(dāng)或設(shè)計(jì)不當(dāng)可能導(dǎo)致性能下降,系統(tǒng)可能無法滿足要求。至少,性能和故障轉(zhuǎn)移測(cè)試服務(wù)應(yīng)在Hadoop環(huán)境中完成。
性能測(cè)試包括測(cè)試作業(yè)完成時(shí)間,內(nèi)存利用率,數(shù)據(jù)吞吐量和類似的系統(tǒng)指標(biāo)。雖然故障轉(zhuǎn)移測(cè)試服務(wù)的動(dòng)機(jī)是驗(yàn)證數(shù)據(jù)處理在數(shù)據(jù)節(jié)點(diǎn)故障的情況下無縫地發(fā)生
<h3 id="4">性能測(cè)試</h3>
大數(shù)據(jù)的性能測(cè)試包括兩個(gè)主要方面:
- 數(shù)據(jù)獲取和吞吐量:在這個(gè)階段,測(cè)試人員驗(yàn)證快速系統(tǒng)如何使用來自各種數(shù)據(jù)源的數(shù)據(jù)。測(cè)試涉及識(shí)別隊(duì)列在給定時(shí)間幀中可以處理的不同消息。它還包括如何快速地將數(shù)據(jù)插入到底層數(shù)據(jù)存儲(chǔ)中,例如插入到Mongo和Cassandra數(shù)據(jù)庫(kù)中。
- 數(shù)據(jù)處理:它涉及驗(yàn)證執(zhí)行查詢或map reduce作業(yè)的速度。它還包括底層數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)集中填充時(shí)隔離測(cè)試數(shù)據(jù)的過程。例如,在底層HDFS上運(yùn)行Map Reduce作業(yè)
- 子組件性能:這些系統(tǒng)由多個(gè)組件組成,必須單獨(dú)測(cè)試這些組件。例如,消息被索引和使用的速度,mapreduce作業(yè),查詢性能,搜索等。
性能測(cè)試方法
大數(shù)據(jù)應(yīng)用程序的性能測(cè)試涉及大量結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)的測(cè)試,它需要一種特定的測(cè)試方法來測(cè)試這樣的大量數(shù)據(jù)。

性能測(cè)試按此順序執(zhí)行
- 對(duì)要性能測(cè)試的大數(shù)據(jù)集群的進(jìn)行設(shè)置
- 識(shí)別和設(shè)計(jì)相應(yīng)的工作負(fù)載
- 準(zhǔn)備單個(gè)客戶端(創(chuàng)建自定義腳本)
- 執(zhí)行測(cè)試并分析結(jié)果(如果不滿足目標(biāo),則調(diào)整組件并重新執(zhí)行)
- 最佳配置
性能測(cè)試的參數(shù)
要驗(yàn)證性能測(cè)試的各種參數(shù)是
- 數(shù)據(jù)存儲(chǔ):數(shù)據(jù)如何存儲(chǔ)在不同的節(jié)點(diǎn)中
- 提交日志:提交日志允許增長(zhǎng)的大小
- 并發(fā)性:有多少線程可以執(zhí)行寫和讀操作
- 緩存:調(diào)整緩存設(shè)置“行緩存”和“密鑰緩存”。
- 超時(shí):連接超時(shí),查詢超時(shí)等的值。
- JVM參數(shù):堆大小,GC收集算法等。
- 降低性能:排序,合并等
- 消息隊(duì)列:消息速率,大小等
<h3 id="5">測(cè)試環(huán)境需求</h3>
測(cè)試環(huán)境需求取決于要測(cè)試的應(yīng)用程序的類型。對(duì)于大數(shù)據(jù)測(cè)試,測(cè)試環(huán)境應(yīng)包括
- 它應(yīng)該有足夠的空間用于存儲(chǔ)和處理大量的數(shù)據(jù)
- 它應(yīng)該具有分布式節(jié)點(diǎn)和數(shù)據(jù)的集群
- 它應(yīng)該具有最小的CPU和內(nèi)存利用率,以保持高性能
<h3 id="6">大數(shù)據(jù)測(cè)試 傳統(tǒng)數(shù)據(jù)庫(kù)測(cè)試</h3>
| 屬性 | 傳統(tǒng)數(shù)據(jù)庫(kù)測(cè)試 | 大數(shù)據(jù)測(cè)試 |
|---|---|---|
| 數(shù)據(jù) | 使用結(jié)構(gòu)化數(shù)據(jù) | 同時(shí)處理結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù) |
| 測(cè)試方法定義明確和time-tested | 測(cè)試方法需要集中的研發(fā)工作 | |
| 測(cè)試人員可以選擇“自動(dòng)化工具”手動(dòng)執(zhí)行“抽樣”策略或“完全驗(yàn)證”策略 | 大數(shù)據(jù)中的“抽樣”策略是一個(gè)挑戰(zhàn) | |
| 基礎(chǔ)設(shè)施 | 它不需要特殊的測(cè)試環(huán)境,因?yàn)槲募笮∮邢?/td> | 它需要特殊的測(cè)試環(huán)境,因?yàn)榇蟮臄?shù)據(jù)大小和文件(HDFS) |
| 驗(yàn)證工具 | 測(cè)試程序使用基于Excel的宏或基于UI的自動(dòng)化工具 | 沒有定義的工具,范圍從廣泛從編程工具,如MapReduce到HIVEQL |
| 測(cè)試工具可以使用基本的操作知識(shí)和較少的培訓(xùn) | 它需要一組特定的技能和培訓(xùn)來操作測(cè)試工具。此外,工具處于新生階段,加班也許會(huì)帶來新的功能。 |
<h3 id="7">大數(shù)據(jù)場(chǎng)景中使用的工具</h3>
| 大數(shù)據(jù)集群 | 大數(shù)據(jù)工具 |
|---|---|
| NoSQL | CouchDB,MongoDB,Cassandra,Redis,ZooKeeper,Hbase |
| MapReduce | Hadoop,Hive,Pig,Cascading,Oozie,Kafka,S4,MapR,F(xiàn)lume |
| 存儲(chǔ) | S3,HDFS(Hadoop分布式文件系統(tǒng)) |
| 服務(wù)器 | Elastic,Heroku,Google App Engine,EC2 |
| 處理 | R,Yahoo!Pipes,Mechanical Turk,BigSheets,Datameer |
<h3 id="8">大數(shù)據(jù)測(cè)試中的挑戰(zhàn)</h3>
自動(dòng)化
大數(shù)據(jù)的自動(dòng)化測(cè)試需要有技術(shù)專長(zhǎng)的人員。此外,自動(dòng)化工具不能處理測(cè)試期間出現(xiàn)的意外問題虛擬化
它是測(cè)試的必需階段之一。虛擬機(jī)延遲會(huì)在實(shí)時(shí)大數(shù)據(jù)測(cè)試中產(chǎn)生時(shí)序問題。還有在大數(shù)據(jù)中管理圖像是一個(gè)麻煩。-
大數(shù)據(jù)集
- 需要驗(yàn)證更多的數(shù)據(jù),需要做的更快
- 需要自動(dòng)化測(cè)試工作
- 需要能夠跨不同平臺(tái)進(jìn)行測(cè)試
性能測(cè)試的挑戰(zhàn)
- 多樣化的技術(shù):每個(gè)子組件屬于不同的技術(shù),需要獨(dú)立測(cè)試
- 特定工具的不可用性:沒有單個(gè)工具可以執(zhí)行端到端測(cè)試。例如,NoSQL可能不適合消息隊(duì)列
- 測(cè)試腳本:需要高度的腳本來設(shè)計(jì)測(cè)試場(chǎng)景和測(cè)試用例
- 測(cè)試環(huán)境:由于數(shù)據(jù)量大,需要特殊的測(cè)試環(huán)境
- 監(jiān)控解決方案:可監(jiān)控整個(gè)環(huán)境的解決方案有限
- 診斷解決方案:需要開發(fā)定制解決方案下鉆到性能瓶頸區(qū)域
概要
- 隨著數(shù)據(jù)工程和數(shù)據(jù)分析的進(jìn)一步發(fā)展,大數(shù)據(jù)測(cè)試是不可避免的。
- 大數(shù)據(jù)處理可以是批處理,實(shí)時(shí)或交互
- 測(cè)試大數(shù)據(jù)應(yīng)用的3個(gè)階段
- 數(shù)據(jù)分段驗(yàn)證
- “MapReduce”驗(yàn)證
- 輸出驗(yàn)證階段
- 架構(gòu)測(cè)試是大數(shù)據(jù)測(cè)試的重要階段,因?yàn)樵O(shè)計(jì)不良可能會(huì)導(dǎo)致前所未有的錯(cuò)誤和性能下降
- 大數(shù)據(jù)的性能測(cè)試包括驗(yàn)證
- 數(shù)據(jù)吞吐量
- 數(shù)據(jù)處理
- 子組件性能
- 大數(shù)據(jù)測(cè)試與傳統(tǒng)數(shù)據(jù)測(cè)試在數(shù)據(jù),基礎(chǔ)設(shè)施和驗(yàn)證工具方面非常不同
- 大數(shù)據(jù)測(cè)試的挑戰(zhàn)包括虛擬化,測(cè)試自動(dòng)化和處理大型數(shù)據(jù)集。大數(shù)據(jù)應(yīng)用程序的性能測(cè)試也是一個(gè)問題。