李進(jìn)
(郴州廣播電視大學(xué) 湖南省郴州市 423000)
大數(shù)據(jù)為軟件測(cè)試提供了重要的技術(shù)支持,有效提升了信息處理的速度,推動(dòng)了社會(huì)發(fā)展進(jìn)步,創(chuàng)造很多生產(chǎn)價(jià)值。但是在軟件實(shí)際應(yīng)用過程中,會(huì)存在各種問題,需要進(jìn)行提前測(cè)試,分析軟件潛在存在的問題,從而制定改進(jìn)策略,保證軟件的質(zhì)量。軟件測(cè)試人員需要采取科學(xué)合理的測(cè)試技術(shù),提升測(cè)試的效果,滿足社會(huì)迅速發(fā)展的要求,推動(dòng)了社會(huì)生產(chǎn)力的進(jìn)步。因此,本文首先分析軟件發(fā)展的現(xiàn)狀,主要針對(duì)大數(shù)據(jù)背景下軟件測(cè)試技術(shù)展開論述。
在大數(shù)據(jù)背景下,豐富了軟件的形態(tài),改善了軟件的性能,滿足了當(dāng)前社會(huì)迅速發(fā)展的要求。下面主要針對(duì)大數(shù)據(jù)背景下軟件的基本形態(tài)展開論述。
(1)處理速度比較快,軟件運(yùn)行通常是按照秒來計(jì)算的,為了滿足實(shí)際要求,測(cè)試人員需要對(duì)數(shù)據(jù)進(jìn)行及時(shí)化分析,這是與傳統(tǒng)分析方式存在很大的不同。隨著大數(shù)據(jù)的不斷應(yīng)用,測(cè)試人員需要重點(diǎn)分析軟件的特點(diǎn)和形態(tài),提升測(cè)試的效率。
(2)從軟件的數(shù)據(jù)種類上看,包括了視頻、日志等內(nèi)容,需要測(cè)試人員結(jié)合不同類型的軟件,選擇相應(yīng)的處理方法,保證檢測(cè)的效率和質(zhì)量。
(3)在進(jìn)行軟件測(cè)試過程中,測(cè)試人員要挖掘出有價(jià)值的信息,進(jìn)行深度分析,重點(diǎn)做好信息的鑒別工作,提升軟件的價(jià)值。
(4)由于軟件數(shù)據(jù)數(shù)量很大,在大數(shù)據(jù)技術(shù)的支持下,包括很多海量信息,但是這些數(shù)量很大,很難進(jìn)行有效的儲(chǔ)存,因此,測(cè)試人員需要做好信息進(jìn)行采集和整理工作,能夠?yàn)槠髽I(yè)提供重要的參考和借鑒。
在以往的軟件測(cè)試過程中,測(cè)試人員需要根據(jù)軟件規(guī)格,建立出相應(yīng)的數(shù)據(jù)模型,建立良好的輸入關(guān)系和輸出關(guān)系。為了進(jìn)一步提升軟件測(cè)試的效率,測(cè)試人員需要利用現(xiàn)代化計(jì)算機(jī)程序,構(gòu)建出相應(yīng)的數(shù)學(xué)模型,不斷挖掘內(nèi)在有價(jià)值的信息,確定最終數(shù)據(jù)與數(shù)據(jù)之間的關(guān)系,滿足實(shí)際生產(chǎn)的基本要求,降低周圍不良因素的干擾與影響。
就目前而言,隨著大數(shù)據(jù)的發(fā)展,為推動(dòng)軟件測(cè)試提供了重要的技術(shù)支持,但是依然存在一些問題,無法滿足實(shí)際生產(chǎn)的基本要求。下面主要針對(duì)大數(shù)據(jù)背景下軟件測(cè)試存在的問題展開論述。
表1:等價(jià)類表示例
在進(jìn)行服務(wù)檢測(cè)過程中,壓力測(cè)試主要通過借助控制器發(fā)射信號(hào)。從測(cè)試方法的角度來看,需要從物理主機(jī)出發(fā),采用不同的處理措施。但是有的測(cè)試人員通常采用傳統(tǒng)的測(cè)試工具進(jìn)行測(cè)試,但是只能滿足部分服務(wù)器的要求。在數(shù)據(jù)大爆炸的時(shí)代,動(dòng)態(tài)化處理平臺(tái)得到了廣泛的應(yīng)用,它應(yīng)用的基礎(chǔ)就是數(shù)據(jù)處理平臺(tái)。但是在進(jìn)行容量較大的客戶端測(cè)試過程中,難度比較大?;诖?,傳統(tǒng)的測(cè)試方法已經(jīng)遠(yuǎn)遠(yuǎn)滿足不了實(shí)際生產(chǎn)的基本要求。
在現(xiàn)階段,結(jié)構(gòu)化數(shù)據(jù)增長速度比較快,尤其是半結(jié)構(gòu)化的社會(huì)媒體數(shù)據(jù),增長速度更快,逐漸呈現(xiàn)出數(shù)據(jù)多樣性的特點(diǎn)。以關(guān)系型數(shù)據(jù)庫為例,主要以結(jié)構(gòu)化數(shù)據(jù)為主,在進(jìn)行結(jié)構(gòu)化文件處理過程中,需要借助軟件測(cè)試,對(duì)軟件的正確性進(jìn)行全面的分析和驗(yàn)證,但是由于數(shù)據(jù)類型多樣,非常繁雜,很容易出現(xiàn)判斷失誤的問題,影響到最終測(cè)試的結(jié)果。
根據(jù)軟件測(cè)試的基本規(guī)律,隨著測(cè)試的數(shù)量不斷增加,數(shù)據(jù)免疫力也再不斷上升,就會(huì)很容易導(dǎo)致殺蟲效應(yīng)。早在20 世紀(jì)90年代,有的測(cè)試人員就發(fā)現(xiàn)了殺蟲劑效應(yīng)了,這種效應(yīng)一旦出現(xiàn),軟件就會(huì)產(chǎn)生很強(qiáng)的抗“藥”性,測(cè)試人員如果一直采用一種測(cè)試方式,就會(huì)大大降低測(cè)試的效果。在軟件開發(fā)前期,開發(fā)人員能夠發(fā)現(xiàn)模式中存在的問題,并且集中在構(gòu)建中,成為構(gòu)件的組成部分,在多次測(cè)試的情況下,具備了一定的免疫能力,很難發(fā)揮后續(xù)測(cè)試的作用。為了做好軟件測(cè)試工作,測(cè)試人員需要探索其中存在的問題,不斷探索其中的缺點(diǎn),做好軟件性能的更新。
在完成編碼設(shè)計(jì)以后,需要進(jìn)行軟件測(cè)試,但是很多問題只有在測(cè)試完成以后才能發(fā)現(xiàn),這大大增加了測(cè)試的難度。并且就算發(fā)現(xiàn)問題,但是也不是所有的問題能在短期內(nèi)可以解決。在進(jìn)行軟件開發(fā)過程中,管理人員沒有對(duì)軟件的質(zhì)量進(jìn)行全面的分析與了解,很難發(fā)現(xiàn)軟件內(nèi)在的問題,對(duì)后續(xù)軟件測(cè)試產(chǎn)生極為不利的影響。從整體的角度來看,在計(jì)算機(jī)信息技術(shù)不斷發(fā)展的前提下,對(duì)當(dāng)前軟件開發(fā)提出了更高的要求和標(biāo)準(zhǔn),需要測(cè)試人員結(jié)合實(shí)際情況按照不同的測(cè)試標(biāo)準(zhǔn),進(jìn)行全面的分析與了解,進(jìn)一步提升測(cè)試的質(zhì)量。
為了提升軟件測(cè)試的效率,滿足實(shí)際測(cè)試的要求,在進(jìn)行測(cè)試過程中,測(cè)試人員需要結(jié)合實(shí)際情況,不斷采用先進(jìn)的軟件測(cè)試技術(shù),從而滿足實(shí)際生產(chǎn)的基本要求。
測(cè)試人員根據(jù)軟件功能設(shè)計(jì)規(guī)格和使用要求,對(duì)每個(gè)功能進(jìn)行分別測(cè)試,是否符合產(chǎn)品性能要求和用戶的要求。黑盒測(cè)試主要在軟件的接口處進(jìn)行測(cè)試,不用考慮內(nèi)部的邏輯結(jié)構(gòu)和特點(diǎn),按照程序的操作規(guī)程和要求,對(duì)程序的功能進(jìn)行檢測(cè)。黑盒測(cè)試也稱為功能測(cè)試或者數(shù)據(jù)驅(qū)動(dòng)測(cè)試,這種測(cè)試方式主要是為了測(cè)試以下問題,軟件是否存在不正確或者遺漏的功能;接口上輸入接受和結(jié)果是否正確;數(shù)據(jù)結(jié)構(gòu)信息是否錯(cuò)誤,外部信息是否存在訪問錯(cuò)誤;軟件性能是否滿足實(shí)際要求;是否存在初始化或者終止性的錯(cuò)誤。
在進(jìn)行黑盒測(cè)試過程中,測(cè)試人員可以把軟件程序當(dāng)做一個(gè)打不開的黑指令,可以不考慮內(nèi)部結(jié)構(gòu)盒內(nèi)部特征的條件下,對(duì)程序接口進(jìn)行測(cè)試。測(cè)試人員需要輸入數(shù)據(jù),然后觀察輸出結(jié)構(gòu),重點(diǎn)檢查軟件系統(tǒng)是否嚴(yán)格按照說明書運(yùn)行,是否產(chǎn)生正確的輸出信息,信息是否完整。
3.1.1 功能測(cè)試
等價(jià)類劃分是一種測(cè)試人員經(jīng)常使用的黑盒測(cè)試方法,就是把可能要輸入的數(shù)據(jù)劃分成不同子集,然后從每個(gè)子集中,選擇代表性的數(shù)據(jù)進(jìn)行測(cè)試。這種測(cè)試方法主要包括有效等價(jià)類和無效等價(jià)類兩種情況,如表1 所示。
3.1.2 邊界值分析法
這種方法就是測(cè)試輸入或者輸出邊界值,選擇其中的等價(jià)類邊界值進(jìn)行測(cè)試,需要按照測(cè)試的標(biāo)準(zhǔn)進(jìn)行挑選,保證測(cè)試的質(zhì)量,需要充分考慮到出域邊界值產(chǎn)生的影響。在利用邊界值分析過程中,需要堅(jiān)持以下幾方面的原則:
(1)明確值的范圍,達(dá)到范圍的邊界值或者剛剛超過這個(gè)范圍的邊界值。
(2)如果輸入條件超出了規(guī)定的個(gè)數(shù),需要使用最大個(gè)數(shù)、最小個(gè)數(shù)、比最大個(gè)數(shù)多1個(gè)、比最小個(gè)數(shù)少1個(gè)的數(shù)作為測(cè)試數(shù)據(jù)。
(3)根據(jù)具體的要求,每輸出一個(gè)條件,就要使用前面兩條規(guī)則。
(4)如果程序占用了內(nèi)部一個(gè)結(jié)構(gòu),需要選擇這個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界值作為測(cè)試用例。
3.1.3 因果圖法
因果圖法就是利用圖解的方法,分析不同的組合方法,進(jìn)行測(cè)試用例設(shè)計(jì),基本步驟如下:
(1)分析軟件規(guī)格中的原因和結(jié)構(gòu),然后確定等價(jià)輸入條件和輸出條件。
(2)分析軟件規(guī)格中的語義,明確原因與結(jié)果之間的關(guān)系,然后畫出因果圖。
(3)明確軟件的約束條件,充分考慮到特殊情況,使用標(biāo)準(zhǔn)的符號(hào),明確約束條件。
(4)需要把因果圖轉(zhuǎn)化成判定表。在因果圖中,Ci 表示原因,Ei 表示結(jié)果。
根據(jù)實(shí)際測(cè)試的經(jīng)驗(yàn),白盒測(cè)試法主要分為靜態(tài)和動(dòng)態(tài)兩種方法。其中靜態(tài)測(cè)試主要對(duì)軟件的表示和描述進(jìn)行檢測(cè),避免出現(xiàn)沖突或者歧義,主要是為了糾正軟件系統(tǒng)在表示和規(guī)格上的錯(cuò)誤,是進(jìn)行下一步測(cè)試的重要基礎(chǔ)。動(dòng)態(tài)測(cè)試主要是進(jìn)行軟件的執(zhí)行測(cè)試,具體包括執(zhí)行前、執(zhí)行中、執(zhí)行后三個(gè)步驟,重點(diǎn)顯示系統(tǒng)在檢查的條件是否正確。
3.2.1 靜態(tài)測(cè)試
圖1:程序1 流程圖
圖2:程序2 流程圖
圖3:順序結(jié)構(gòu)
圖4:IF 選擇結(jié)構(gòu)
圖5:WHILE 循環(huán)結(jié)構(gòu)
圖6:UNIIL 循環(huán)結(jié)構(gòu)
圖7:CASE 多分支結(jié)構(gòu)
在通常情況下,靜態(tài)測(cè)試就是找出源代碼中出現(xiàn)的語法錯(cuò)誤,可以通過編譯器完成,及時(shí)找到存在的錯(cuò)誤,然后報(bào)告。為了提升測(cè)試的質(zhì)量,測(cè)試人員需要采用人工的方法對(duì)程序進(jìn)行非預(yù)防錯(cuò)誤方面的檢驗(yàn),常見的方法主要包括代碼檢查法、靜態(tài)結(jié)構(gòu)分析法等。代碼檢查法主要包括桌面檢查、代碼審查、走查等。靜態(tài)結(jié)構(gòu)分析法主要利用測(cè)試工具分析內(nèi)部結(jié)構(gòu),通過生成函數(shù),調(diào)用各種圖形和圖表,分析控制流、數(shù)據(jù)流、接口以及表達(dá)式等,檢查軟件是否存在缺陷或者錯(cuò)誤。
3.2.2 動(dòng)態(tài)測(cè)試
在動(dòng)態(tài)測(cè)試中,常見的有邏輯覆蓋檢測(cè)方法,主要以程序內(nèi)部作為邏輯結(jié)構(gòu)為基礎(chǔ)的測(cè)試方法,通過程序邏輯結(jié)構(gòu)實(shí)現(xiàn)程序的覆蓋,要求測(cè)試人員能夠全面了解程序的邏輯結(jié)構(gòu)。如圖1 所示。
(1)語句覆蓋要每個(gè)語句至少被執(zhí)行一次。
(2)在判定覆蓋中,就是設(shè)置一些測(cè)試用例,通過程序測(cè)試,對(duì)取真分支和取假分支至少經(jīng)歷一次進(jìn)行判斷,保證判斷的真假值都被滿足。
(3)條件覆蓋就是在程序設(shè)計(jì)中,語句進(jìn)行多少個(gè)條件組成而進(jìn)行復(fù)合判定。
(4)多條件覆蓋,就是在足夠測(cè)試用例的條件下,判定中的可能組合至少出現(xiàn)一次,可以滿足多條件覆蓋的測(cè)試要求。
這種方法就是測(cè)試人員在程序控制流圖的基礎(chǔ)上,對(duì)控制構(gòu)造進(jìn)行全面的分析,做好執(zhí)行路徑集合導(dǎo)出,設(shè)計(jì)出測(cè)試用例的方法,保證每條可執(zhí)行語句要至少執(zhí)行一次。
3.3.1 控制流圖
程序的控制流圖主要是程序控制流的圖示方式,如圖3-圖7所示。
所有圖形符號(hào)中,圓圈代表控制流圖的節(jié)點(diǎn),表示一個(gè)或者多個(gè)無分支的語句或者程序源程序語句。
3.3.2 基本路徑的控制方法
由于基本路徑集不是唯一的,針對(duì)具體的控制流圖,可以確定不同的基本路徑集,通常包括以下集中方法:
(1)確定控制流圖的區(qū)域數(shù)。
(2)設(shè)E 為控制流圖的邊數(shù),N 為圖的點(diǎn)數(shù),則環(huán)路的復(fù)雜性為V(G)=E-N+2。
(3)如果設(shè)P 為控制流圖中的判定節(jié)點(diǎn)數(shù),那么V(G)=P+1。