亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于路徑關(guān)鍵狀態(tài)變量的測(cè)試用例約簡(jiǎn)

        2020-03-18 09:42:42趙逢禹
        關(guān)鍵詞:關(guān)聯(lián)矩陣狀態(tài)變量謂詞

        高 杰, 趙逢禹, 劉 亞

        (上海理工大學(xué) 光電信息與計(jì)算機(jī)工程學(xué)院, 上海 200093)

        0 引 言

        軟件測(cè)試是指使用人工或自動(dòng)的手段來運(yùn)行或測(cè)定某個(gè)軟件系統(tǒng)的過程,其目的在于檢驗(yàn)它是否滿足規(guī)定的需求或弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別[1],科學(xué)應(yīng)用測(cè)試方法可以盡可能地避免軟件在運(yùn)行過程中出現(xiàn)各種故障問題[2]。軟件測(cè)試的核心任務(wù)之一就是構(gòu)建測(cè)試用例集。但軟件規(guī)模的擴(kuò)大會(huì)導(dǎo)致測(cè)試用例集會(huì)變得復(fù)雜龐大,若對(duì)其分類和約簡(jiǎn),會(huì)節(jié)省測(cè)試的時(shí)間和資源消耗。因此,測(cè)試用例集的約簡(jiǎn)旨在最大限度地減少執(zhí)行的測(cè)試用例的數(shù)量。

        測(cè)試用例約簡(jiǎn)的研究可以分為兩類,一類是基于模型的測(cè)試用例約簡(jiǎn)[3],如:通過構(gòu)建多優(yōu)化目標(biāo)模型,提出了不同的基于多優(yōu)化目標(biāo)的測(cè)試用例集約簡(jiǎn)算法[4]。建模過程復(fù)雜,且該嚴(yán)重依賴于模型設(shè)計(jì)的好壞;另一類是貪心算法、啟發(fā)式算法等基于人工智能技術(shù)的測(cè)試用例約簡(jiǎn)。由于這些算法過早收斂、優(yōu)化效率低的局限性,不斷有學(xué)者對(duì)其進(jìn)行改進(jìn),如:針對(duì)傳統(tǒng)貪婪算法存在過擬合的問題,提出了一種基于貝葉斯網(wǎng)絡(luò)模型的黑匣子測(cè)試選擇方法[5],該方法可以確保僅將黑盒測(cè)試之間的強(qiáng)關(guān)系用于測(cè)試選擇,達(dá)到減少測(cè)試用例冗余的目的,而且該方法對(duì)于過度擬合更為健壯。但這種算法的效果仍取決于初始的測(cè)試用例集;應(yīng)用二分K-means聚類算法對(duì)回歸測(cè)試的測(cè)試用例集約簡(jiǎn),以白盒測(cè)試的路徑覆蓋為準(zhǔn)則,對(duì)每個(gè)測(cè)試用例進(jìn)行量化,使每個(gè)用例變成一個(gè)點(diǎn)[6]。以黑盒測(cè)試的功能需求數(shù)作為聚類數(shù),在聚類結(jié)果的每一簇中,按照離中心點(diǎn)的距離排序,依次從每一簇中選擇測(cè)試用例,直至滿足所有測(cè)試需求,得到約簡(jiǎn)的測(cè)試用例集。

        本文認(rèn)為不論是采用模型的方法還是采用貪心、啟發(fā)式算法等方法,基于路徑覆蓋的測(cè)試用例約簡(jiǎn)是基本的方法,為了獲取測(cè)試用例的執(zhí)行路徑,必須計(jì)算關(guān)鍵變量的狀態(tài)。此外,約簡(jiǎn)后的測(cè)試用例集能否與原測(cè)試用例集具有相同的錯(cuò)誤檢測(cè)率對(duì)測(cè)試用例約簡(jiǎn)至關(guān)重要[7]。本文提出一種基于謂詞和關(guān)鍵狀態(tài)變量分析的測(cè)試用例約簡(jiǎn)方法,旨在減少測(cè)試用例的冗余,提高測(cè)試效率,降低測(cè)試成本,并與原測(cè)試用例集具有相同的錯(cuò)誤檢測(cè)率。

        1 關(guān)鍵狀態(tài)變量

        1.1 關(guān)鍵狀態(tài)變量定義

        本文將影響謂詞表達(dá)式中判斷條件的變量稱為關(guān)鍵狀態(tài)變量。在程序運(yùn)行過程中,程序傳遞的參數(shù)的值會(huì)影響謂詞表達(dá)式中的判斷條件,而謂詞表達(dá)式中的判斷條件的結(jié)果會(huì)影響程序運(yùn)行的路徑。關(guān)鍵狀態(tài)變量包括以下3種參數(shù):

        (1) 程序運(yùn)行過程中傳遞給方法的參數(shù);

        (2)程序中影響謂詞表達(dá)式中的判斷條件的輸入或讀取的成員變量;

        (3) (1)、(2)中經(jīng)過一系運(yùn)算之后所得到的新參數(shù)。

        通過代碼來說明本文所定義的關(guān)鍵狀態(tài)變量。

        代碼1關(guān)鍵狀態(tài)變量定義范例。

        1.int compute(int x)

        2.{

        3. intd= 7;

        4. if(d> 3)

        5.{

        6.x= 2 *x;

        7. }else

        8.{

        9.x=x*x;

        10.}

        11. inta,b,c;

        12.b=x/ 2;

        13.a=b;

        14.c=a* 3;

        15. if(a!= 0)

        16.{

        17. return 1;

        18. }

        19. return 0;

        20.}

        在代碼1范例中,有x,a,b,c,d這5個(gè)變量,其中x是傳入的參數(shù),a,d是謂詞判斷中的參數(shù),而a的值是由b賦予的。因此,本文認(rèn)為x,a,b,d是關(guān)鍵狀態(tài)變量。

        1.2 關(guān)鍵狀態(tài)變量獲取

        本文利用抽象語法樹(Abstract Syntax Tree, AST) 來獲取關(guān)鍵狀態(tài)變量。抽象語法樹是程序源代碼的抽象語法結(jié)構(gòu)的樹狀表現(xiàn)形式。

        不同的計(jì)算機(jī)高級(jí)語言都提供了抽象語法樹的處理包。本文所做的研究以C代碼為實(shí)驗(yàn)對(duì)象,C語言中的gcc編譯器可以構(gòu)造抽象語法樹。

        通過在程序源代碼的抽象語法樹中搜索不同的節(jié)點(diǎn)類型得到關(guān)鍵狀態(tài)變量。其具體步驟是:首先在抽象語法樹中找到這些節(jié)點(diǎn)類型,針對(duì)不同的節(jié)點(diǎn)類型做不同的處理,最終將滿足本文定義的所有關(guān)鍵狀態(tài)變量添加到關(guān)鍵狀態(tài)變量集合中。

        2 測(cè)試用例約簡(jiǎn)方案

        測(cè)試用例集約簡(jiǎn)的目的是去除測(cè)試用例中冗余的、無法發(fā)現(xiàn)程序缺陷的測(cè)試用例,從而減少測(cè)試成本,提高測(cè)試效率。

        本文所提出的測(cè)試用例約簡(jiǎn)方案主要有6步:

        (1) 測(cè)試用例聚類。本文所提出的測(cè)試用例約簡(jiǎn)方法與代碼執(zhí)行的路徑和關(guān)鍵狀態(tài)變量密切相關(guān)。因此,要將測(cè)試用例按其測(cè)試的功能以及輸入?yún)?shù)的參數(shù)列表聚類,聚類成若干個(gè)不同的測(cè)試用例集。

        (2)查找每類測(cè)試用例集對(duì)應(yīng)的源代碼。針對(duì)聚類后的每類測(cè)試用例集,根據(jù)測(cè)試的功能與輸入?yún)?shù)的型構(gòu)確定被測(cè)程序的程序源代碼。

        (3)代碼預(yù)處理。程序源代碼中的每個(gè)文件可能會(huì)有多個(gè)方法,每個(gè)方法中的局部變量可能會(huì)出現(xiàn)多次賦值和使用的情況。

        例如代碼2所示的代碼中,當(dāng)程序執(zhí)行執(zhí)行到第11行的條件判斷語句時(shí),x的值并不能確定,可能會(huì)取第5行的x,也可能會(huì)取第8行的x,即同一個(gè)變量在不同的情況下可能會(huì)被賦予不同的值。為了解決這種情況,本文對(duì)代碼進(jìn)行了預(yù)處理,保證每個(gè)變量對(duì)應(yīng)一個(gè)值。

        代碼2代碼預(yù)處理示例

        1.int compute(intx)

        2. {

        3. if(x> 3)

        4. {

        5.x= 2 *x;

        6. }else

        7. {

        8.x=x*x;

        9. }

        10. …

        11. if(x> 10)

        12. {

        13. inty=x;

        14. }

        15. }

        對(duì)代碼中的變量進(jìn)行預(yù)處理就是針對(duì)同一變量可能會(huì)被賦予不同值的變量換成不同的變量名。代碼2中示例代碼經(jīng)預(yù)處理后的結(jié)果如代碼3所示。

        代碼3代碼預(yù)處理結(jié)果示例

        1.int compute(intx)

        2. {

        3. if(x> 3)

        4. {

        5.x1= 2 *x;

        6. }else

        7. {

        8.x2=x*x;

        9. }

        10. …

        11. if (x1> 10)

        12. {

        13. inty=x1;

        14. }else if

        15. {

        16. inty=x2;

        17. }

        18.}

        (4)基于抽象語法樹的信息提取。利用高級(jí)語言中所提供的技術(shù)構(gòu)建程序源代碼的抽象語法樹。獲取抽象語法樹中的每個(gè)節(jié)點(diǎn)信息,從而找到代碼中的關(guān)鍵狀態(tài)變量、關(guān)鍵狀態(tài)變量的計(jì)算表達(dá)式以及謂詞表達(dá)式中的判斷條件,并將它們分別添加到相應(yīng)的集合中。

        (5)構(gòu)建測(cè)試用例關(guān)聯(lián)矩陣。測(cè)試用例集中的每個(gè)測(cè)試用例對(duì)應(yīng)測(cè)試用例關(guān)聯(lián)矩陣的一行信息,多個(gè)測(cè)試用例構(gòu)成了測(cè)試用例關(guān)聯(lián)矩陣。測(cè)試用例關(guān)聯(lián)矩陣用M表示,M矩陣中每一行對(duì)應(yīng)一個(gè)測(cè)試用例的輸入?yún)?shù)、關(guān)鍵狀態(tài)變量、關(guān)鍵狀態(tài)變量的計(jì)算表達(dá)式和謂詞表達(dá)式中的判斷條件,形式化表示為式(1):

        Mi=(ti,,,) .

        (1)

        其中,ti表示測(cè)試用例中第i個(gè)測(cè)試用例的輸入?yún)?shù),V表示關(guān)鍵狀態(tài)變量的集合,E表示關(guān)鍵狀態(tài)變量的計(jì)算表達(dá)式集合,C表示謂詞表達(dá)式中的條件判斷的集合。

        (6)測(cè)試用例約簡(jiǎn)。本文采用的測(cè)試用例約簡(jiǎn)準(zhǔn)則是:任意二個(gè)測(cè)試用例ti,tk,如果對(duì)應(yīng)的謂詞表達(dá)式中的條件判斷的邏輯值完全相同,即=,那么這二個(gè)或多個(gè)測(cè)試用例屬于同一等價(jià)類的測(cè)試用例,具有相同或相似的測(cè)試效果,可以選取其中的一個(gè)作為約簡(jiǎn)后測(cè)試用例。

        該約簡(jiǎn)方案的整體流程框架,如圖1所示。

        圖1 約簡(jiǎn)方法流程框架

        3 主要算法實(shí)現(xiàn)

        在圖1所示的流程圖中,主要有二個(gè)重要的算法:

        (1)在抽象語法樹中獲取關(guān)鍵狀態(tài)變量;

        (2)在測(cè)試用例關(guān)聯(lián)矩陣中查找并移除等效的測(cè)試用例,實(shí)現(xiàn)測(cè)試用例約簡(jiǎn)。

        3.1 基于抽象語法樹的信息提取

        任何一個(gè)C程序文件都可以轉(zhuǎn)換為抽象語法樹的樹狀結(jié)構(gòu),任意一個(gè)包括一個(gè)變量和一個(gè)方法的C程序文件的樹形結(jié)構(gòu),如圖2所示。利用抽象語法樹中提供的方法可以獲取樹中的各個(gè)節(jié)點(diǎn)。

        為獲取關(guān)鍵狀態(tài)變量、關(guān)鍵狀態(tài)變量的計(jì)算表達(dá)式以及謂詞表達(dá)式中的判斷條件,需要從抽象語法樹中找到與其相關(guān)的3類節(jié)點(diǎn):params節(jié)點(diǎn)、IfStatement節(jié)點(diǎn)以及ExpressionStatement節(jié)點(diǎn)。針對(duì)這3類不同的節(jié)點(diǎn)分別找出關(guān)鍵狀態(tài)變量、關(guān)鍵狀態(tài)變量的計(jì)算表達(dá)式和謂詞表達(dá)式中的判斷條件集合,并分別將其添加到相應(yīng)的集合。算法1給出了獲取關(guān)鍵狀態(tài)變量集合、關(guān)鍵狀態(tài)變量的計(jì)算表達(dá)式集合以及謂詞表達(dá)式中的判斷條件集合的算法。

        圖2 抽象語法樹

        算法1基于抽象語法樹的信息提取算法

        輸入預(yù)處理后的程序源代碼的抽象語法樹。

        輸出關(guān)鍵狀態(tài)變量集合keyVariable,關(guān)鍵狀態(tài)變量的計(jì)算表達(dá)式集合comExpression,謂詞表達(dá)式中的判斷條件集合conExpression。

        (1)算法以root為根節(jié)點(diǎn);

        (2)初始化關(guān)鍵狀態(tài)變量集合keyVariable = null,關(guān)鍵狀態(tài)變量的計(jì)算表達(dá)式集合comExpression = null,謂詞表達(dá)式中的判斷條件集合conExpression=null,根root入隊(duì)enqueue(root);

        (3) 循環(huán)queue中的元素。取出隊(duì)首元素,如果為空,轉(zhuǎn)(8),算法結(jié)束,否則轉(zhuǎn)(4);

        (4)如果該節(jié)點(diǎn)的節(jié)點(diǎn)類型是IfStatement,找到該節(jié)點(diǎn)下的表達(dá)式,并將該節(jié)點(diǎn)添加到謂詞表達(dá)式中的判斷條件集合conExpression中,并將該節(jié)點(diǎn)下的變量放入一個(gè)set集合中;

        (5)如果該節(jié)點(diǎn)的節(jié)點(diǎn)類型是VariableDeclaration或者params或者Identifier,并且該變量在(4)的set中出現(xiàn)過,將該節(jié)點(diǎn)添加到關(guān)鍵狀態(tài)變量集合keyVariable中;

        (6)如果該節(jié)點(diǎn)的節(jié)點(diǎn)類型是BinaryExpression或者CallExpression或者UnaryExpression。繼續(xù)向下判斷,若該節(jié)點(diǎn)包括符號(hào)“<”,“>”,“<=”,“>=”,“!=”,“==”,找到該節(jié)點(diǎn)下的表達(dá)式,并將該節(jié)點(diǎn)添加到謂詞表達(dá)式中的判斷條件集合conExpression中;若該節(jié)點(diǎn)包括符號(hào)“=”,找到該節(jié)點(diǎn)下的表達(dá)式,并將該節(jié)點(diǎn)添加到關(guān)鍵狀態(tài)變量的計(jì)算表達(dá)式集合comExpression中;

        (7)如果該節(jié)點(diǎn)的節(jié)點(diǎn)類型不屬于以上節(jié)點(diǎn),則把該節(jié)點(diǎn)的子節(jié)點(diǎn)入隊(duì);

        (8) 算法結(jié)束。

        通過算法1可以獲取測(cè)試用例關(guān)聯(lián)矩陣M中的關(guān)鍵狀態(tài)變量集合、關(guān)鍵狀態(tài)變量的計(jì)算表達(dá)式集合以及謂詞表達(dá)式中的判斷條件集合。

        3.2 基于測(cè)試用例關(guān)聯(lián)矩陣的約簡(jiǎn)

        3.2.1 構(gòu)建測(cè)試用例關(guān)聯(lián)矩陣

        測(cè)試用例關(guān)聯(lián)矩陣的列由關(guān)鍵狀態(tài)變量集合、關(guān)鍵狀態(tài)變量的計(jì)算表達(dá)式集合以及謂詞表達(dá)式中的判斷條件集合中的每個(gè)元素組成,每個(gè)測(cè)試用例的輸入值、關(guān)鍵狀態(tài)變量集合、關(guān)鍵狀態(tài)變量的計(jì)算表達(dá)式集合以及謂詞表達(dá)式中的判斷條件集合構(gòu)成測(cè)試用例關(guān)聯(lián)矩陣的每一行,n個(gè)測(cè)試用例構(gòu)成了測(cè)試用例關(guān)聯(lián)矩陣。圖3給出了一個(gè)測(cè)試用例關(guān)聯(lián)矩陣示例。

        圖3 測(cè)試用例關(guān)聯(lián)矩陣示例

        構(gòu)造測(cè)試用例關(guān)聯(lián)矩陣的輸入可以概括為:測(cè)試用例集T={t1,t2,t3,…,tm},由算法1中得到的關(guān)鍵狀態(tài)變量集合、關(guān)鍵狀態(tài)變量的計(jì)算表達(dá)式集合以及謂詞表達(dá)式中的判斷條件集合,其數(shù)學(xué)表達(dá)式為式(1)。

        在圖3的示例中,t1,t2,t3,t4表示4個(gè)測(cè)試用例,每個(gè)測(cè)試用例有3個(gè)輸入?yún)?shù):a、b、c;a1=a*2和a2=c*3表示代碼中的計(jì)算表達(dá)式;a-b>4,a1>5,a2>2則表示謂詞表達(dá)式中的判斷條件。

        3.2.2 測(cè)試用例約簡(jiǎn)算法

        根據(jù)本文所提出的測(cè)試用例約簡(jiǎn)準(zhǔn)則對(duì)測(cè)試用例關(guān)聯(lián)矩陣進(jìn)行約簡(jiǎn),算法2給出了測(cè)試用例關(guān)聯(lián)矩陣的約簡(jiǎn)描述。

        算法2測(cè)試用例關(guān)聯(lián)矩陣中測(cè)試用例的約簡(jiǎn)

        輸入測(cè)試用例關(guān)聯(lián)矩陣M

        輸出約簡(jiǎn)后的測(cè)試用例關(guān)聯(lián)矩陣M'

        (1)for eachito row // row是測(cè)試用例關(guān)聯(lián)矩陣的行數(shù)

        (2) for eachj=i+ 1 to row

        (3) 如果第i行和第j行的測(cè)試用例對(duì)應(yīng)的謂詞表達(dá)式中的判斷條件集合中的每一列的結(jié)果值都相同,表示第i行和第j行的測(cè)試用例具有相同或相似的功能,保留第i行的測(cè)試用例

        (4) end for

        (5) end for

        4 實(shí)驗(yàn)分析

        4.1 實(shí)驗(yàn)數(shù)據(jù)及評(píng)價(jià)指標(biāo)

        本文選擇了西門子測(cè)試用例集中4個(gè)程序作為實(shí)驗(yàn)對(duì)象來驗(yàn)證本文所提出的測(cè)試用例約簡(jiǎn)的方法。為了評(píng)估本文所提出的方法的有效性,將本文算法與傳統(tǒng)HGS算法和貪心算法(Greedy, G算法)從約簡(jiǎn)率作對(duì)比和分析。約簡(jiǎn)率的計(jì)算公式(2)。

        (2)

        其中:|OriginalTestSuite|表示原測(cè)試用例集中測(cè)試用例數(shù)量,|T*|表示約簡(jiǎn)后測(cè)試用例集中測(cè)試用例的數(shù)量,約簡(jiǎn)率越大則約簡(jiǎn)程度越高。

        西門子測(cè)試用例集中4個(gè)程序的程序集信息如見表1。schedule2是優(yōu)先級(jí)調(diào)度器;tcas是防止航空器空中相撞系統(tǒng)[8];print_tokens和print_tokens2主要用于詞法分析。

        表1 西門子程序集信息

        4.2 實(shí)驗(yàn)方案

        實(shí)驗(yàn)的具體方案:

        (1) 按不同的功能及輸入?yún)?shù)的參數(shù)列表分別將四個(gè)開源程序中的測(cè)試用例集進(jìn)行聚類,確定每一類測(cè)試用例集所對(duì)應(yīng)的程序源代碼;

        (2)將對(duì)應(yīng)的程序源代碼預(yù)處理,將預(yù)處理后的源代碼轉(zhuǎn)換成抽象語法樹,再使用本文所提出的算法1獲取關(guān)鍵狀態(tài)變量集合、關(guān)鍵狀態(tài)變量的計(jì)算表達(dá)式集合以及謂詞表達(dá)式中的判斷條件集合;

        (3)構(gòu)建測(cè)試用例與關(guān)鍵狀態(tài)變量集合、關(guān)鍵狀態(tài)變量的計(jì)算表達(dá)式集合以及謂詞表達(dá)式中的判斷條件集合的測(cè)試用例關(guān)聯(lián)矩陣,再計(jì)算測(cè)試用例關(guān)聯(lián)矩陣中每一項(xiàng)所對(duì)應(yīng)的值,最后根據(jù)測(cè)試用例約簡(jiǎn)準(zhǔn)則對(duì)其進(jìn)行約簡(jiǎn)。

        4.3 實(shí)驗(yàn)結(jié)果和分析

        實(shí)驗(yàn)結(jié)果如圖4所示,可以看出本文所提出的算法可以有效的減少原測(cè)試用例集數(shù)量。

        圖4 3種算法的測(cè)試用例約簡(jiǎn)率

        3種算法約簡(jiǎn)后的測(cè)試用例數(shù)量見表2。

        表2 約簡(jiǎn)后測(cè)試用例的數(shù)量

        通過對(duì)西門子測(cè)試用例集中4個(gè)開源程序自帶的測(cè)試用例集進(jìn)行實(shí)驗(yàn),本文所提算法對(duì)每個(gè)程序中的原測(cè)試用例數(shù)量都有不同程度程度的減少,測(cè)試用例數(shù)量的約簡(jiǎn)率還與原測(cè)試用例集中冗余測(cè)試用例數(shù)量的多少相關(guān)。

        本文所提出的方法在保證測(cè)試用例集完整性的基礎(chǔ)上減少了測(cè)試用例的數(shù)量。實(shí)驗(yàn)中針對(duì)約簡(jiǎn)掉的每個(gè)測(cè)試用例都經(jīng)過了人工檢測(cè),通過對(duì)比測(cè)試用例關(guān)聯(lián)矩陣中的測(cè)試用例,判斷測(cè)試用例關(guān)聯(lián)矩陣中存在與被約簡(jiǎn)的測(cè)試用例的每一列對(duì)應(yīng)的值都是相同的,運(yùn)行被約簡(jiǎn)的測(cè)試用例,進(jìn)一步證實(shí)了這些測(cè)試用例集確實(shí)不能檢測(cè)到程序中存在的缺陷。但本文算法涉及到的步驟相對(duì)較多,會(huì)增加計(jì)算方面的開銷。

        5 結(jié)束語

        測(cè)試用例的約簡(jiǎn)是軟件測(cè)試中一項(xiàng)非常重要的工作,約簡(jiǎn)測(cè)試用例可以極大地減少測(cè)試成本,因此對(duì)測(cè)試用例約簡(jiǎn)的研究具有十分重要的意義。

        本文提出一種基于謂詞分析和關(guān)鍵狀態(tài)變量的測(cè)試用例約簡(jiǎn)方法,主要考慮了變量對(duì)測(cè)試路徑的影響,提出一種基于謂詞分析和關(guān)鍵狀態(tài)變量的測(cè)試用例約簡(jiǎn)方法,主要考慮了變量對(duì)測(cè)試路徑的影響。該方法通過捕獲源代碼中與關(guān)鍵狀態(tài)變量相關(guān)語句和謂詞表達(dá)式中的判斷條件之間的關(guān)系來構(gòu)造測(cè)試用例和關(guān)鍵狀態(tài)變量、關(guān)鍵狀態(tài)變量計(jì)算表達(dá)

        式以及謂詞表達(dá)式中判斷條件之間的測(cè)試用例關(guān)聯(lián)矩陣,并提出了測(cè)試用例約簡(jiǎn)的準(zhǔn)則,根據(jù)該準(zhǔn)則對(duì)測(cè)試用例集進(jìn)行約簡(jiǎn)。實(shí)驗(yàn)結(jié)果表明,本文所提出的約簡(jiǎn)策略可以對(duì)原測(cè)試用例集的數(shù)量進(jìn)行約簡(jiǎn),而且并沒有降低原測(cè)試用例集的錯(cuò)誤檢測(cè)率,但增加了計(jì)算開銷。

        基于代碼分析的測(cè)試用例約簡(jiǎn)所涉及測(cè)試路徑以及本文所提的關(guān)鍵狀態(tài)變量、謂詞表達(dá)式中的判斷條件等因素,是一個(gè)十分復(fù)雜的問題,如果程序中包含程序間調(diào)用、數(shù)據(jù)庫交互等更加復(fù)雜的場(chǎng)景,研究方案仍需要進(jìn)一步完善。另外,文本所做的驗(yàn)證實(shí)驗(yàn)只是在西門子測(cè)試用例套件中選取的四個(gè)程序所自帶的測(cè)試數(shù)據(jù)集上完成的,這4個(gè)程序的源代碼規(guī)模較小,本方法的有效性還需要進(jìn)行大規(guī)模的實(shí)驗(yàn)加以驗(yàn)證。

        猜你喜歡
        關(guān)聯(lián)矩陣狀態(tài)變量謂詞
        一階動(dòng)態(tài)電路零狀態(tài)響應(yīng)公式的通用拓展
        基于TwinCAT3控制系統(tǒng)的YB518型小盒透明紙包裝機(jī)運(yùn)行速度的控制分析
        n階圈圖關(guān)聯(lián)矩陣的特征值
        單圈圖關(guān)聯(lián)矩陣的特征值
        基于嵌套思路的飽和孔隙-裂隙介質(zhì)本構(gòu)理論
        被遮蔽的邏輯謂詞
        ——論胡好對(duì)邏輯謂詞的誤讀
        黨項(xiàng)語謂詞前綴的分裂式
        西夏研究(2020年2期)2020-06-01 05:19:12
        基于關(guān)聯(lián)矩陣主對(duì)角線譜理論的歐拉圖研究
        n階圈圖的一些代數(shù)性質(zhì)
        也談“語言是存在的家”——從語言的主詞與謂詞看存在的殊相與共相
        亚洲国产成人久久综合下载| 国产人妖av在线观看| 日本国产精品久久一线| 国产人成无码视频在线观看| 日韩午夜福利无码专区a| 久久久无码中文字幕久...| 亚洲色欲大片AAA无码| 69精品人妻一区二区| 国产一区二区视频免费在| a级毛片免费完整视频| 亚洲熟伦熟女新五十路熟妇| 中文乱码字幕高清在线观看| 国产优质av一区二区三区| 人妻一区二区三区在线看| 日本成本人片免费网站| 两个人看的www中文在线观看| 国产精品成人无码a 无码| av手机免费在线观看高潮| 国产精品亚洲lv粉色| 日韩精品无码区免费专区 | 无遮挡又黄又刺激又爽的视频| 在线观看日本一区二区 | 国产免费av片在线播放| 91亚洲国产成人aⅴ毛片大全| 中文字幕成人精品久久不卡| 蜜桃视频中文字幕一区二区三区 | 亚洲手机国产精品| 8090成人午夜精品无码| 一本久道视频无线视频试看| 青青草中文字幕在线播放| 日本肥老妇色xxxxx日本老妇| chinese国产乱在线观看| av蜜桃视频在线观看| 中文字幕亚洲乱码熟女1区 | 99青青草视频在线观看| 亚洲av无码国产精品色软件| 中文字幕久无码免费久久| 国产精品一区二区三级| 91久久精品美女高潮喷白浆| 高h纯肉无码视频在线观看| 欧美gv在线观看|