蔣煥
(長江大學(xué)電子信息學(xué)院,湖北荊州,434000)
隨著軟件的規(guī)模和復(fù)雜度增大,傳統(tǒng)的測試方式受到時間、空間、測試成本的限制,導(dǎo)致測試效果不夠理想[1]。軟件產(chǎn)品的不斷更新導(dǎo)致其質(zhì)量的退化,從而增加后期測試的難度[2][3]。垂直地震剖面(VSP)勘探是一個用來處理和解釋地震資料的重要工具。本文所測試的軟件可以對VSP資料進(jìn)行保真處理,功能有振幅補償、波場分離、2D和3D速度建模等,大部分軟件系統(tǒng)通常以圖形用戶界面(GUI)為特征[4]。本文以“VSP數(shù)據(jù)處理軟件”中的幾個模塊為例來實施測試,主要采用的是黑盒和白盒兩種測試方法[5]。
軟件操作界面分為四個部分:數(shù)據(jù)輸入輸出、處理模塊的列表、處理流程的編輯、處理模塊的參數(shù)設(shè)置。其中處理列表中包含這次進(jìn)行測試的兩個模塊:ScanEta(動校正速度掃描)、TimeVaryVectDecompos(時變矢量分解)。操作界面如圖1所示。
圖1 VSP軟件操作界面
黑盒測試具體測試方法包括等價類劃分法、邊界值分析法、判定表驅(qū)動法、因果圖法、錯誤推測法等[6]-[9]。本文用到了等價類劃分方法。對“VSP數(shù)據(jù)處理軟件”的某些模塊進(jìn)行實施測試。
以“VSP數(shù)據(jù)處理軟件”的時變矢量分解模塊為例時變矢量分解模塊需要輸入的數(shù)據(jù)有:(1)輸入路徑,輸出路徑(2)時變矢量分解(3)參數(shù)。
針對表1中劃分和編號的等價類進(jìn)行設(shè)計測試用例,如表2所示。根據(jù)上面所列出的測試用例對軟件進(jìn)行測試,實際結(jié)果和預(yù)期結(jié)果一致。
表1 “VSP軟件”時變矢量分解模塊_等價類編號
表2 “VSP軟件”時變矢量分解模塊_等價類測試用例
采用因果圖方法設(shè)計“VSP數(shù)據(jù)處理軟件”中的動校正速度掃描模塊的測試用例,該模塊運行規(guī)格說明為:“當(dāng)選中動校正速度掃描模塊,輸入輸出路徑、參數(shù)都填寫以及點擊運行按鈕,該模塊才能正常運行,其他情況都會報錯?!备鶕?jù)規(guī)格說明,整理出3個正常輸入條件和2個錯誤輸入條件為:
C1:輸入輸出路徑、C2:運行按鈕、C3:參數(shù)填寫
C4:輸入或者輸出路徑未填、路徑中包含了中文
C5:參數(shù)未填寫或者填寫參數(shù)不符合格式
結(jié)果為:
E1:正常運行
E2:錯誤提示
進(jìn)而得到的因果圖如圖2所示,然后從因果圖導(dǎo)出判定表,如表3所示。最后從判定表導(dǎo)出測試用例,如表4所示。
圖2 因果圖
表3 判定表
表4 測試用例
按照列出的測試用例對該模塊進(jìn)行測試,實際結(jié)果和預(yù)期結(jié)果一致。有針對性的提示有利于操作員及時發(fā)現(xiàn)錯誤的原因。
白盒測試只測試程序的處理過程和內(nèi)部結(jié)果,不測試軟件的功能。將被測程序看成是打開的黑盒,測試人員不考慮程序的功能,只根據(jù)內(nèi)部結(jié)果設(shè)計測試用例[10]-[12]。主要的方法有邏輯覆蓋測試(包括語句覆蓋、條件覆蓋、判斷覆蓋、判斷/條件覆蓋、條件組合覆蓋)路徑覆蓋測試(控制流測試)等。本文主要介紹邏輯覆蓋法對“VSP數(shù)據(jù)處理軟件”中處理某一個模塊的分支語句的方法進(jìn)行測試。
這個模塊是進(jìn)行Sgy文件轉(zhuǎn)成Mat文件操作,程序內(nèi)容為判斷處理列表中是否點擊了SgyToMat模塊,點擊i就為1。接下來就進(jìn)行判斷i取值是否為1,運行run_sgyToMat(strl),因為該模塊需要填四個參數(shù),下一步則判斷輸入的字符串?dāng)?shù)量是否為4,正確就進(jìn)行下一段代碼,不滿足條件則提示錯誤。圖3為該模塊的流程圖。
圖3 掃描速度部分程序流程圖
對圖3的程序,例如:對于第一個判斷,條件i==1,取真值為A,假值為-A;對于第二個判斷,條件 strl.length()!=4,取真值為B,假值為-B;則可以設(shè)計測試用例如表5所示。
表5 掃描速度部分程序流程圖
判定條件覆蓋測試用例如表6所示。
表6 判定條件覆蓋測試用例
上面幾種邏輯覆蓋方法雖然將此模塊所有的路徑基本列出,但由于其代碼量比較龐大,我們不能依照這個方法對整個軟件的代碼進(jìn)行完整的測試,還需使用其他更加有效的方法來進(jìn)行測試。
開發(fā)VSP軟件過程復(fù)雜,對其測試是一個最為重要的環(huán)節(jié)。我們對這款軟件測試的目的就是發(fā)現(xiàn)其中隱藏的缺陷和錯誤并加以完善。本文運用了黑盒測試和白盒測試的方法對“VSP數(shù)據(jù)處理軟件”的部分模塊進(jìn)行測試,將一些隱藏的bug和問題得到了實質(zhì)性的解決,使用性方面也得到了優(yōu)化。因此能滿足用戶的需求,提高用戶的滿意度。在具體的軟件測試過程中,要根據(jù)實際情況制定測試計劃,編寫詳細(xì)的測試用例,然后進(jìn)行反復(fù)的測試和驗證,才能使得軟件的質(zhì)量得到保障。