大數(shù)據(jù)測(cè)試的簡(jiǎn)要指南:概念、策略、挑戰(zhàn)、工具和好處

51CTO
編譯
總的說(shuō)來(lái),大數(shù)據(jù)測(cè)試是對(duì)大數(shù)據(jù)應(yīng)用程序的數(shù)據(jù)質(zhì)量進(jìn)行檢測(cè)的過(guò)程。由于我們難以使用傳統(tǒng)計(jì)算技術(shù)來(lái)處理大型數(shù)據(jù)集合,因此傳統(tǒng)的數(shù)據(jù)測(cè)試方法不適合被實(shí)施到大數(shù)據(jù)上。為此,我們需要考慮的大數(shù)據(jù)測(cè)試策略應(yīng)包括:大數(shù)據(jù)測(cè)試的基本技術(shù)(例如Apache的Hadoop)、方法、以及自動(dòng)化工具。

不知您是否還記得,在互聯(lián)網(wǎng)的初期,數(shù)據(jù)往往是通過(guò)使用簡(jiǎn)單的數(shù)據(jù)文件來(lái)保存的。后來(lái),隨著數(shù)據(jù)復(fù)雜性的增加,數(shù)據(jù)庫(kù)管理系統(tǒng)應(yīng)運(yùn)而生。近年來(lái),結(jié)構(gòu)化和非結(jié)構(gòu)化類(lèi)型的數(shù)據(jù)都得到了巨大的發(fā)展,我們將它們統(tǒng)稱(chēng)為“大數(shù)據(jù)”。如今,隨著大數(shù)據(jù)應(yīng)用的蓬勃發(fā)展,針對(duì)數(shù)據(jù)的處理技術(shù)也得到了不斷迭代。

為了保證大數(shù)據(jù)的質(zhì)量,我們顯然需要對(duì)大體量的數(shù)據(jù)進(jìn)行測(cè)試。本文將通過(guò)簡(jiǎn)要指南的形式,引導(dǎo)您全面了解大數(shù)據(jù)測(cè)試的相關(guān)概念、策略、挑戰(zhàn)、好處以及相關(guān)測(cè)試工具。

什么是大數(shù)據(jù)軟件測(cè)試?

總的說(shuō)來(lái),大數(shù)據(jù)測(cè)試是對(duì)大數(shù)據(jù)應(yīng)用程序的數(shù)據(jù)質(zhì)量進(jìn)行檢測(cè)的過(guò)程。由于我們難以使用傳統(tǒng)計(jì)算技術(shù)來(lái)處理大型數(shù)據(jù)集合,因此傳統(tǒng)的數(shù)據(jù)測(cè)試方法不適合被實(shí)施到大數(shù)據(jù)上。為此,我們需要考慮的大數(shù)據(jù)測(cè)試策略應(yīng)包括:大數(shù)據(jù)測(cè)試的基本技術(shù)(例如Apache的Hadoop)、方法、以及自動(dòng)化工具。

大數(shù)據(jù)測(cè)試的策略

首先,我們來(lái)看針對(duì)大數(shù)據(jù)質(zhì)量檢測(cè)的策略,其中有著與傳統(tǒng)測(cè)試相似的地方:

功能測(cè)試(Functional Testing):前端應(yīng)用測(cè)試能夠?yàn)閿?shù)據(jù)的驗(yàn)證提供便利。例如,我們可以將前端應(yīng)用程序所產(chǎn)生的實(shí)際結(jié)果,與預(yù)期的結(jié)果進(jìn)行比較,以深入了解目標(biāo)應(yīng)用框架、及其各個(gè)組件。

性能測(cè)試(Performance Testing):大數(shù)據(jù)的自動(dòng)化,能夠方便我們?cè)诓煌臈l件下測(cè)試目標(biāo)應(yīng)用的性能。例如,我們通過(guò)使用不同種類(lèi)和數(shù)量的數(shù)據(jù),測(cè)試應(yīng)用程序,進(jìn)而確保所涉及到的組件的確能夠?yàn)榇髷?shù)據(jù)集合,提供有效的存儲(chǔ)、處理、以及檢索功能。

數(shù)據(jù)提取測(cè)試(Data Ingestion Testing):通過(guò)測(cè)試性地提取數(shù)據(jù),我們可以驗(yàn)證并確保所有的數(shù)據(jù),均能在大數(shù)據(jù)應(yīng)用中被正確地提取和加載。

數(shù)據(jù)處理測(cè)試(Data Processing Testing):在針對(duì)大數(shù)據(jù)的處理策略上,我們需要運(yùn)用數(shù)據(jù)自動(dòng)化工具,重點(diǎn)關(guān)注數(shù)據(jù)的獲取與處理過(guò)程,通過(guò)比較輸出文件和輸入文件,來(lái)驗(yàn)證業(yè)務(wù)邏輯是否能夠被正確地實(shí)現(xiàn)。

數(shù)據(jù)存儲(chǔ)測(cè)試(Data Storage Testing):借助大數(shù)據(jù)自動(dòng)化測(cè)試工具,QA測(cè)試人員可以通過(guò)將輸出數(shù)據(jù)與數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行比較,來(lái)驗(yàn)證輸出數(shù)據(jù)是否已正確地被加載到了數(shù)據(jù)庫(kù)中。

數(shù)據(jù)遷移測(cè)試(Data Migration Testing):每當(dāng)應(yīng)用程序被遷移到其他服務(wù)器,或發(fā)生任何技術(shù)變更時(shí),我們都需要通過(guò)軟件測(cè)試,來(lái)驗(yàn)證數(shù)據(jù)從舊的傳統(tǒng)系統(tǒng),被遷移到新系統(tǒng)的過(guò)程中,所經(jīng)歷的停機(jī)時(shí)間最少,而且不會(huì)造成任何數(shù)據(jù)丟失。

大數(shù)據(jù)測(cè)試的挑戰(zhàn)

大數(shù)據(jù)的多樣性主要體現(xiàn)在那些非結(jié)構(gòu)化的數(shù)據(jù)上。鑒于目前在大數(shù)據(jù)應(yīng)用場(chǎng)景中被采用和實(shí)施工具尚不成熟,我們?cè)跍y(cè)試過(guò)程中,可能會(huì)遇到各種挑戰(zhàn)。下面我們來(lái)深入討論大數(shù)據(jù)測(cè)試的各項(xiàng)潛在問(wèn)題和對(duì)應(yīng)的解決方案。

數(shù)據(jù)的多樣性和不完整性

問(wèn)題:如今許多企業(yè)根據(jù)日常的業(yè)務(wù)所需,存儲(chǔ)了數(shù)十億字節(jié)的數(shù)據(jù)。測(cè)試人員必須審核這些海量數(shù)據(jù),以確認(rèn)它們的準(zhǔn)確性和與業(yè)務(wù)的相關(guān)性。顯然,即使企業(yè)擁有數(shù)百名QA測(cè)試人員,也無(wú)法通過(guò)手動(dòng)測(cè)試的方式,來(lái)處理這種量級(jí)的數(shù)據(jù)。

解決方案:我們很自然地會(huì)想到采用大數(shù)據(jù)自動(dòng)化工具,去檢測(cè)該體量數(shù)據(jù)的有效性。通過(guò)自動(dòng)化工具,QA工程師只需為大數(shù)據(jù)應(yīng)用程序創(chuàng)建和執(zhí)行自動(dòng)化測(cè)試用例,便可實(shí)現(xiàn)對(duì)數(shù)據(jù)的反復(fù)與深度測(cè)試。

高度擴(kuò)展性

問(wèn)題:隨著業(yè)務(wù)訪問(wèn)量的顯著增加,大數(shù)據(jù)應(yīng)用程序的后端數(shù)據(jù)庫(kù),可能會(huì)在可訪問(wèn)性、處理能力、甚至是網(wǎng)絡(luò)連接上,受到嚴(yán)重的影響。即使是那些針對(duì)處理海量數(shù)據(jù)而開(kāi)發(fā)的分布式應(yīng)用,也可能會(huì)因?yàn)槭艿骄芙^服務(wù)(DoS)攻擊或CC(Challenge Collapsar)攻擊,而無(wú)法處理正常的業(yè)務(wù)請(qǐng)求。

解決方案:我們通常可以采取如下兩種方式,來(lái)設(shè)計(jì)數(shù)據(jù)測(cè)試的方法:

集群技術(shù):可以在集群的所有節(jié)點(diǎn)之間均勻地分配大量的數(shù)據(jù)。也就是說(shuō),大數(shù)據(jù)文件可以被輕松地拆分為不同的數(shù)據(jù)塊,并且存儲(chǔ)在集群中的不同節(jié)點(diǎn)上。這種復(fù)制文件塊、并將其存儲(chǔ)在不同的節(jié)點(diǎn)處的方式,大幅減少了應(yīng)用對(duì)于主機(jī)的依賴(lài)。

數(shù)據(jù)分區(qū):這種大數(shù)據(jù)自動(dòng)化的方法不但簡(jiǎn)單易行,而且可以讓QA測(cè)試人員執(zhí)行CPU級(jí)別的并行處理。

測(cè)試數(shù)據(jù)管理

問(wèn)題:自動(dòng)化工具往往只能從通用的層面上,針對(duì)大數(shù)據(jù)應(yīng)用場(chǎng)景,實(shí)現(xiàn)數(shù)據(jù)的遷移、處理和存儲(chǔ)測(cè)試。如果QA測(cè)試人員并不理解待測(cè)的業(yè)務(wù)、組件和數(shù)據(jù),那么他們將很難得到有價(jià)值的測(cè)試結(jié)果和洞見(jiàn)。

解決方案:首先,QA團(tuán)隊(duì)?wèi)?yīng)當(dāng)與市場(chǎng)營(yíng)銷(xiāo)和開(kāi)發(fā)團(tuán)隊(duì)進(jìn)行協(xié)調(diào),以了解從不同源頭提取、過(guò)濾數(shù)據(jù),以及預(yù)處理和后期處理算法的過(guò)程。在此基礎(chǔ)上,他們可以通過(guò)熟悉大數(shù)據(jù)自動(dòng)化工具、和指定待運(yùn)行的測(cè)試用例,以便合理地管理好各種測(cè)試數(shù)據(jù)。

優(yōu)秀大數(shù)據(jù)測(cè)試工具

常言道:工欲善其事,必先利其器。只有用到了強(qiáng)大的測(cè)試工具,QA測(cè)試人員才能提高大數(shù)據(jù)檢測(cè)的效率。下面我們將給出幾款目前公認(rèn)比較實(shí)用的大數(shù)據(jù)測(cè)試工具:

Hadoop

大多數(shù)據(jù)科學(xué)家都認(rèn)為:沒(méi)有開(kāi)源框架的技術(shù)棧是不完整的。那么作為開(kāi)源框架的Hadoop,不但可以存儲(chǔ)大量各種類(lèi)型的數(shù)據(jù),而且具有分布式處理海量任務(wù)的能力。當(dāng)然,QA工程師在采用Hadoop進(jìn)行大數(shù)據(jù)性能測(cè)試時(shí),應(yīng)事先具備一定的Java知識(shí),具體方面請(qǐng)參見(jiàn)--https://blog.qasource.com/big-data-and-hadoop-performance-testing-perfcast-spring-2019。

HPCC

高性能計(jì)算集群(High-Performance Computing Cluster,HPCC)是免費(fèi)且完整的大數(shù)據(jù)應(yīng)用解決方案。通過(guò)提供具有高度可擴(kuò)展性的超級(jí)計(jì)算平臺(tái),HPCC不但能夠提供高性能的架構(gòu),而且支持測(cè)試中的數(shù)據(jù)、管道、以及系統(tǒng)的并發(fā)性。當(dāng)然,QA工程師在使用HPCC之前,應(yīng)具備一定的C ++和ECL編程基礎(chǔ)。

Cloudera

Cloudera通常被稱(chēng)為CDH(Cloudera Distribution for Hadoop)。它是企業(yè)級(jí)技術(shù)部署的理想測(cè)試工具。作為一個(gè)開(kāi)源的工具,它提供了免費(fèi)的平臺(tái)發(fā)行版,其中包括:Apache Hadoop、Apache Impala和Apache Spark。易于實(shí)施的Cloudera,不但具有較高的安全性和管理能力,而且能夠方便測(cè)試團(tuán)隊(duì)收集,處理,管理和分發(fā)海量的數(shù)據(jù)。

Cassandra

Cassandra是一款免費(fèi)的開(kāi)源工具。憑借著高性能的分布式數(shù)據(jù)庫(kù),它可以處理商用服務(wù)器上的海量數(shù)據(jù),因此常被業(yè)界許多大型公司用來(lái)進(jìn)行大數(shù)據(jù)的測(cè)試。而作為最可靠的大數(shù)據(jù)測(cè)試工具之一,Cassandra提供了自動(dòng)化復(fù)制、線性可擴(kuò)展性、無(wú)單點(diǎn)故障等服務(wù)。

Storm

作為免費(fèi)的開(kāi)源測(cè)試工具,Storm支持對(duì)于非結(jié)構(gòu)化數(shù)據(jù)集的實(shí)時(shí)處理,并且能夠與任何編程語(yǔ)言相兼容。Storm通過(guò)可靠的擴(kuò)展性和防錯(cuò)能力,來(lái)準(zhǔn)確地處理任何級(jí)別的數(shù)據(jù)。目前,這款跨平臺(tái)工具提供了包括日志處理、實(shí)時(shí)分析、機(jī)器學(xué)習(xí)、以及持續(xù)計(jì)算等方面的多種用例。

大數(shù)據(jù)測(cè)試的好處

說(shuō)到底,對(duì)于大數(shù)據(jù)的測(cè)試,就是要讓QA人員通過(guò)發(fā)現(xiàn)、定位從不同來(lái)源和渠道收集來(lái)的數(shù)據(jù),以確定應(yīng)用程序的設(shè)定功能可以按照預(yù)期運(yùn)行,驗(yàn)證數(shù)據(jù)的完整性與準(zhǔn)確性,并在此基礎(chǔ)上著手對(duì)應(yīng)用程序進(jìn)行必要的迭代和改進(jìn)。具體而言,大數(shù)據(jù)測(cè)試能夠?yàn)殚_(kāi)發(fā)團(tuán)隊(duì)帶來(lái)如下好處:

數(shù)據(jù)的準(zhǔn)確性:對(duì)于企業(yè)而言,無(wú)論是業(yè)務(wù)計(jì)劃,還是預(yù)測(cè)和決策,都需要基于準(zhǔn)確的數(shù)據(jù)。而在大數(shù)據(jù)應(yīng)用中,驗(yàn)證數(shù)據(jù)的正確性就顯得尤為重要。我們需要在驗(yàn)證的過(guò)程中注意如下四個(gè)方面:

在數(shù)據(jù)注入過(guò)程中不會(huì)出現(xiàn)錯(cuò)誤

將完整且正確的數(shù)據(jù)加載到大數(shù)據(jù)框架中

基于業(yè)務(wù)設(shè)計(jì)的邏輯,能夠讓數(shù)據(jù)的基本驗(yàn)證功能正常運(yùn)行

根據(jù)業(yè)務(wù)需求,各種數(shù)據(jù)訪問(wèn)工具能夠獲取正確的輸出數(shù)據(jù)

具有成本效益的存儲(chǔ):在每個(gè)大數(shù)據(jù)應(yīng)用的背后,都有著多臺(tái)計(jì)算主機(jī)。它們可以從不同服務(wù)器處,將數(shù)據(jù)注入并存儲(chǔ)到大數(shù)據(jù)的應(yīng)用框架中。顯然,將逐個(gè)應(yīng)用類(lèi)型的數(shù)據(jù)進(jìn)行單獨(dú)驗(yàn)證和存儲(chǔ),是非常不經(jīng)濟(jì)實(shí)惠的。因此,我們可以將其配置為根據(jù)諸如:數(shù)據(jù)復(fù)制因子和數(shù)據(jù)塊大小等條件,全面驗(yàn)證已注入的數(shù)據(jù),是否能夠按照規(guī)則被正確地存儲(chǔ)到不同節(jié)點(diǎn)上。

如您所知,那些結(jié)構(gòu)或格式不正確的數(shù)據(jù),往往會(huì)消耗更多的存儲(chǔ)空間。因此,我們一旦完成了數(shù)據(jù)的測(cè)試和構(gòu)造,其存儲(chǔ)空間的占有率便會(huì)大幅減少,進(jìn)而最終為企業(yè)產(chǎn)生成本效益。

有效的決策和業(yè)務(wù)策略:準(zhǔn)確的數(shù)據(jù)往往是關(guān)鍵業(yè)務(wù)的決策基礎(chǔ)。它們不但有助于分析各類(lèi)潛在的風(fēng)險(xiǎn),而且能夠確保只注入那些有助于決策分析、并產(chǎn)生明智的業(yè)務(wù)決策的數(shù)據(jù)。

在正確的時(shí)間提供正確的數(shù)據(jù):大數(shù)據(jù)框架必然包含多個(gè)組件。任何組件的配置不當(dāng),都可能導(dǎo)致數(shù)據(jù)在加載或處理中引起應(yīng)用性能的下降。與此同時(shí),即使數(shù)據(jù)的準(zhǔn)確性得到了保障,如果無(wú)法在正確的時(shí)間提供可用的數(shù)據(jù),這對(duì)于應(yīng)用服務(wù)來(lái)說(shuō)同樣是惘然??梢?jiàn),大數(shù)據(jù)測(cè)試就是要測(cè)試應(yīng)用在不同的數(shù)據(jù)類(lèi)型和負(fù)載體量下,能夠快速地處理并交付出準(zhǔn)確信息的能力。

·提高利潤(rùn)與滿意度:那些難以確定的錯(cuò)誤原因和位置,往往會(huì)成為企業(yè)大數(shù)據(jù)應(yīng)用的主要漏洞和缺陷。而通過(guò)深入的測(cè)試,我們能夠有效地將有用的數(shù)據(jù)與結(jié)構(gòu)不良的無(wú)用數(shù)據(jù)相互分離,在增強(qiáng)客戶使用體驗(yàn)的同時(shí),提高業(yè)務(wù)的營(yíng)收,以及優(yōu)化整個(gè)業(yè)務(wù)的決策流程。

原文標(biāo)題:A Complete Guide to Big Data Testing,作者:Vakul gotra

THEEND

最新評(píng)論(評(píng)論僅代表用戶觀點(diǎn))

更多
暫無(wú)評(píng)論