国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

淺析白盒測試在軟件測試中的應(yīng)用

2019-09-23 18:57田春竹邢航
中國信息化 2019年8期
關(guān)鍵詞:軟件測試邏輯模塊

田春竹 邢航

白盒測試,是軟件功能測試中的重要一環(huán)。在當(dāng)前整個測試業(yè)務(wù)中,大家主要關(guān)注于黑盒測試,由于測試過程比較繁瑣、測試成本較高等方面的原因,白盒測試往往被大家直接忽略,所占的比例非常小。本文通過針對某油田系統(tǒng)的一個具體功能點,詳細闡述了白盒測試的基本過程,并說明了白盒測試對黑盒測試的有力補充。

一、軟件測試概述

隨著信息化的快速發(fā)展,信息系統(tǒng)的建設(shè)速度也越來越快,而且呈現(xiàn)出規(guī)模變大,復(fù)雜度增高的趨勢。在這種情況下,無論是進行系統(tǒng)開發(fā)的軟件公司,還是最終的系統(tǒng)用戶,都開始逐漸重視軟件測試,從而進一步推動了軟件測試的發(fā)展。

軟件測試一般可分為兩種,即黑盒測試和白盒測試。其中,白盒測試也被稱為結(jié)構(gòu)測試,它是按照程序內(nèi)部的結(jié)構(gòu)測試程序,通過測試來檢測產(chǎn)品內(nèi)部動作是否按照設(shè)計規(guī)格說明書的規(guī)定正常進行,檢驗程序中的每條通路是否都能按預(yù)定要求正確工作。

二、白盒測試的主要方法及測試流程

(一)白盒測試的主要方法

目前的軟件測試,通常仍是以黑盒測試為主,但是黑盒測試并不一定能發(fā)現(xiàn)所有的問題,在必要情況下,需要使用白盒測試進行補充。

目前比較流行的白盒測試方法包括代碼檢查法、邏輯覆蓋法、基本路徑測試法等。其中,邏輯覆蓋法又可以包含語句覆蓋、判定覆蓋、條件覆蓋等。本文在此主要介紹邏輯覆蓋法的相關(guān)應(yīng)用。

(二)白盒測試的主要流程

進行邏輯覆蓋法的主要測試流程如下:

1、制定測試計劃。即根據(jù)整體測試需求以及被測系統(tǒng)的需求規(guī)格說明書、設(shè)計文檔等來制定測試計劃。

2、進行模塊分析。在白盒測試過程中,測試人員對被測試程序的內(nèi)部結(jié)構(gòu)是清楚的,需要從程序的內(nèi)部邏輯結(jié)構(gòu)入手,按照一定的原則設(shè)計測試用例,對軟件的邏輯路徑進行測試。因此,進行模塊分析是非常重要的一個步驟,也是整個測試的重點和難點。模塊分析主要包括兩個部分,第一是針對被測模塊的功能進行分析,了解模塊的具體業(yè)務(wù)和功能,第二是針對代碼進行分析,查看源代碼中主要的方法、函數(shù)等。如果模塊分析不準(zhǔn)確,則后續(xù)的其他工作都將失去意義。代碼分析和功能分析工作是相輔相成的,作為軟件測試人員,如果對業(yè)務(wù)細節(jié)不懂,就做不好相應(yīng)的測試。但是要在很短的時間內(nèi)把所測系統(tǒng)的業(yè)務(wù)細節(jié)完全搞懂,也是一件非常不容易的事情。因此,一邊了解功能一邊分析代碼,在某些情況下是非常必要的。

3、測試用例設(shè)計。在完全理解具體業(yè)務(wù)細節(jié)后,根據(jù)模塊分析結(jié)果和測試要求,進行測試用例的設(shè)計。

4、測試執(zhí)行。根據(jù)測試用例執(zhí)行測試,并詳細記錄測試結(jié)果。

5、測試總結(jié)。針對測試結(jié)果進行分析,確認發(fā)現(xiàn)的相關(guān)問題,并協(xié)助開發(fā)人員解決相關(guān)錯誤。

6、回歸測試。在開發(fā)人員完成修改后,針對模塊進行回歸測試。

三、白盒測試的具體應(yīng)用

接下來通過一個實例來講述白盒測試中邏輯覆蓋法的具體應(yīng)用。

(一)測試背景

某油田的信息中心人員自行開發(fā)了一套測井解釋系統(tǒng),在經(jīng)過開發(fā)人員的自行測試后,即開始進行內(nèi)部試用。但是在使用過程中發(fā)現(xiàn)了很多問題,為確保系統(tǒng)功能的正確性,該單位(即委托單位)決定聘請第三方人員進行系統(tǒng)的功能測試。

由于在系統(tǒng)試用過程中,產(chǎn)生了部分正式數(shù)據(jù),而委托單位因特殊原因無法提供專用的測試環(huán)境,為了盡量避免測試過程中對系統(tǒng)的正常使用造成麻煩,經(jīng)過和委托單位協(xié)商,由委托單位統(tǒng)一提供所有的測試數(shù)據(jù)。同時,經(jīng)過與委托單位協(xié)商,決定采用邏輯覆蓋的方式,對系統(tǒng)中的幾個重要功能點進行白盒測試。

(二)測試過程

在測試過程中,“工程測井”模塊中含有一個“方位井徑校正”的功能。它是在數(shù)據(jù)庫模式下進行方位井徑曲線數(shù)據(jù)的計算,計算完成后自動保存數(shù)據(jù)。如果之前已經(jīng)存在曲線數(shù)據(jù),可根據(jù)系統(tǒng)提示選擇是否進行覆蓋。

這是一個非常簡單而又常見的功能點。測試人員在進行黑盒測試時,錄入測試數(shù)據(jù),首先點擊“計算”按鈕。系統(tǒng)彈出是否覆蓋數(shù)據(jù)的提示后,點擊“確定”,系統(tǒng)提示已經(jīng)覆蓋數(shù)據(jù),點擊“取消”后,系統(tǒng)界面未發(fā)生任何變化,也無任何提示,功能測試通過。

由于“工程測井”是本系統(tǒng)的一個重點模塊,在功能測試完畢后,開始進行白盒測試。具體過程如下:

1、根據(jù)“方位井徑校正”功能的具體業(yè)務(wù),結(jié)合系統(tǒng)代碼(如圖1)及設(shè)計文檔,進行“計算”功能的流程分析,并標(biāo)識出所有的判斷邏輯(如圖2)。

2、根據(jù)此流程圖,可以判斷出需要編寫五個測試用例,分別是

(1)TC_C_001曲線名是否為空的邏輯判定

(2)TC_C_002是否覆蓋原有數(shù)據(jù)的邏輯判定

……

其中TC_C_002是否覆蓋數(shù)據(jù)的邏輯判定,便是針對前面所述功能的分析結(jié)果。

3、設(shè)計測試用例

根據(jù)流程圖中的分析結(jié)果,結(jié)合系統(tǒng)設(shè)計文檔及具體代碼,完成了測試用例的設(shè)計,如表1所示。

4、執(zhí)行測試用例

在執(zhí)行此用例時,我們使用了開發(fā)平臺中的斷點調(diào)試,即分別點擊“確定”、“取消”按鈕后,使用斷點逐步查看各變量、參數(shù)的變化情況和代碼執(zhí)行情況。

根據(jù)對設(shè)計文檔和系統(tǒng)代碼的分析,我們初步判斷,點擊“取消”按鈕后,系統(tǒng)應(yīng)為option變量賦值為1,然后調(diào)用return函數(shù)結(jié)束當(dāng)前執(zhí)行的方法。但是實際測試過程中,點擊“取消”按鈕后,發(fā)現(xiàn)系統(tǒng)為變量option的賦值為2(如圖3所示)。之后并沒有通過調(diào)用return來結(jié)束方法的執(zhí)行,而是繼續(xù)執(zhí)行該方法,直到完成了一次覆蓋后,才結(jié)束當(dāng)前的操作。

而點擊“確定”按鈕后,系統(tǒng)為變量option的賦值為0,程序跳過if判斷語句,同樣繼續(xù)執(zhí)行覆蓋操作。

也就是說,無論界面上操作時點擊的是“確定”還是“取消”按鈕,其實后臺都執(zhí)行了一次覆蓋操作。

(三)測試總結(jié)及回歸

為何在功能測試時未能發(fā)現(xiàn)這個問題呢?通過總結(jié)我們發(fā)現(xiàn),由于該模塊只進行校正工作,校正后的數(shù)據(jù)是供后期其他模塊匯總使用。測試人員在測試過程中,對于執(zhí)行是否成功,通過該模塊的界面看不到具體效果,僅能通過系統(tǒng)給出的是否覆蓋成功的提示做出簡單判斷,而委托單位提供的測試數(shù)據(jù)又非常單一,從而導(dǎo)致功能測試時未能發(fā)現(xiàn)此問題。

之后,我們與委托單位負責(zé)人,以及模塊開發(fā)人員共同進行了問題確認。在開發(fā)人員完成bug修改后,由業(yè)務(wù)人員提供了多組數(shù)據(jù),并與測試人員一起針對本功能及相關(guān)聯(lián)內(nèi)容進行了回歸測試,最終確認問題得到了解決,bug關(guān)閉。

四、結(jié)語

在軟件測試中,黑盒測試重點在于系統(tǒng)的功能性,而白盒測試則略微偏重于邏輯方面的測試,但是通過本文中的例子可以看出,二者并不沖突,而是互補。雖然通常情況下黑盒測試基本可以發(fā)現(xiàn)一個系統(tǒng)的大多數(shù)問題,但是在白盒測試過程中也可能會發(fā)現(xiàn)一些黑盒測試時未能發(fā)現(xiàn)的問題,反之亦然。對于任何一個系統(tǒng)測試來說,要想更好地實現(xiàn)其基本功能,做好后期的具體應(yīng)用,在其前期測試過程中,白盒測試與黑盒測試都是必不可少的組成部分。

猜你喜歡
軟件測試邏輯模塊
軟件測試方向人才培養(yǎng)“1+X”融合研究
邏輯
大數(shù)據(jù)背景下軟件測試技術(shù)的發(fā)展
Module 2 Highlights of My Senior Year
Module 4 Music Born in America
我們還能有邏輯地聊天嗎
女生買買買時的神邏輯
女人買買買的神邏輯
關(guān)于 Web 應(yīng)用系統(tǒng)的軟件測試的研究
必修模塊相關(guān)知識過關(guān)訓(xùn)練