• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      自動(dòng)化測(cè)試工具覆蓋率對(duì)比分析

      2020-07-07 06:23:52楊正卉
      現(xiàn)代計(jì)算機(jī) 2020年15期
      關(guān)鍵詞:測(cè)試用例套件覆蓋率

      楊正卉

      (四川大學(xué)軟件學(xué)院,成都610065)

      0 引言

      軟件測(cè)試是保證軟件質(zhì)量和可靠性的主要手段。進(jìn)行軟件測(cè)試的主要方式分為手工測(cè)試和自動(dòng)化測(cè)試。手工測(cè)試依賴(lài)于測(cè)試人員的直覺(jué)和經(jīng)驗(yàn),成本高,效率低。自動(dòng)化測(cè)試可以在一定從程度上代替手工,極大的提高測(cè)試人員的效率。工業(yè)中經(jīng)常使用的自動(dòng)化測(cè)試工具主要有單元測(cè)試用例生成工具和符號(hào)化執(zhí)行工具。單元測(cè)試用例生成工具根據(jù)一定的覆蓋率準(zhǔn)則自動(dòng)生成可用的測(cè)試套件,通過(guò)執(zhí)行測(cè)試套件來(lái)發(fā)現(xiàn)項(xiàng)目中的缺陷。符號(hào)化執(zhí)行工具使用符號(hào)值代替程序的輸入值執(zhí)行程序,并使用約束求解器來(lái)判定路徑的可行性。這些工具都以覆蓋率作為測(cè)試標(biāo)準(zhǔn)。有研究者發(fā)現(xiàn),測(cè)試用例的覆蓋率是越高,捕獲代碼缺陷的可能性就越大。因此研究自動(dòng)化單元測(cè)試用例生成工具生成的測(cè)試用例的覆蓋率和檢錯(cuò)率具有重要意義。

      本文選擇EvoSuite,Randoop 和JavaPathfinder 這三個(gè)具有代表性的工具為例,采用了基本數(shù)據(jù)結(jié)構(gòu)代碼,研究自動(dòng)化單元測(cè)試工具的性能,擬回答以下問(wèn)題:

      (1)在基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)代碼上,EvoSuite、Randoop、JavaPathfinder 工具的代碼覆蓋率情況如何?

      (2)什么因素影響了工具的性能?

      1 相關(guān)研究

      近年來(lái),一些論文表明測(cè)試用例的故障檢測(cè)能力與其覆蓋率直接相關(guān)[1-6]。其中,Gligoric 的研究表明分支覆蓋是評(píng)估測(cè)試質(zhì)量的最佳方法,但是當(dāng)存在平局時(shí),非循環(huán)的程序內(nèi)路徑覆蓋可能更好[1]。Frankl 和Weiss 將分支覆蓋率與def-use 覆蓋率進(jìn)行了比較,發(fā)現(xiàn)def-use 比分支覆蓋更有效[2]。Gupta 比較了塊,分支和謂詞覆蓋率,發(fā)現(xiàn)謂詞覆蓋率比其他測(cè)試覆蓋率標(biāo)準(zhǔn)殺死了更多的突變體[3]。Namin 和Andrews 表明,測(cè)試套件的大小和覆蓋范圍與測(cè)試套件的有效性相關(guān)[4]。文獻(xiàn)[5-6]表明測(cè)試用例的故障檢測(cè)能力與其覆蓋率直接相關(guān)。另外,單元測(cè)試用例生成工具EvoSuite,Randoop 以及符號(hào)化執(zhí)行工具Javapathfinder 在前輩們的研究中也得到了廣泛的應(yīng)用。文獻(xiàn)[7-9]主要涉及了單元測(cè)試用例工具EvoSuite 和Randoop。文獻(xiàn)[7]探索了Randoop 和EvoSuite 在處理細(xì)微重構(gòu)錯(cuò)誤時(shí)的效率和局限性。列出了可能影響EvoSuite 和Randoop 工具生成有效套件的能力的一些限制。文獻(xiàn)[8]使用LifeCalc工業(yè)應(yīng)用程序的25 個(gè)實(shí)際故障來(lái)評(píng)估了EvoSuite,Randoop 自動(dòng)生成的測(cè)試套件在檢測(cè)實(shí)際故障方面的有效性。提供了從自動(dòng)化單元測(cè)試生成應(yīng)用到工業(yè)軟件的一般經(jīng)驗(yàn)教訓(xùn)。文獻(xiàn)[9]將Java 自動(dòng)化單元測(cè)試生成工具EvoSuite、Randoop、AgitarOne 應(yīng)用于Defects4J數(shù)據(jù)集中的357 個(gè)故障,詳細(xì)分析生成的套件在檢測(cè)數(shù)據(jù)集中的故障時(shí)的執(zhí)行情況。

      文獻(xiàn)[10-12]主要介紹了JavaPathfinder 工具的一些組件,及組件在工業(yè)中中的應(yīng)用。文獻(xiàn)[10]介紹了JavaPathfinder-AWT,它是Java PathFinder 軟件模型檢查器的擴(kuò)展,可以有效地驗(yàn)證潛在的大型GUI 應(yīng)用程序。JavaPathfinder-AWT 已經(jīng)成功應(yīng)用于大型NASA地面數(shù)據(jù)系統(tǒng),發(fā)現(xiàn)了傳統(tǒng)測(cè)試中的缺陷。文獻(xiàn)[11]介紹了APEX 的模型檢查工具的關(guān)鍵思想。實(shí)現(xiàn)了用戶(hù)定義的屬性類(lèi),以檢查APEX 的每個(gè)狀態(tài)。文獻(xiàn)[12]提出了一種通過(guò)名為JavaPathfinder-Android 的模型檢查工具來(lái)驗(yàn)證Android 應(yīng)用程序的新方法。JavaPathfinder-Android 允許在Java PathFinder 上的Android 平臺(tái)之外驗(yàn)證Android 應(yīng)用程序。

      2 實(shí)驗(yàn)方法

      為了回答上述研究問(wèn)題,本文設(shè)計(jì)了比較實(shí)驗(yàn),實(shí)驗(yàn)過(guò)程如圖1 所示。在每個(gè)被測(cè)項(xiàng)目上,分別運(yùn)用EvoSuite 和Randoop 生成3 組測(cè)試套件,并在該項(xiàng)目上執(zhí)行這些測(cè)試套件,以這些測(cè)試套件結(jié)果的平均值作為工具對(duì)每個(gè)項(xiàng)目的覆蓋率結(jié)果。直接在每個(gè)項(xiàng)目上執(zhí)行JavaPathfinder 工具并獲取相關(guān)的覆蓋率結(jié)果。

      圖1 項(xiàng)目源代碼覆蓋率實(shí)驗(yàn)流程圖

      2.1 實(shí)驗(yàn)數(shù)據(jù)集

      數(shù)據(jù)集是Data Structures and Algorithm Analysis 附錄的基本的數(shù)據(jù)結(jié)構(gòu)相關(guān)代碼。該數(shù)據(jù)集包含了鏈表、隊(duì)列、棧、二叉樹(shù)、圖,以及各類(lèi)查找、排序算法。大部分項(xiàng)目給出了運(yùn)用該項(xiàng)目代碼的main 方法或者手工測(cè)試用例。在每個(gè)項(xiàng)目中,可能包含與其余項(xiàng)目相同的類(lèi)。經(jīng)過(guò)篩選,最終保留了79 個(gè)可用項(xiàng)目。

      2.2 被測(cè)工具

      EvoSuite 工具應(yīng)用遺傳算法生成一組能最大化代碼覆蓋率的測(cè)試套件。它從一個(gè)隨機(jī)測(cè)試用例的測(cè)試套件開(kāi)始,然后迭代地應(yīng)用搜索操作符,如選擇、突變和交叉來(lái)發(fā)展它們。這種演進(jìn)是基于覆蓋率標(biāo)準(zhǔn)的適應(yīng)性函數(shù),默認(rèn)的覆蓋率標(biāo)準(zhǔn)為分支覆蓋。一旦搜索結(jié)束,覆蓋率最高的測(cè)試套件就會(huì)根據(jù)覆蓋標(biāo)準(zhǔn)被最小化,在最小化測(cè)試用例時(shí),向測(cè)試用例中添加回歸測(cè)試斷言。通過(guò)編譯測(cè)試套件來(lái)檢查每個(gè)測(cè)試是否具有語(yǔ)法上的有效性,通過(guò)執(zhí)行來(lái)檢查測(cè)試用例是否穩(wěn)定。任何失敗的斷言都被EvoSuite 注釋掉。在本次實(shí)驗(yàn)中,直接使用了EvoSuite 的默認(rèn)參數(shù)配置。沒(méi)有對(duì)工具參數(shù)做任何調(diào)整。

      Randoop 工具實(shí)現(xiàn)了面向?qū)ο蟪绦虻姆答伓ㄏ螂S機(jī)測(cè)試。這意味著它會(huì)迭代地?cái)U(kuò)展方法調(diào)用序列,隨機(jī)選擇候選對(duì)象,直到生成的序列產(chǎn)生未聲明的異?;蜻`反一般的代碼契約。Randoop 還會(huì)執(zhí)行生成的序列并創(chuàng)建斷言來(lái)捕獲正在測(cè)試的類(lèi)的行為。然而,Randoop 不能針對(duì)特定的被測(cè)類(lèi),因?yàn)樗褂昧俗缘紫蛏系姆椒?,該方法需要方法調(diào)用的所有依賴(lài)項(xiàng)。因此,Randoop 需要在測(cè)試生成期間應(yīng)用探索的所有類(lèi)的列表作為輸入。對(duì)于每個(gè)被測(cè)試的項(xiàng)目,需要提供一個(gè)文本文檔,該文本文檔中包含了被測(cè)項(xiàng)目中所有類(lèi)的類(lèi)名。因?yàn)镽andoop 在默認(rèn)情況下隨機(jī)種子是確定的(例如隨機(jī)的種子總是0)。因此每次生成測(cè)試用例時(shí),需手動(dòng)更改隨機(jī)種子。在生成三組測(cè)試套件時(shí),分別將隨機(jī)種子設(shè)置為0,1,2。對(duì)于所有其他的設(shè)置,應(yīng)用默認(rèn)值。

      JavaPathfinder 將符號(hào)執(zhí)行與模型檢查和約束解決結(jié)合在一起,用于在Java 程序中使用未指定的輸入進(jìn)行自動(dòng)測(cè)試用例生成和錯(cuò)誤檢測(cè)。在這個(gè)工具中,程序是在表示多個(gè)具體輸入的符號(hào)輸入上執(zhí)行的。變量的值被表示為來(lái)自對(duì)Java 字節(jié)碼分析產(chǎn)生的約束。這些約束是利用現(xiàn)成的解決方案來(lái)解決的,以生成保證達(dá)到復(fù)雜覆蓋標(biāo)準(zhǔn)的測(cè)試輸入。通過(guò)解決各種覆蓋義務(wù)的符號(hào)輸入約束,JavaPathfinder 可以作為一個(gè)可定制的測(cè)試生成器。用戶(hù)可以指定不同的代碼覆蓋率指標(biāo)(例如mc/dc),它可以定制生成測(cè)試用例的搜索策略,并且可以以不同的格式保存測(cè)試,例如HTML 表格或JUnit 測(cè)試。此外,JavaPathfinder 還被用于在并行程序中生成反例。JavaPathfinder 工具參數(shù)設(shè)置如圖2所示。

      圖2 JavaPathfinder工具參數(shù)配置

      2.3 實(shí)驗(yàn)環(huán)境

      本實(shí)驗(yàn)使用EvoSuite 1.0.5.jar,Randoop 4.1.0 作為單元測(cè)試用例生成工具。符號(hào)化執(zhí)行工具JavaPathfinder 核心組件JavaPathfinder-core 來(lái)源于http://babelfish.arc.nasa.gov/trac/JavaPathfinder。 運(yùn) 用 工 具eclipse 在Windows 10 64 位操作系統(tǒng)下運(yùn)行EvoSuite/Randoop 測(cè)試套件和JavaPathfinder 工具。在執(zhí)行Evo-Suite 和Randoop 測(cè)試套件時(shí)運(yùn)用了Junit 4 框架,使用EclEMMa 插件統(tǒng)計(jì)覆蓋率。JavaPathfinder 工具為路徑探測(cè)工具,不依賴(lài)于Junit,并且JavaPathfinder-core 自身便可以統(tǒng)計(jì)路徑探測(cè)覆蓋率。

      2.4 實(shí)驗(yàn)步驟

      (1)數(shù)據(jù)集處理

      由于JavaPathfinder 運(yùn)行時(shí)需要程序中有一個(gè)測(cè)試驅(qū)動(dòng)。既main()方法。然而不是所有項(xiàng)目中都包含該方法,但絕大部分項(xiàng)目中都包含著特定的測(cè)試類(lèi)。因此,處理數(shù)據(jù)集時(shí),有如下四種情況:

      若某個(gè)項(xiàng)目沒(méi)有main()方法。則將該程序的測(cè)試類(lèi)更改為普通類(lèi)。將項(xiàng)目中繼承Junit 框架的斷言全部更改為Java 原生斷言。在該類(lèi)中手動(dòng)增加一個(gè)public void main(String[]args)方法,在main 方法中調(diào)用原有的public void setup()方法及其他測(cè)試用例方法。

      若某個(gè)項(xiàng)目中既有main()方法,又有測(cè)試類(lèi)。則刪掉原有的main()方法。則將該程序的測(cè)試類(lèi)更改為普通類(lèi)。將項(xiàng)目中繼承Junit 框架的斷言全部更改為Java 原生斷言。在該類(lèi)中手動(dòng)增加一個(gè)public void main(String[]args)方法,在main 函數(shù)中調(diào)用原有的public void setup()方法及其他測(cè)試用例方法。

      若某個(gè)項(xiàng)目有main()方法,沒(méi)有測(cè)試類(lèi)。則保留main()方法。不做任何更改。

      若某個(gè)函數(shù)既沒(méi)有main()方法,也沒(méi)有測(cè)試類(lèi),則刪除該項(xiàng)目。

      (2)生成測(cè)試用例/運(yùn)行JavaPathfinder

      EvoSuite 和Randoop 都具有隨機(jī)性,能夠在每次調(diào)用時(shí)產(chǎn)生不同的結(jié)果。對(duì)于每個(gè)項(xiàng)目,EvoSuite 和Randoop 工具都生成3 組測(cè)試用例。JavaPathfinder 是符號(hào)化執(zhí)行工具,每次執(zhí)行結(jié)果一致,對(duì)于每個(gè)項(xiàng)目,JavaPathfinder 僅執(zhí)行一次。

      (3)測(cè)試用例執(zhí)行與覆蓋率統(tǒng)計(jì)

      在執(zhí)行EvoSuite 測(cè)試用例時(shí),需要手動(dòng)注釋每個(gè)測(cè)試套件中有關(guān)EvoSuite 參數(shù)設(shè)置的內(nèi)容。Randoop測(cè)試套件不需要進(jìn)行任何更改,直接執(zhí)行。執(zhí)行時(shí)運(yùn)用Eclemma 插件統(tǒng)計(jì)這兩個(gè)工具對(duì)被測(cè)項(xiàng)目的覆蓋率。由于JavaPathfinder 自帶覆蓋率統(tǒng)計(jì)功能,不需要使用額外的插件進(jìn)行覆蓋率統(tǒng)計(jì)。

      3 實(shí)驗(yàn)結(jié)果及分析

      3.1 在基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)代碼上,EvoSuite、Randoop、JavaPathfinder工具的代碼覆蓋率情況

      在圖3 中,EvoSuite 工具在方法覆蓋率上較另外兩個(gè)工具擁有明顯的優(yōu)勢(shì),它覆蓋了被測(cè)項(xiàng)目中的絕大多數(shù)方法。僅個(gè)別被測(cè)方法未被覆蓋。Randoop 工具在某些項(xiàng)目上的方法覆蓋率也逼近100%,但在其余項(xiàng)目上,該工具的方法覆蓋率并不是很理想。JavaPathfinder 工具的方法覆蓋率遠(yuǎn)遠(yuǎn)低于其余兩個(gè)工具。這是因?yàn)镴avaPathfinder 工具執(zhí)行時(shí)依賴(lài)于main 方法,到main 方法中的代碼沒(méi)有調(diào)用項(xiàng)目中某些方法時(shí),該工具時(shí)無(wú)法覆蓋率這些方法的。在圖4 中,EvoSuite 工具的行覆蓋依舊高于其余兩個(gè)工具。Randoop 工具的行覆蓋趨勢(shì)圖與方法覆蓋率類(lèi)似。這說(shuō)明方法覆蓋率嚴(yán)重影響了Randoop 工具的行覆蓋率。當(dāng)Randoop 工具覆蓋到項(xiàng)目中的更多方法時(shí),該工具的行覆蓋率有望得到提升。在圖5 中,EvoSuite 工具依舊占據(jù)著優(yōu)勢(shì),該工具的字節(jié)碼覆蓋率依舊高于其余兩個(gè)工具。但是,值得注意的是:JavaPathfinder 工具的字節(jié)碼覆蓋率居然在方法覆蓋率和行覆蓋率都低于Randoop 工具的前提下,獲取了比Randoop 工具更高的字節(jié)碼覆蓋率。這說(shuō)明了,當(dāng)JavaPathfinder 工具執(zhí)行了某個(gè)方法時(shí),他可以執(zhí)行該方法中更多的分支。從而訪(fǎng)問(wèn)到代表這些分支處理語(yǔ)言的字節(jié)碼。

      總的來(lái)說(shuō),EvoSuite 工具的方法覆蓋率,行覆蓋率和字節(jié)碼覆蓋率都高于其余兩個(gè)工具。Randoop 工具的方法覆蓋率和行覆蓋率優(yōu)于JavaPathfinder 工具,但JavaPathfinder 工具的字節(jié)碼覆蓋率優(yōu)于Randoop工具。

      圖3 方法覆蓋率對(duì)比

      圖4 行覆蓋率對(duì)比

      圖5 字節(jié)碼覆蓋率對(duì)比

      3.2 什么因素影響了工具的性能?

      本文實(shí)驗(yàn)數(shù)據(jù)集中存在大量的靜態(tài)字段或方法,Randoop 工具在生成測(cè)試用例的過(guò)程中沒(méi)有回調(diào)被測(cè)系統(tǒng)的靜態(tài)狀態(tài),產(chǎn)生了大量的不穩(wěn)定測(cè)試。不穩(wěn)定測(cè)試導(dǎo)致工具提前終止運(yùn)行或者無(wú)法生成測(cè)試用例。這是影響Randoop 工具覆蓋率的重要原因之一。在本文中,當(dāng)使用Randoop 工具進(jìn)行實(shí)驗(yàn)時(shí),有19 個(gè)項(xiàng)目產(chǎn)生了flaky tests。例如項(xiàng)目Ch3、Mem、Preorder 等,這幾個(gè)項(xiàng)目因?yàn)镽andoop 在生成過(guò)程中產(chǎn)生了flaky test,導(dǎo)致生成過(guò)程過(guò)早中斷,未生成可執(zhí)行的測(cè)試套件。因此覆蓋率圖中存在斷點(diǎn)現(xiàn)象。另外,即使Randoop 工具生成了可執(zhí)行的測(cè)試套件,該套件的測(cè)試用例數(shù)量會(huì)明顯少于實(shí)際需要的數(shù)量,所生成的測(cè)試用例不能覆蓋到項(xiàng)目中剩余部分的方法。

      另外,本文實(shí)驗(yàn)數(shù)據(jù)級(jí)中存在著大量的代碼冗余現(xiàn)象。例如,項(xiàng)目中的某些方法永遠(yuǎn)不會(huì)被調(diào)用。當(dāng)我們使用EvoSuite 和Randoop 工具對(duì)被測(cè)項(xiàng)目生成測(cè)試套件時(shí),這兩個(gè)工具是以一定的覆蓋率準(zhǔn)則來(lái)判斷是否繼續(xù)生成測(cè)試用例,因此不管項(xiàng)目中的方法是否是冗余的,只要它存在于項(xiàng)目中,這兩個(gè)工具都努力去生夠覆蓋該方法的測(cè)試用例。但對(duì)于JavaPathfinder工具來(lái)說(shuō),冗余代碼代表著無(wú)論該工具模擬怎么的數(shù)據(jù)也無(wú)法執(zhí)行到這些方法中所包含的代碼。這嚴(yán)重影響了JavaPathfinder 工具執(zhí)行時(shí)的覆蓋率結(jié)果。

      3.3 有效性分析

      (1)內(nèi)部有效性

      實(shí)驗(yàn)中對(duì)于EvoSuite 及Randoop 兩種工具上大都采用默認(rèn)參數(shù)設(shè)置。Randoop 工具僅僅在隨機(jī)種子方面進(jìn)行了設(shè)置。EvoSuite 工具在運(yùn)行時(shí)從一個(gè)隨機(jī)測(cè)試用例的測(cè)試套件開(kāi)始,然后迭代地應(yīng)用搜索操作符來(lái)搜索和發(fā)展測(cè)試用例。一旦搜索結(jié)束,覆蓋率最高的測(cè)試套件的覆蓋率就會(huì)根據(jù)覆蓋標(biāo)準(zhǔn)被最小化,于此同時(shí),向測(cè)試用例中添加回歸測(cè)試斷言。在最小化測(cè)試套件的過(guò)程中,會(huì)出現(xiàn)超時(shí)現(xiàn)象。這種現(xiàn)象會(huì)導(dǎo)致個(gè)別項(xiàng)目中的某些類(lèi)測(cè)試用例沒(méi)有寫(xiě)入成功。在一定程度上,可能會(huì)導(dǎo)致該項(xiàng)目覆蓋率偏低。

      (2)外部有效性

      本文主要基于基本的數(shù)據(jù)結(jié)構(gòu)代碼進(jìn)行研究。代碼比較簡(jiǎn)單,每個(gè)項(xiàng)目中的類(lèi)文件個(gè)數(shù)低于10 個(gè)。并且每個(gè)類(lèi)文件中項(xiàng)目代碼行數(shù)不超過(guò)300 行。在相同類(lèi)型的數(shù)據(jù)結(jié)構(gòu)代碼中運(yùn)用到了其余項(xiàng)目的部分代碼。項(xiàng)目之間的耦合程度偏高,獨(dú)立性不夠。對(duì)于實(shí)際項(xiàng)目的模仿力度不夠。但數(shù)據(jù)結(jié)構(gòu)也是在日常項(xiàng)目中用到的最多的知識(shí),數(shù)據(jù)結(jié)構(gòu)代碼具有公共性。若自動(dòng)化測(cè)試工具能該數(shù)據(jù)集中取得很好的成果,那么這些工具在實(shí)際項(xiàng)目中的表現(xiàn)不會(huì)很差。

      4 結(jié)語(yǔ)

      本文通過(guò)覆蓋率實(shí)驗(yàn)分析了自動(dòng)化測(cè)試工具Evo-Suite、Randoop 和JavaPathfinder 在基本數(shù)據(jù)結(jié)構(gòu)代碼上的覆蓋率表現(xiàn)。實(shí)驗(yàn)結(jié)果表明:①EvoSuite 工具對(duì)被測(cè)項(xiàng)目的覆蓋能力明顯優(yōu)于另外兩個(gè)工具。尤其時(shí)方法覆蓋率(高達(dá)90%,甚至100%)。Randoop 工具的方法覆蓋率和行覆蓋率優(yōu)于JavaPathfinder 工具,但JavaPathfinder 工具的字節(jié)碼覆蓋能力明顯優(yōu)于Randoop 工具。②實(shí)驗(yàn)數(shù)據(jù)集的特性影響著被測(cè)工具的性能。例如:靜態(tài)字段導(dǎo)致Randoop 工具提前終止運(yùn)行;冗余代碼無(wú)法被JavaPathfinder 工具所執(zhí)行。本文僅分析了自動(dòng)化測(cè)試工具對(duì)被測(cè)系統(tǒng)的代碼方法覆蓋率、字節(jié)碼覆蓋率、行覆蓋率情況。未來(lái),可以研究它們各自的分支覆蓋,謂詞覆蓋情況。另外可以考慮將各種工具的覆蓋能力與缺陷查找能力結(jié)合分析。對(duì)于EvoSuite 和Randoop 這兩個(gè)單元測(cè)試用例生成工具,我們還可以研究這兩個(gè)工具所生成的測(cè)試套件的覆蓋率和變異分?jǐn)?shù)之間的關(guān)系。另外,在本文實(shí)驗(yàn)中,沒(méi)有很好的處理靜態(tài)字段對(duì)Randoop 工具的影響。在將來(lái)繼續(xù)研究如何使如何優(yōu)化Randoop 工具,使之生成盡可能少的不穩(wěn)定測(cè)試。

      猜你喜歡
      測(cè)試用例套件覆蓋率
      民政部等16部門(mén):到2025年村級(jí)綜合服務(wù)設(shè)施覆蓋率超80%
      我國(guó)全面實(shí)施種業(yè)振興行動(dòng) 農(nóng)作物良種覆蓋率超過(guò)96%
      基于維修費(fèi)用的關(guān)鍵部套件分析
      基于SmartUnit的安全通信系統(tǒng)單元測(cè)試用例自動(dòng)生成
      “龍吟套件”創(chuàng)作感悟
      山東陶瓷(2020年5期)2020-03-19 01:35:36
      基于混合遺傳算法的回歸測(cè)試用例集最小化研究
      工業(yè)照明超頻三天棚燈套件改造工程
      基于噴丸隨機(jī)模型的表面覆蓋率計(jì)算方法
      基于依賴(lài)結(jié)構(gòu)的測(cè)試用例優(yōu)先級(jí)技術(shù)
      CSRmesh開(kāi)發(fā)套件加速物聯(lián)網(wǎng)產(chǎn)品開(kāi)發(fā)
      天等县| 苏尼特右旗| 宣城市| 高台县| 疏附县| 富源县| 靖安县| 宁蒗| 兴国县| 军事| 通海县| 鄱阳县| 丰都县| 台东县| 永吉县| 佛山市| 金昌市| 沅陵县| 定西市| 金华市| 隆德县| 赤峰市| 宝清县| 瓦房店市| 黑山县| 隆回县| 若尔盖县| 栾川县| 华坪县| 荔波县| 黎城县| 博野县| 资阳市| 营口市| 巴彦县| 安平县| 凤城市| 永靖县| 舟山市| 冀州市| 客服|