張振華
摘 要時代的發(fā)展,科技的進步,移動互聯(lián)網(wǎng)、物聯(lián)網(wǎng)以及云計算等都獲得了前所未有的發(fā)展機遇。大數(shù)據(jù)浪潮引發(fā)了最新一輪的技術(shù)發(fā)展革新,因此人們對于技術(shù)創(chuàng)新的需求不斷上漲,直接給軟件測試的發(fā)展帶來全新的挑戰(zhàn)。文章深入分析了當(dāng)前大數(shù)據(jù)發(fā)展背景下軟件測試工作開展時所面臨的挑戰(zhàn)和困難,這其中就具體包含了數(shù)據(jù)處理框架、ORACLE問題以及測試平臺所具備的性能等等。針對軟件殺蟲劑效應(yīng)進行初步的探討,由此推出軟件測試的發(fā)展及其展望。
【關(guān)鍵詞】大數(shù)據(jù) 軟件測試 挑戰(zhàn) 展望
大數(shù)據(jù)時代的意義并不是表現(xiàn)為對龐大數(shù)據(jù)信息的掌握,而是表現(xiàn)在其能夠?qū)ο嚓P(guān)數(shù)據(jù)實施專業(yè)化的處理。大數(shù)據(jù)本身具有多個層面的特點,一是其數(shù)據(jù)體量非常巨大,二是其數(shù)據(jù)的類型較為繁多,三是其價值密度明顯偏低,存在過多不相干的信息,需要實施深度挖掘。四是信息的處理速度非??欤哂辛⒏鸵娪暗男Ч鸵酝捎玫膫鹘y(tǒng)數(shù)據(jù)挖掘技術(shù)存在本質(zhì)的區(qū)別。在這種背景下,多數(shù)軟件的形態(tài)也隨之發(fā)生改變,實施軟件測試的重點及方式等也處于不斷發(fā)展的狀態(tài)當(dāng)中。
1 大數(shù)據(jù)背景下ORACLE問題不斷突出
軟件測試地目的是為了能夠發(fā)現(xiàn)和找出軟件錯誤運行的情況,專門判斷測試過程是否通過的可驗證即被稱為ORACLE,在如今的大數(shù)據(jù)背景下,不管是趨勢分析還是相應(yīng)的圖論計算等,都開始變得越來越困難。大數(shù)據(jù)的處理模式,主要包括了物理作用下的數(shù)據(jù)處理和化學(xué)作用下的數(shù)據(jù)處理兩種類型模式[1]。其中,物理作用下的數(shù)據(jù)處理,主要是在保證其價值的情況下,不斷的縮小其數(shù)據(jù)的規(guī)模,然后由此清洗不變的數(shù)據(jù)基本屬性。這其中就包含了針對數(shù)據(jù)處理的多種方式,能夠有效的實現(xiàn)將大數(shù)據(jù)花銷,的物理式變化。因此,物理作用下的數(shù)據(jù)處理測試ORACLE本身并沒有問題。
而基于化學(xué)作用下的數(shù)據(jù)處理,則具備最主要的預(yù)測和快速算法的問題,這兩個問題都非常經(jīng)典,直接促使ORACLE的確定變得異常的困難。比如在計算個性化推薦統(tǒng)計學(xué)信息當(dāng)中,經(jīng)過個性化推薦的商品,更容易獲得用戶們的喜愛,當(dāng)然也存在一半不喜歡的概率。而經(jīng)過計算的結(jié)果也只是表明此類商品被喜歡的概率相對較高。概率性問題直接導(dǎo)致結(jié)果的正確性和確定性產(chǎn)生本質(zhì)的區(qū)別,直接致使ORACLE確定的難度。
2 傳統(tǒng)測試平臺難以符合大數(shù)據(jù)處理的要求
以往所采用的軟件性能測試,主要是借助控制器協(xié)調(diào)本地直接向服務(wù)器端發(fā)出服務(wù)的請求,由此實現(xiàn)對服務(wù)器壓力的測試,其測試負載產(chǎn)生器都屬于局部的物理主機。相對少量的服務(wù)器構(gòu)成應(yīng)用系統(tǒng)來說,用戶數(shù)在數(shù)百上千量級的應(yīng)用服務(wù),才能有效滿足應(yīng)用的需求。
如今,云計算的發(fā)展,用戶的需求也在不斷的增長,其多個系統(tǒng)所需支持的并發(fā)用戶也在不斷的增加,相應(yīng)的訪問量也在由此攀升。這就需要針對服務(wù)端系統(tǒng)是否能夠真正承受如此巨大的用戶訪問量進行有效的測試,可直接在系統(tǒng)上線之前就展開較為充分的測試內(nèi)容。以往局域網(wǎng)主機測試方法所產(chǎn)生壓力,很難真正滿足服務(wù)器對其所產(chǎn)生的壓力測試需求。由此軟件測試工作中開始出現(xiàn)一系列的問題。一是負載產(chǎn)生器的物理機數(shù)量很難獲得動態(tài)的擴展;二是大數(shù)據(jù)所驅(qū)動的云計算系統(tǒng),直接采用了廣泛的分布客戶端。三是在網(wǎng)絡(luò)海量數(shù)據(jù)的推動下,控制器所監(jiān)控的負載產(chǎn)生器狀態(tài)直接成為性能測試的瓶頸,很容易由此引發(fā)測試失敗。四是控制器對負載產(chǎn)生器的同步問題變得越來越復(fù)雜,直接影響到負載測試的效果。
3 軟件服務(wù)化所引發(fā)的測試挑戰(zhàn)
具體從開發(fā)的模式而言,軟件開發(fā)的過程,主要包含了完全編碼、構(gòu)件化、服務(wù)以及云計算等多個階段。
3.1 完全編碼階段
主要是相應(yīng)開發(fā)人員直接從零基礎(chǔ)開始對每行代碼的編寫過程,除了系統(tǒng)本身所提供的類庫之外,通常所有的代碼都是直接由相應(yīng)開發(fā)人員所掌握。在此階段當(dāng)中,用戶們普遍具有良好的可測性,幾乎所有的測試和調(diào)試方式都可以實現(xiàn)。
3.2 構(gòu)件化階段
該階段直接是為了提升軟件開發(fā)的效率,要求相應(yīng)開發(fā)組織必須在系統(tǒng)類庫的基礎(chǔ)上,結(jié)合業(yè)務(wù)自身的特點來構(gòu)建出可復(fù)用的業(yè)務(wù)組件。而通常該組件都是在本地運行,因此其業(yè)務(wù)系統(tǒng)的耦合度明顯偏高,用戶們對于組件的掌控也明顯較大。
3.3 服務(wù)階段
在此階段當(dāng)中,多數(shù)本地組件所提供的調(diào)用可轉(zhuǎn)變成為遠程服務(wù)形式。用戶們可對外部的服務(wù)控制處于逐漸減少的狀態(tài),只能透過服務(wù)的輸入和輸出來實現(xiàn)對服務(wù)情況的良好把握。
3.4 云計算階段
這一階段主要是特別架構(gòu)和PASS之上的應(yīng)用程序,在處理輸入和輸出的同時,多數(shù)用戶并不具備了解PASS服務(wù)運行情況的能力,因而導(dǎo)致用戶測試的難度再次增加。
4 殺蟲劑效應(yīng)
在軟件測試領(lǐng)域當(dāng)中,殺蟲劑效應(yīng)是指相應(yīng)的測試軟件越來越多,其免疫能力變得越來越強的現(xiàn)象。這種現(xiàn)象就如同采用農(nóng)藥殺蟲是一樣的效果,如果持續(xù)采用一種單純的農(nóng)藥,則害蟲將最終在體內(nèi)產(chǎn)生一定的抗體,在此情形下,農(nóng)藥將無法發(fā)揮出應(yīng)有的殺蟲效力。而在多種構(gòu)件化開發(fā)當(dāng)中也是如此,通常在中前期發(fā)現(xiàn)多種缺陷的模式,其都可直接通過校驗和驗證的方式集成在構(gòu)件當(dāng)中,乃至直接成為構(gòu)件的必然屬性。此類構(gòu)件并不需要開發(fā)人員進行單獨的代碼編寫,其直接對測試的方式產(chǎn)生了天然性的免疫能力。
殺蟲劑效應(yīng)將有效的促使軟件的測試技術(shù)獲得飛躍式的更新升級,可迅速的找出存在軟件當(dāng)中的缺陷問題。一般在進行測試的初期階段,只需通過較少的測試即可直接發(fā)現(xiàn)其中所存在的更多缺陷,而在后期的測試當(dāng)中,則很容易發(fā)現(xiàn)其所存在的缺陷數(shù)量,將漸漸趨于平緩,甚至最終在某個周期停止增長。
5 結(jié)語
綜上所述,針對大數(shù)據(jù)背景下的軟件測試挑戰(zhàn)及問題,需要盡可能的避免出現(xiàn)殺蟲效應(yīng),具體要求測試技術(shù)應(yīng)當(dāng)由單一的技術(shù)類型直接向著多元化測試技術(shù)的方向轉(zhuǎn)變。然后需要解決智能數(shù)據(jù)處理所帶來的ORACLE的問題。最后,需要構(gòu)建出面向云環(huán)境的自動化環(huán)境,尤其是客戶端環(huán)境必須咬合服務(wù)端的需求進行良好的匹配。
參考文獻
[1]蔡立志.大數(shù)據(jù)來臨,軟件測試準(zhǔn)備好了嗎[J].軟件產(chǎn)業(yè)與工程,2013,05:15-17.
[2]姜春宇,孟苗苗.大數(shù)據(jù)基準(zhǔn)測試流程與測試工具[J].信息通信技術(shù),2014,06:43-46+51.
作者單位
同濟大學(xué) 上海市 200092