高加瓊
(四川職業(yè)技術(shù)學(xué)院計算機科學(xué)系,四川 遂寧 629000)
大數(shù)據(jù)功能性測試與非功能性測試分析
高加瓊
(四川職業(yè)技術(shù)學(xué)院計算機科學(xué)系,四川 遂寧 629000)
大數(shù)據(jù)測試技術(shù)中不是測試軟件產(chǎn)品的個別功能,而是驗證其數(shù)據(jù)處理的性能與功能測試.同時大數(shù)據(jù)測試的數(shù)據(jù)質(zhì)量也是一個重要方面,在測試之前就需要做好對數(shù)據(jù)的質(zhì)量檢查,本文將對大數(shù)據(jù)測試包括功能性測試與非功能性測試分析探討.
大數(shù)據(jù)測試;功能性測試;非功能性測試
隨著物聯(lián)網(wǎng)、云計算和移動互聯(lián)網(wǎng)等技術(shù)的快速發(fā)展,數(shù)據(jù)發(fā)生了“大爆炸”,規(guī)模呈現(xiàn)出幾何級的上升,其計算的基本單位已經(jīng)用Z B為單位.大數(shù)據(jù)表現(xiàn)出的特性具有 Volume(海量)、(Value)(價值密度低)、Velocity(高速)與 Variety(多樣)這幾個方面特征.大數(shù)據(jù)作為一個大的數(shù)據(jù)集合,利用傳統(tǒng)的計算技術(shù)是不能提取、存儲、搜索、共享、分析以及處理的大量的、多樣的、復(fù)雜的數(shù)據(jù)集合.對于這些大的數(shù)據(jù)集測試就需要使用一些工具、技術(shù)與框架來做處理.大數(shù)據(jù)測試技術(shù)中不是測試軟件產(chǎn)品的個別功能,而是驗證其數(shù)據(jù)處理的性能與功能測試.同時大數(shù)據(jù)測試的數(shù)據(jù)質(zhì)量也是一個重要方面,在測試之前就需要做好對數(shù)據(jù)的質(zhì)量檢查,檢查不同字段的重復(fù)性,準確性,一致性,有效性和數(shù)據(jù)完整性等方面的檢查.
大數(shù)據(jù)測試包括功能性測試與非功能性測試,大數(shù)據(jù)功能測試最終目的就是實現(xiàn)識別由編碼錯誤或節(jié)點配置錯誤造成的數(shù)據(jù)問題.非功能性測試就是針對在具體行業(yè)的應(yīng)用所進行的非功能性測試.在對這兩種功能測試前,我們需要對大數(shù)據(jù)測試流程進行介紹.
大數(shù)據(jù)測試流程首先是采集,大數(shù)據(jù)的采集是最基本的任務(wù).用多個數(shù)據(jù)庫來接收來自客戶端的數(shù)據(jù),包括Web客戶端、App客戶端、傳感器等客戶端的數(shù)據(jù),而且用戶可以通過大數(shù)據(jù)里的這些數(shù)據(jù)庫對各類數(shù)據(jù)信息做簡單的查詢、處理等工作.
大數(shù)據(jù)處理過程在采集端時雖然擁有了非常多數(shù)據(jù)庫,但是面對海量的數(shù)據(jù)進行科學(xué)有效的分析是不夠的,還需要把這些數(shù)據(jù)導(dǎo)入到一個大型的分布式數(shù)據(jù)庫,并在對數(shù)據(jù)導(dǎo)入之后做一些簡單的清洗、預(yù)處理工作.S q o o p與F l u m e等軟件可優(yōu)化這些數(shù)據(jù)的互操作性,Sqoop軟件的功能就是從關(guān)系數(shù)據(jù)庫導(dǎo)入數(shù)據(jù)到Hadoop,而且還能直接導(dǎo)入到HFDS或者Hive軟件里.Flume設(shè)計的目的是直接將日志數(shù)據(jù)或流數(shù)據(jù)導(dǎo)入到HDFS里.在導(dǎo)入與預(yù)處理的過程中其最大的特點就是導(dǎo)入的數(shù)據(jù)量非常大,每秒會達到百兆甚至千兆級別.
大數(shù)據(jù)的統(tǒng)計分析就是對導(dǎo)入到一個大型的分布式數(shù)據(jù)庫里的數(shù)據(jù)用分布式技術(shù)來對這些的數(shù)據(jù)分析、匯總等工作.
與前面的統(tǒng)計和分析不同的是大數(shù)據(jù)挖掘一般不會預(yù)先設(shè)定好主題,數(shù)據(jù)的挖掘就是對現(xiàn)有數(shù)據(jù)進行計算分析,通常采用的工具是K-means(聚類)、SVM(統(tǒng)計學(xué)習)和naive Bayes(分類)等這些工具.
當Map Reduce過程結(jié)束后,就會把產(chǎn)生的數(shù)據(jù)輸出文件按需移到數(shù)據(jù)倉庫或其他的事務(wù)型系統(tǒng).對獲得的大數(shù)據(jù)分析,或者采用B I工具產(chǎn)生報表,最終實現(xiàn)讓使用者通過大數(shù)據(jù)的反映情況作出正確有利的決策.
大數(shù)據(jù)功能性測試其關(guān)鍵是針對大數(shù)據(jù)研究大數(shù)據(jù)分析應(yīng)用的POSI XAPI,其功能主要是文件讀取、訪問控制、元數(shù)據(jù)操作和鎖操作等方面.大數(shù)據(jù)功能性測試分成以下幾個步驟:
a)數(shù)據(jù)導(dǎo)入/預(yù)處理階段驗證.來自不同方面的數(shù)據(jù)資源應(yīng)該被驗證,包括網(wǎng)絡(luò)日志、物聯(lián)網(wǎng)、社會網(wǎng)絡(luò)、互聯(lián)網(wǎng)文本和文件等數(shù)據(jù)資源,確保正確的數(shù)據(jù)被加載進系統(tǒng),保證獲取數(shù)據(jù)的準確性,也就是說被按需加載到HDFS中待處理,并且被分割,復(fù)制到各種的數(shù)據(jù)節(jié)點里.在這個階段可以使用Talend或Datameer工具進行數(shù)據(jù)階段驗證.
b)Map Reduce數(shù)據(jù)輸出驗證.該階段是對加載進HDFS后的各類數(shù)據(jù),使用一種編程模型(Map Reduce)對來自不同數(shù)據(jù)源的數(shù)據(jù)做處理工作,測試者在每個節(jié)點上進行業(yè)務(wù)邏輯驗證,驗證中會出現(xiàn)在單一節(jié)點上運行是正確,但是在多個節(jié)點上運行又是錯誤的,出現(xiàn)不正確的聚合,節(jié)點配置,輸出格式等問題現(xiàn)象.針對這個問題,要驗證運行多個節(jié)點后的操作的正確性,可以采取在單個節(jié)點上對大數(shù)據(jù)的業(yè)務(wù)邏輯進行驗證,然后在多節(jié)點上做相同驗證,也可以在執(zhí)行Map與Reduce進程后驗證數(shù)據(jù),還可以使用源文件驗證輸出數(shù)據(jù)情況,以確保數(shù)據(jù)處理無誤.
c)三是大數(shù)據(jù)E T L到數(shù)據(jù)倉庫驗證.對生成輸出數(shù)據(jù)文件被按需移到數(shù)據(jù)倉庫或者是其它的事務(wù)型系統(tǒng)里可能會形成一個錯誤的應(yīng)用轉(zhuǎn)換規(guī)則,從而使得提取的數(shù)據(jù)不完全. 采取的解決辦法:可以.驗證轉(zhuǎn)換(Transformation)規(guī)則有沒有被正確應(yīng)用,也可以比較把目標數(shù)據(jù)與HDFS文件系統(tǒng)數(shù)據(jù)來驗證數(shù)據(jù)有沒有壞掉.
由于不同的行業(yè)對大數(shù)據(jù)的應(yīng)用不同,除了功能性測試外,還需要進行非功能性測試,比如性能測試,穩(wěn)定性測試等.
a)性能測試.大數(shù)據(jù)測試中性能主要包括吞吐量,任務(wù)完成時間,內(nèi)存利用率等各種指標,這些指標可以對大數(shù)據(jù)分析平臺的處理能力、數(shù)據(jù)資源使用能力的全面反映.在計算機軟件的發(fā)展過程中,人們通常采用hadoop性能監(jiān)控器來監(jiān)測運行狀態(tài)性能指標與瓶頸問題,性能測試作為一個自動化化方式進行,測試系統(tǒng)是在不同負載狀況下的性能.
b)穩(wěn)定性測試.穩(wěn)定性測試是大數(shù)據(jù)分析系統(tǒng)要長時間運轉(zhuǎn)所必須硬性的要求,要保證系統(tǒng)有沒有正常運行,功能還保持正常與否.而在穩(wěn)定性測試中所使用的軟件工具是LTP,10ZONE,POSTMARK,FIO等類型軟件.
c)擴展性測試.大數(shù)據(jù)時代的文件系統(tǒng)對彈性擴展能力的要求也很重要,包括測試系統(tǒng)的彈性擴展能力和擴展系統(tǒng)帶來的性能影響,從而驗證是不是具有線性擴展能力.
d)可用性測試.大數(shù)據(jù)分析的主要特性之一就是高可用性,這樣才可以保證數(shù)據(jù)應(yīng)用業(yè)務(wù)的連續(xù)性.所以需要嚴格進行測試和驗證.
除了上述測試以外,非功能性測試還包括容錯性測試、壓力測試、數(shù)據(jù)一致性測試、部署方式測試等.
由于大數(shù)據(jù)分析系統(tǒng)具有高效能、高擴展、高性能、高可用、易管理和易使用的特點,它的架構(gòu)測試的復(fù)雜性使得其系統(tǒng)測試也變得非常復(fù)雜.在研究過程中,究竟采用功能性測試還是非功能性測試,要根據(jù)其不同的行業(yè)、應(yīng)用場景以及采集的數(shù)據(jù)來選用.因為大數(shù)據(jù)功能測試最終目的就是實現(xiàn)識別由編碼錯誤或節(jié)點配置錯誤造成的數(shù)據(jù)問題.非功能性測試就是針對在具體行業(yè)的應(yīng)用所進行的非功能性測試.
[1]李鵬飛,盧瑾,辛一.基于專利的大數(shù)據(jù)技術(shù)發(fā)展情報分析及戰(zhàn)略研究[J].情報雜志,2014,(09).
[2]代亮,陳婷,許宏科,等.大數(shù)據(jù)測試技術(shù)研究[J].計算機應(yīng)用研究,2014,(06).
[3]詹劍鋒,高婉鈴,王磊,等.Big Data Bench:開源的大數(shù)據(jù)系統(tǒng)評測基準[J].計算機學(xué)報,2016,(01).
責任編輯:張隆輝
T P 311.1
A
1672-2094(2017)04-0160-02
2017-03-28
四川省教育廳自然科學(xué)重點項目“網(wǎng)絡(luò)大數(shù)據(jù)測試基準研究”(編號15 Z A 0349)
高加瓊,(1974-),女,四川天全人,四川職業(yè)技術(shù)學(xué)院副教授,碩士.研究方向:計算機應(yīng)用.