999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

面向回歸測(cè)試的代碼變更影響度量模型①

2020-05-22 04:48:22周海旭
關(guān)鍵詞:水平影響模型

周海旭

(中國(guó)民航信息網(wǎng)絡(luò)股份有限公司 北京市民航大數(shù)據(jù)工程技術(shù)研究中心,北京 101318)

回歸測(cè)試指的是對(duì)軟件待測(cè)版本中相對(duì)上一個(gè)版本不變的特性進(jìn)行驗(yàn)證.在軟件的版本更迭過(guò)程中,回歸測(cè)試是必不可少的質(zhì)量保障手段.回歸測(cè)試用例一般繼承自產(chǎn)品用例庫(kù),對(duì)于實(shí)際的軟件項(xiàng)目來(lái)說(shuō),回歸測(cè)試用例的數(shù)量往往很大.由于測(cè)試資源的限制,一般不可能執(zhí)行回歸測(cè)試用例集中的全部用例,而是要予以適當(dāng)?shù)娜∩?通常的做法是,首先確定每個(gè)回歸測(cè)試用例的優(yōu)先級(jí),然后再根據(jù)可用資源的規(guī)模,挑選一部分優(yōu)先級(jí)較高的用例進(jìn)行回歸測(cè)試.因此,用例優(yōu)先級(jí)的評(píng)估,是回歸測(cè)試設(shè)計(jì)中的一個(gè)核心問(wèn)題[1–6].

軟件待測(cè)版本相對(duì)上一個(gè)版本的代碼變更,會(huì)對(duì)已有特性帶來(lái)潛在的質(zhì)量風(fēng)險(xiǎn),這一風(fēng)險(xiǎn)水平直接與回歸測(cè)試用例的優(yōu)先級(jí)相關(guān)聯(lián).Orso 等[7]使用用戶(hù)現(xiàn)場(chǎng)數(shù)據(jù)分析代碼變更與回歸測(cè)試用例選擇的關(guān)系;Pfleeger 等[8]通過(guò)依賴(lài)追蹤圖建立起代碼變更與回歸測(cè)試用例的追蹤框架;Ryder 等[9]提出了基于原子變更的分析方法,可以找出所有可能受一組代碼變更影響的回歸測(cè)試用例,同時(shí)也可以找出可能影響到某個(gè)回歸測(cè)試用例的代碼變更.Tyagi 等[10]考慮了缺陷嚴(yán)重性對(duì)回歸測(cè)試用例優(yōu)先級(jí)的影響;Mahmood 等[11]綜合了需求、代碼復(fù)雜性、歷史信息等16 個(gè)影響因素,得到回歸測(cè)試用例優(yōu)先級(jí)的排序結(jié)果;Arar和Ryu 等[12,13]使用成本敏感型機(jī)器學(xué)習(xí)算法來(lái)預(yù)測(cè)代碼變更對(duì)軟件質(zhì)量及回歸測(cè)試用例的影響;Di Nardo 等[14]對(duì)測(cè)試用例在軟件歷史版本上的執(zhí)行信息進(jìn)行分析,并結(jié)合代碼變更情況進(jìn)行回歸測(cè)試用例優(yōu)先級(jí)排序.然而這些已有的研究基本都沒(méi)有涉及到代碼變更對(duì)回歸測(cè)試用例優(yōu)先級(jí)影響水平的定量度量問(wèn)題.

1 代碼變更與回歸測(cè)試用例優(yōu)先級(jí)的關(guān)系

回歸測(cè)試的目的是驗(yàn)證待測(cè)版本的變更是否會(huì)對(duì)已有特性產(chǎn)生不良影響.從風(fēng)險(xiǎn)、價(jià)值和成本的角度,可以歸納出回歸測(cè)試用例優(yōu)先級(jí)的啟發(fā)式評(píng)估原則如下:

(1)用例對(duì)應(yīng)的需求特性受代碼變更的影響越大,則該用例的優(yōu)先級(jí)應(yīng)該越高;

(2)用例對(duì)應(yīng)的需求特性越重要,則該用例的優(yōu)先級(jí)應(yīng)該越高;

(3)執(zhí)行用例所需的成本(包含運(yùn)行用例和維護(hù)用例的成本)越低,則該用例的優(yōu)先級(jí)應(yīng)該越高.

記回歸測(cè)試用例總集為S,其中用例數(shù)量為N,假設(shè)S由一組用例子集構(gòu)成,記為{Si},i=1,2,···,n.Si中用例數(shù)量為Ni.記產(chǎn)品需求特性總集為U,假設(shè)U由一組需求特性子集構(gòu)成,記為且Si與存在測(cè)試覆蓋的映射關(guān)系,記為Si→.用ai表示待測(cè)版本的代碼變更對(duì)需求特性子集的影響水平.用vi表 示的價(jià)值水平,即在功能或非功能上的重要程度.用ei表示運(yùn)行Si(手工或自動(dòng)化方式)所需人天.用mi表示維護(hù)Si(維護(hù)手工用例或自動(dòng)化腳本)所需人天.用R表示可投入到此次回歸測(cè)試中的人天資源總數(shù).

不失一般性,假設(shè)Si中 用例數(shù)量Ni=1,則Si代表回歸測(cè)試用例總集中的第i個(gè)用例.用ci表示該用例的優(yōu)先級(jí),則[3]:

上式說(shuō)明,代碼變更與回歸測(cè)試用例優(yōu)先級(jí)的關(guān)系,集中體現(xiàn)在代碼變更對(duì)相關(guān)需求特性的影響程度上.數(shù)值上要求ai>0.

2 面向回歸測(cè)試的代碼變更影響度量模型

根據(jù)式(1),在回歸測(cè)試設(shè)計(jì)中進(jìn)行用例優(yōu)先級(jí)的評(píng)估時(shí),需要首先計(jì)算ai的值,也就是要定量評(píng)估代碼變更對(duì)需求特性的影響程度.目前度量ai的主要手段是依靠研發(fā)人員的主觀判斷和經(jīng)驗(yàn),結(jié)果并不精確.本文將從測(cè)試覆蓋的角度建立起需求特性與代碼變更的關(guān)聯(lián),綜合顯性和隱性影響水平兩方面的度量指標(biāo),提出一個(gè)新的代碼變更影響度量模型,為回歸測(cè)試用例優(yōu)先級(jí)的評(píng)估提供量化支持.

2.1 基于測(cè)試覆蓋的度量模型設(shè)計(jì)

需求特性與測(cè)試用例之間存在測(cè)試覆蓋的映射關(guān)系.需求特性是測(cè)試用例的覆蓋目標(biāo),測(cè)試用例是需求特性的實(shí)現(xiàn)反映.假設(shè)回歸測(cè)試用例Si覆蓋需求特性子集,那么的實(shí)現(xiàn)程度只能通過(guò)Si的執(zhí)行結(jié)果來(lái)體現(xiàn),如果代碼變更影響了的 實(shí)現(xiàn),必然影響Si的執(zhí)行結(jié)果.也就是說(shuō),代碼變更對(duì)測(cè)試用例的影響程度,可以反映出代碼變更對(duì)需求特性的影響程度.圖1描述了代碼變更與需求特性、測(cè)試用例的關(guān)系.

圖1 代碼變更與需求特性、測(cè)試用例的關(guān)系

基于需求特性與測(cè)試用例之間的測(cè)試覆蓋關(guān)系,可以通過(guò)度量代碼變更對(duì)測(cè)試用例的影響水平,來(lái)評(píng)估代碼變更對(duì)需求特性的影響水平.

進(jìn)一步考慮如何度量代碼變更對(duì)測(cè)試用例的影響.回歸測(cè)試用例Si在執(zhí)行過(guò)程中會(huì)覆蓋被測(cè)軟件中的一部分代碼,將這部分代碼行的集合記為L(zhǎng)i.Si的執(zhí)行結(jié)果是否正確,在代碼層面完全取決于Li的實(shí)現(xiàn)是否正確.因此,代碼變更對(duì)Si的影響程度,等同于代碼變更對(duì)Li的影響程度.從局部的角度看,發(fā)生變更的代碼行集合和Li都是被測(cè)代碼的子集,這兩個(gè)子集的關(guān)系代表了代碼變更對(duì)Li的顯性影響;從整體的角度看,代碼總集內(nèi)部的全局耦合性代表了代碼變更對(duì)Li的隱性影響.本文提出的度量模型綜合了局部和整體兩方面的考慮.

2.2 顯性影響水平

工程實(shí)踐中,絕大多數(shù)軟件項(xiàng)目都使用配置管理工具來(lái)進(jìn)行代碼變更的標(biāo)識(shí)、組織和控制.流行的配置管理工具,如Git、SVN 等,都可以很方便地輸出待測(cè)版本的代碼變更信息,包括發(fā)生變更的類(lèi)、代碼行、變更類(lèi)型、變更內(nèi)容等.

測(cè)試用例與代碼的關(guān)聯(lián)關(guān)系可以通過(guò)代碼覆蓋來(lái)進(jìn)行分析和描述,基本步驟是:

(1)對(duì)被測(cè)代碼進(jìn)行插樁,即插入一些用于信息采集的探針代碼,并保證語(yǔ)義及功能與原始代碼完全等效;

(2)對(duì)插樁后的代碼進(jìn)行編譯、鏈接,獲得可執(zhí)行程序;

(3)執(zhí)行測(cè)試用例,對(duì)插樁輸出的信息進(jìn)行處理,獲得用例對(duì)代碼的覆蓋結(jié)果,也就是用例與代碼的關(guān)聯(lián)關(guān)系.

插樁有手工和自動(dòng)兩種方式.手工方式指的是在代碼需要獲取運(yùn)行覆蓋信息的地方寫(xiě)入信息采集代碼段,相對(duì)靈活,但對(duì)源代碼有修改,引入了額外的風(fēng)險(xiǎn);自動(dòng)方式則通常是基于代碼覆蓋分析工具,對(duì)編譯鏈接產(chǎn)生的中間文件進(jìn)行插樁修改,相對(duì)安全且高效.目前,采用自動(dòng)方式進(jìn)行代碼覆蓋的分析已經(jīng)是業(yè)界的主流選擇,流行的代碼覆蓋分析工具包括Jacoco、EclEmma、gcov 等.

考慮待測(cè)版本代碼變更對(duì)回歸測(cè)試用例Si的影響.將待測(cè)版本的上一個(gè)版本的代碼行總集記為L(zhǎng).借助代碼覆蓋分析工具,依據(jù)上述分析步驟,容易得到Si覆蓋的上一個(gè)版本的代碼行集合,即Li,Li中的元素可以用“命名空間 + 文件名 + 代碼行號(hào)”的方式來(lái)描述;借助配置管理工具,容易得到待測(cè)版本相對(duì)上一個(gè)版本發(fā)生變更的代碼行集合,記為L(zhǎng)D,LD采用與Li同樣的元素描述方式.本文僅討論待測(cè)版本發(fā)生代碼變更的情形,即LD≠?.從代碼行的角度看,代碼變更主要有三種情形:修改某一行,刪除某一行,或在某一行之后新增若干行.若上一個(gè)版本的第j行被修改、刪除,或者在第j行之后新增了若干行,則j∈LD.

如果Li與LD存在交集,說(shuō)明測(cè)試用例Si覆蓋的代碼在待測(cè)版本中發(fā)生了變更,Si的測(cè)試執(zhí)行結(jié)果將受到這一變更的直接影響.Li與LD交疊的程度越大,代碼變更對(duì)Si的影響也越大.基于這一結(jié)論,我們使用Li與LD的jaccard 相似度來(lái)度量代碼變更對(duì)測(cè)試用例Si的顯性影響水平,即:

根據(jù)式(2)可知,0≤J(Li,LD)≤1.當(dāng)J(Li,LD)=0時(shí),與Si有關(guān)的代碼沒(méi)有發(fā)生變更;J(Li,LD)的數(shù)值越大,說(shuō)明與Si有關(guān)的代碼發(fā)生變更的比例越大,Si檢出缺陷的概率也越大.

2.3 隱性影響水平

通過(guò)評(píng)估測(cè)試用例覆蓋代碼行集合與變更代碼行集合的交疊程度,可以衡量代碼變更對(duì)測(cè)試用例的顯性影響程度.然而,由于代碼耦合性的廣泛存在,即使測(cè)試用例覆蓋的代碼行均未發(fā)生變更,該用例也可能受到變更的隱性影響.

假設(shè)待測(cè)版本代碼中,類(lèi)的總集為C={c1,c2,···,c|C|}.借助代碼覆蓋分析工具,容易得到測(cè)試用例Si覆蓋的類(lèi)集合,記為CSi={cSi1,cSi2,···,cSi|Ci|}.借鑒軟件設(shè)計(jì)度量中耦合因子的概念[15],定義面向測(cè)試用例的耦合因子如下:

其中,Descendents(cSim)表 示與cSim有派生關(guān)系的類(lèi)集合;isclient(cSim,cn)是 一個(gè)函數(shù),當(dāng)cSim引用了cn中的某個(gè)方法或變量,且cSim與cn沒(méi) 有派生關(guān)系,且cSim≠cn時(shí),isclient(cSim,cn)取值為1,否則取值為0.易知0≤COF(Si)≤1.

COF(Si)刻畫(huà)了代碼全局耦合性中與測(cè)試用例Si有關(guān)的部分,使用這個(gè)指標(biāo)可以在一定程度上表征代碼變更對(duì)測(cè)試用例的間接影響.但是該指標(biāo)與代碼變更程度的關(guān)聯(lián)較小,只要代碼沒(méi)有類(lèi)級(jí)別的變更,比如類(lèi)的新增、刪除、派生關(guān)系、類(lèi)間引用的改變等,COF(Si)就是一個(gè)定值.而在直觀認(rèn)知中,代碼修改得越多,對(duì)測(cè)試用例執(zhí)行結(jié)果和相關(guān)需求特性產(chǎn)生間接影響的可能性就越大.因此,我們需要針對(duì)代碼變更程度補(bǔ)充另一個(gè)度量維度.

考慮待測(cè)版本的上一個(gè)版本的代碼行總集L和變更代碼行集合LD的關(guān)系.從L和LD的定義易知,L?LD.使用L和LD的jaccard 相似度來(lái)評(píng)估代碼變更程度,即:

因?yàn)長(zhǎng)D≠?,所以J(L,LD)>0.

結(jié)合面向測(cè)試用例的耦合因子、代碼變更程度兩方面的度量,可實(shí)現(xiàn)對(duì)隱性影響水平相對(duì)完整的評(píng)估.

2.4 度量模型的構(gòu)成與特性

綜合以上對(duì)顯性影響水平和隱性影響水平兩方面的分析,可以得到面向回歸測(cè)試的代碼變更影響度量模型如下:

其中,λ是一個(gè)可定制的常量,用于調(diào)節(jié)顯性影響水平和隱性影響水平的數(shù)值比例,在同一軟件的不同版本中可以取不同的值.配置 λ的經(jīng)驗(yàn)原則是,調(diào)節(jié)后的平均顯性影響水平應(yīng)比平均隱性影響水平高一個(gè)數(shù)量級(jí),以保證顯性影響水平在度量中處于主導(dǎo)地位.

因?yàn)?0≤J(Li,LD)≤1,0≤COF(Si)≤1,J(L,LD)>0,所以ai>0,滿(mǎn)足式(1)的數(shù)值要求.

該度量模型的構(gòu)成如圖2所示.

圖2 度量模型構(gòu)成

模型由顯性影響水平指標(biāo)和隱性影響水平指標(biāo)兩部分組成.顯性影響水平刻畫(huà)了用例覆蓋代碼發(fā)生變更的程度,是度量模型的主要指標(biāo),通過(guò)變更代碼集合與用例覆蓋代碼集合的jaccard 相似度進(jìn)行度量;隱性影響水平刻畫(huà)了用例覆蓋代碼藉由代碼總集內(nèi)部耦合性與變更代碼產(chǎn)生間接關(guān)聯(lián)的程度,是模型的次要指標(biāo),通過(guò)面向測(cè)試用例的耦合因子、變更代碼集合與代碼總集的jaccard 相似度進(jìn)行度量.

由于模型全面考慮了代碼變更對(duì)測(cè)試用例可能產(chǎn)生的顯性影響與隱性影響,在以下各類(lèi)情形中,模型都可以給出合理的度量結(jié)果:

(1)回歸測(cè)試用例覆蓋的代碼發(fā)生了變更.這時(shí),模型中顯性影響水平指標(biāo)大于0,而且居于主導(dǎo)地位;

(2)回歸測(cè)試用例覆蓋的代碼未發(fā)生變更.這時(shí),模式中顯性影響水平指標(biāo)等于0,度量結(jié)果取決于隱性影響水平指標(biāo),即用例覆蓋的代碼與變更代碼的耦合程度.

在后續(xù)的實(shí)驗(yàn)分析中,可以看到度量模型上述特性的實(shí)際效果.

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

實(shí)驗(yàn)項(xiàng)目的一個(gè)迭代版本中共包括11 個(gè)類(lèi),1454 行代碼.回歸測(cè)試用例集中共有16 個(gè)用例,各自對(duì)應(yīng)一個(gè)需求特性.該版本有兩個(gè)需求特性發(fā)生了變更,對(duì)應(yīng)的回歸測(cè)試用例分別是TC05 和TC06.如果根據(jù)主觀經(jīng)驗(yàn)來(lái)分析代碼變更對(duì)測(cè)試用例優(yōu)先級(jí)的影響程度,只能簡(jiǎn)單地給這兩個(gè)用例賦予一個(gè)較高的影響水平,而給其它用例賦予一個(gè)較低的影響水平.

基于本文提出的代碼變更影響度量模型,可得到度量結(jié)果如表1(λ取值為10).影響水平排在前兩位的是TC06 和TC05,說(shuō)明模型的度量結(jié)論與主觀經(jīng)驗(yàn)判斷相符;另外,影響水平排在3~5 位的依次為T(mén)C01、TC14 和TC16,且TC01 與TC05 的影響水平很接近.通過(guò)檢查各測(cè)試用例的具體內(nèi)容可以發(fā)現(xiàn),TC01 和TC14 雖然并不是針對(duì)發(fā)生變更的兩個(gè)特性所設(shè)計(jì)的用例,但是在用例的結(jié)果校驗(yàn)部分涉及了變更特性的功能,所以受到了代碼變更的直接影響程度較高;通過(guò)檢查各測(cè)試用例的代碼覆蓋情況可以發(fā)現(xiàn),TC16 所覆蓋的代碼存在較多的類(lèi)間變量引用,在類(lèi)層面的耦合性較高,因此受到代碼變更間接影響的可能較大.由此可見(jiàn),本文提出的模型可以對(duì)代碼變更影響回歸測(cè)試用例的程度給出更客觀、更全面的定量度量結(jié)果.

表1 代碼變更對(duì)回歸測(cè)試用例的影響水平度量結(jié)果

4 結(jié)論與展望

本文首先從測(cè)試覆蓋的角度建立起回歸測(cè)試用例與代碼變更的關(guān)聯(lián),基于代碼覆蓋集合與代碼變更集合的jaccard 相似度來(lái)度量顯性影響水平;繼而從代碼整體系統(tǒng)性的角度,使用面向測(cè)試用例的耦合因子、代碼變更集合與代碼總集的jaccard 相似度來(lái)綜合度量隱性影響水平.本文提出的面向回歸測(cè)試的代碼變更影響度量模型,同時(shí)考慮了顯性影響水平和隱性影響水平兩方面的因素,能夠?qū)Υa變更影響水平進(jìn)行比較全面和客觀的分析,進(jìn)而為回歸測(cè)試用例優(yōu)先級(jí)的評(píng)估提供有效的支持.目前存在的問(wèn)題是,模型的顯性影響水平指標(biāo)中,關(guān)于新增代碼行這一情況的度量方式不夠精細(xì),沒(méi)有體現(xiàn)出代碼增量大小帶來(lái)的不同影響.后續(xù)研究中將考慮予以改進(jìn).

猜你喜歡
水平影響模型
一半模型
張水平作品
是什么影響了滑動(dòng)摩擦力的大小
哪些顧慮影響擔(dān)當(dāng)?
重要模型『一線三等角』
重尾非線性自回歸模型自加權(quán)M-估計(jì)的漸近分布
加強(qiáng)上下聯(lián)動(dòng) 提升人大履職水平
3D打印中的模型分割與打包
擴(kuò)鏈劑聯(lián)用對(duì)PETG擴(kuò)鏈反應(yīng)與流變性能的影響
做到三到位 提升新水平
主站蜘蛛池模板: 91视频区| 91精品国产自产在线老师啪l| 亚洲三级成人| 一区二区日韩国产精久久| 91精品免费高清在线| 青青青国产视频| 九九免费观看全部免费视频| 欧美日本中文| 国产爽爽视频| 久久一色本道亚洲| 91国内视频在线观看| 四虎成人精品在永久免费| 中文字幕色在线| 伊人久久大香线蕉影院| 啪啪啪亚洲无码| 园内精品自拍视频在线播放| 在线亚洲小视频| a级毛片在线免费观看| 在线五月婷婷| 亚洲欧美日韩精品专区| 国产一区二区三区在线观看视频 | 免费又黄又爽又猛大片午夜| 国产欧美综合在线观看第七页| 美女高潮全身流白浆福利区| 国产亚洲精品自在久久不卡 | 欧美伦理一区| 无码精品国产VA在线观看DVD| 又猛又黄又爽无遮挡的视频网站| 精品成人一区二区三区电影| 国产精品2| 色婷婷亚洲综合五月| 国产精品免费久久久久影院无码| 国产小视频在线高清播放 | 精品国产成人国产在线| 四虎精品国产AV二区| 欧美www在线观看| 欧美日韩在线成人| 亚洲首页国产精品丝袜| 精品国产一区91在线| 国产呦视频免费视频在线观看| 日韩精品资源| www.youjizz.com久久| 国产人人乐人人爱| 亚洲天堂首页| 欧美a在线视频| 热re99久久精品国99热| 国产人人乐人人爱| 老司机午夜精品网站在线观看| 亚洲美女久久| 永久成人无码激情视频免费| 黄色片中文字幕| 91精品网站| 色妞www精品视频一级下载| 国产免费福利网站| 91www在线观看| aⅴ免费在线观看| 亚洲妓女综合网995久久| 91娇喘视频| 找国产毛片看| 成人一级免费视频| 日韩激情成人| h视频在线观看网站| 成人国产精品一级毛片天堂| 在线无码av一区二区三区| 亚洲综合色婷婷中文字幕| 三上悠亚在线精品二区| 亚洲中文在线视频| 亚洲熟妇AV日韩熟妇在线| 亚洲中文字幕97久久精品少妇| 成人日韩视频| 97精品久久久大香线焦| 免费看一级毛片波多结衣| 91国内在线观看| 国产在线小视频| 国产欧美精品一区aⅴ影院| 视频二区国产精品职场同事| 亚洲欧美色中文字幕| 久久这里只有精品66| 国产情侣一区| 亚州AV秘 一区二区三区| 日韩小视频在线播放| 婷婷午夜天|