趙柳柳
摘要:現如今,我國的科技在快速的發展,社會在不斷的進步,隨著我國互聯網、大數據等各種新興科技的不斷興起,軟件測試領域受到了重大的沖擊,如何在現階段大數據背景下面對軟件測試中所出現的問題,應對時代賦予軟件測試的挑戰,促進軟件測試更好更快地發展成為了我們應該重視的事情。文章對大數據背景下軟件測試發展所遇到的困難以及挑戰進行簡單分析,并且根據分析結果對軟件測試的未來發展提出期望,希望能夠對我國軟件測試的發展起到作用。
關鍵詞:大數據;軟件測試;困難挑戰;發展期望
引言
大數據處理是指不能通過傳統計算技術處理的海量數據集合的數據創建、存儲、檢索和分析等操作,具有大批量、多樣性、復雜性、實時性、交互性等特性。在大數據背景下,隨著互聯網、政府、企業、個人用戶需求量的增加,基于大數據技術的應用系統越來越多,對軟件測試工作提出了很大的挑戰。只有轉變傳統的測試思維,合理利用多種技術和框架、各種自動化工具的融合,并不斷開拓創新測試方法和技術,優化改進測試策略和流程,才能夠獲得更好的發展。
1大數據背景概述
隨著我國科學技術的不斷發展,計算機技術不斷更新與發展,使全國進入了大數據的時代。大數據的特征不僅僅只有對規模龐大的數據的處理能力,同時能夠對相關行業大規模專業化數據進行處理。大數據主要是需要將眾多的、多樣化以及增長率較高的數據信息作為主要資產,對這些大量的數據進行優化以及處理。因此,在對大數據進行使用時,應該充分對大數據所提供的數據信息進行挖掘,對其結構化與非結構化的數據結合進行更加細致的集合,以便能夠在實際需要中提供具有相應價值的數據。同時,在目前大數據的背景下,大數據本身具有多個特點:(1)大數據的數據量非常龐大,就現階段我國大數據發展形勢看來,隨著大數據的不斷發展,今后會發現大數據的衡量體量單位正在逐漸發生變化。(2)大數據的類型較多,種類繁多,其中互聯網、傳感網以及物聯網都屬于大數據的范疇,使現階段的數據類型變得越來越復雜,不僅包含著傳統的相關數據類型,同使還包括了網頁、圖片、音頻、視頻等半結構化的數據存在。(3)大數據的價值密度偏低,由于大數據的快速發展,大數據方面存在著許多與需求無關的信息,需要對信息進行過濾與整理,才能更好地發揮出大數據的作用。(4)大數據對于信息處理這一方面的速度非常迅速,和從前傳統的數據挖掘技術之間存在著本質的不同,能夠有更加明顯的效果。相比于傳統的數據處理方式,現階段對于數據的處理方式有很大的不同,所以軟件測試的形式、重點以及方法也在不斷地變化與發展。
2解決大數據軟件測試問題的一些措施
2.1加強Map-Reduce階段驗證
Map-Reduce對來自不同數據源的數據進行處理過程中可能會出現編碼問題,如在單一節點上運行正確,在多個節點上運行不正確的問題,包括不正確的聚合、節點配置、輸出格式等。可采用以下方式進行驗證:a.驗證梳理數據處理過程是否完成并輸出文件;b.在單個節點上驗證大數據的業務邏輯后,在多節點上進行相同驗證;c.驗證Map-Reduce處理過程的Key/Value對是否正確生產;d.在reduce過程結束后驗證數據的聚集合并是否正確;e.通過源文件驗證輸出數據來保證數據處理正確完成;f.驗證輸出數據文件格式是否符合大數據業務要求。
2.2完善測試用例的設計
測試是為了保證數據的正確性、業務邏輯的正確性。首先,需要進行需求的調研,必須要清楚整個業務處理流程,每個數據的流轉,每個步驟的輸入和輸出,才能判斷最后的輸出結果是否正確。然后,結合不同業務場景設計測試用例,不僅限于數據的邊界要求、屬性要求等,更多需要考慮數據的樣本及大小,樣本集的分布特征。需要考慮:數據量;數據唯一性;數據完整性;數據一致性;數據邊界;數據精度和格式化;數據區間和分布;數據空值替換及格式化特征等,可結合自動化測試工具或手工編寫測試腳本等方式,導入測試數據,提高測試數據覆蓋率和測試效率。
2.3合理利用測試工具
目前業界暫無通用、標準的大數據性能測試工具,要自行開發或整合多種相關測試工具才可能實現性能測試及問題診斷。首先搭建測試環境,需要考慮:是否有足夠的存儲設備來存儲和處理大數據;有足夠的CPU、內存資源保障高性能處理;有集群處理分布式節點和數據等。接著準備測試數據、設計測試場景、編寫測試腳本,需要考慮:各業務的占比;各節點測試數據量的準備;并發線程/用戶量的需求;超時時間/參數/消息隊列長度設置;選用測試工具或測試腳本開發等。最后執行性能測試,可通過Hadoop性能監控器來監測平均響應時間、吞吐量、資源占用率等運行狀態性能指標和瓶頸問題。
3大數據背景下軟件測試的展望
3.1對Oracle的內存區進行充分調整以及優化
對于Oracle數據庫的內存區我們可以簡單分為兩個部分,即系統全局區(SystemGlobalArea,SGA)和PGA兩部分。其中,SGA主要是作為Oracle數據庫當中的數據緩沖區域,資源共享池以及相關數據日志的緩沖區域,這些區域的分配能否合理直接關系到了數據庫系統性能的優劣程度,對數據庫系統性能起到了非常重要的作用。其中,數據庫的緩沖區域起到了能夠有效地對所搜索到的相關數據進行儲存的作用,也就是說是用來對相關數據進行儲存的區域。
3.2對數據庫當中的碎片進行整理
由于在實際操作過程當中,數據庫不斷進行運作,相關數據的操作也在不斷地變化,所以導致了數據庫當中磁盤碎片的產生。我們可以將磁盤碎片主要分為3個級別來進行分析,即表空間級、索引級以及表級3個方面。其中,表空間級的主要作用是應用表空間重組以及對相關命令的運行對數據庫當中的數據進行導出操作,再通過TRUNCATE將表空間內的數據進行刪除,最后通過IMPORT程序的導入方式來對相關的有效數據進行導入,應用這種方法來對表空間級所產生的磁盤碎片進行清理。索引級主要是將表空間級上面的相關索引數量進行充分減少,或者是變換相對來說頻率較低的列來對索引進行創建,通過對索引進行重建等一系列的方式,來有效對索引當中產生的磁盤碎片進行清理。
3.3提高數據測試技術及測試數據的準確性
因為對數據存儲的模糊認識以及發送無用的重復請求導致錯誤信息出現,進而容易造成因為數據信息的準確性降低而導致的軟件測試效果變差的問題發生。因此,在應用數據庫之前,我們應該對數據庫所應用的軟件進行多次測試,以確保軟件測試的有效性與信息的可靠性,將錯誤數據所產生的影響降到最低,有效提高數據信息的準確性。同時,我們應該對現階段軟件測試技術進行不斷的創新與發展,傳統的測試人員所應用的軟件測試技術主要是應用單一的軟件測試技術對軟件性能進行測試,這樣的測試方法所測試出來的結果具有一定的局限性。
結語
綜上所述,當前的時代屬于大數據時代,軟件測試面臨著很多的挑戰,為了更好應對大數據環境下對軟件測試帶來的問題,提出了一些解決措施,并對未來的軟件測試發展提出展望,需要從以下幾方面改善:(1)測試技術需朝著多元化方向發展,多元化的測試技術能夠有效避免“殺蟲劑效應”,在已知測試技術基礎上,探索出全新的測試技術。(2)大數據的智能化處理,需更多去考慮輸入數據樣本的大小、特性、輸出評判方法等。(3)構建自動化云測試環境,更好的滿足大戶數據背景下性能測試需求,強化客戶端的處理能力,提升與服務端需求之間的匹配度,進而探索、創新更多的測試方法。(4)采用大數據的思維方式,通過全面的測試來提高大數據應用軟件的質量、容錯性、可擴展性、穩定性、安全性。
參考文獻:
[1]王象剛.軟件測試過程管理工具的設計與實現[J].軟件,2014,35(2):96-97.
[2]宋亞奇.云平臺下電力設備監測大數據存儲優化與并行處理技術研究[D].華北電力大學(北京),2016,33(08):192-194.