欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種回歸測試中基于分布的測試用例優(yōu)先級(jí)劃分方法

文檔序號(hào):6430200閱讀:199來源:國知局
專利名稱:一種回歸測試中基于分布的測試用例優(yōu)先級(jí)劃分方法
技術(shù)領(lǐng)域
本發(fā)明屬于軟件測試技術(shù)領(lǐng)域,尤其是軟件測試中回歸測試技術(shù)領(lǐng)域,用于基于分布的測試用例優(yōu)先級(jí)技術(shù),一種回歸測試中基于分布的測試用例優(yōu)先級(jí)劃分方法。
背景技術(shù)
對(duì)于工業(yè)程序,測試用例集通常包含數(shù)以千計(jì)甚至更多的測試用例。執(zhí)行全部的測試用例代價(jià)昂貴,這種情況對(duì)于回歸測試尤為明顯隨著程序的不斷演化,測試用例數(shù)目不斷增多;在有限的資源限制下,很難重新執(zhí)行每個(gè)測試用例。測試用例優(yōu)先級(jí)技術(shù)旨在解決上述問題。測試用例優(yōu)先級(jí)技術(shù)根據(jù)一些準(zhǔn)則重新排列測試用例被執(zhí)行的順序,優(yōu)先級(jí)高的測試用例將被優(yōu)先執(zhí)行。本發(fā)明主要針對(duì)回歸測試場景,關(guān)注于通用的回歸測試情況,即測試用例優(yōu)先級(jí)技術(shù)將應(yīng)用于基礎(chǔ)版本而不考慮其上發(fā)生的任何代碼改變。測試用例優(yōu)先級(jí)技術(shù)的目的是,如果一組測試用例按照特定的順序執(zhí)行,那么該組測試用例更容易滿足某個(gè)目標(biāo)。理想情況下,測試用例應(yīng)該按照盡可能早地最大化錯(cuò)誤檢測能力來排序。但在錯(cuò)誤信息未知之前,照此排序是不切實(shí)際的。因此,測試用例優(yōu)先級(jí)技術(shù)使用代理,盡可能早的最大化代理的某種屬性,希望能夠盡早最大化錯(cuò)誤檢測能力。傳統(tǒng)的測試用例優(yōu)先級(jí)技術(shù)使用覆蓋信息作為代理。它們關(guān)注于盡可能早地最大化某種程序元素的覆蓋率,如語句、分支、數(shù)據(jù)流/控制流等的覆蓋率,希望以此最大化錯(cuò)誤檢測能力;這種技術(shù)被稱為基于覆蓋的測試用例優(yōu)先級(jí)技術(shù)。常見的基于覆蓋的優(yōu)先級(jí)技術(shù)包括貪心算法、遺傳算法等等。近幾年的學(xué)術(shù)研究指出,基于覆蓋的測試用例優(yōu)先級(jí)技術(shù)并不一定能夠保證獲得高的錯(cuò)誤檢測能力,更多的研究開始轉(zhuǎn)向基于分布的測試用例優(yōu)先級(jí)技術(shù)?;诜植嫉臏y試用例優(yōu)先級(jí)技術(shù),根據(jù)執(zhí)行剖面的特征以及執(zhí)行剖面在剖面空間中的分布,對(duì)測試用例進(jìn)行重新排序?,F(xiàn)有的研究集中在使用元素覆蓋率作為執(zhí)行剖面的特征,使用Euclidean Distance, Jaccard Distance等基于集合的距離度量公式作為相異性方程來計(jì)算執(zhí)行剖面的距離。但是,使用元素覆蓋率作為執(zhí)行剖面的特征會(huì)忽略對(duì)順序敏感錯(cuò)誤的檢測。一些錯(cuò)誤僅當(dāng)程序按照一定順序執(zhí)行時(shí)才能被檢測出來,這種錯(cuò)誤被稱為順序敏感的錯(cuò)誤。比如,一些錯(cuò)誤可能會(huì)存在于循環(huán)中,并且僅當(dāng)循環(huán)執(zhí)行多遍時(shí)才能檢測出來。這樣,一個(gè)僅執(zhí)行一次循環(huán)的測試用例和執(zhí)行多次循環(huán)的測試用例在錯(cuò)誤檢測能力上是不同的,盡管對(duì)于這個(gè)循環(huán)片段,它們具有相同的代碼覆蓋率。因此,順序敏感錯(cuò)誤僅僅依靠元素覆蓋率是很難被檢測到的。這說明,現(xiàn)有研究使用元素覆蓋率作為執(zhí)行剖面的特征并不一定能夠保證獲得高的錯(cuò)誤檢測能力和快速的錯(cuò)誤檢測速率。

發(fā)明內(nèi)容
本發(fā)明要解決的問題是現(xiàn)有的基于分布的測試用例優(yōu)先級(jí)技術(shù)使用元素覆蓋率作為執(zhí)行剖面的特征,并不一定能夠保證獲得高的錯(cuò)誤檢測速率,需要提高測試用例優(yōu)先
4級(jí)技術(shù)的錯(cuò)誤檢測速率。本發(fā)明的技術(shù)方案為一種回歸測試中基于分布的測試用例優(yōu)先級(jí)劃分方法,對(duì)于回歸測試中的測試用例集,依據(jù)執(zhí)行剖面在剖面空間中的分布對(duì)測試用例的執(zhí)行順序進(jìn)行優(yōu)先級(jí)排序,優(yōu)先級(jí)高的測試用例將被優(yōu)先執(zhí)行。使得執(zhí)行順序臨近的測試用例盡可能分散在剖面空間中,以盡早最大化錯(cuò)誤檢測能力,提高錯(cuò)誤檢測速率,該方法包括以下步驟1)獲得測試用例集合T中每個(gè)測試用例的執(zhí)行序列信息和覆蓋率信息,使用執(zhí)行序列信息作為測試用例執(zhí)行剖面的特征,所述執(zhí)行序列是一序列的字符串,記錄了程序元素的執(zhí)行順序;2)利用測試用例的執(zhí)行序列的編輯距離,來計(jì)算測試用例之間的相異性程度,兩個(gè)執(zhí)行序列的編輯距離為通過插入、刪除和替換操作,將其中一個(gè)執(zhí)行序列轉(zhuǎn)換為另一個(gè)執(zhí)行序列所需要的操作數(shù);3)使用最遠(yuǎn)距離優(yōu)先farthest-first算法對(duì)測試用例的執(zhí)行順序進(jìn)行排序,使得排序后,執(zhí)行順序臨近的測試用例能夠分散在剖面空間中最遠(yuǎn)距離優(yōu)先算法對(duì)測試用例的排序?yàn)楹笠粋€(gè)測試用例盡可能遠(yuǎn)離之前的測試用例,以保證執(zhí)行順序臨近的測試用例盡可能的分散,其過程是首先選擇第一個(gè)測試用例,該測試用例擁有最大的元素覆蓋率,然后它迭代選擇下一個(gè)測試用例,直到所有的測試用例都被選擇,選擇時(shí),將所有未被排序的測試用例構(gòu)造成一個(gè)候選集合,對(duì)其中的每個(gè)候選測試用例,分別計(jì)算其與已經(jīng)挑選的測試用例集合中每一個(gè)測試用例之間的距離,也就是相異性程度,將其中最小的距離作為該候選測試用例與已被選擇的測試用例集合之間的距離;最后,選擇候選集合中距離已經(jīng)被選擇的測試用例集合最遠(yuǎn)的一個(gè)測試用例,由測試用例的選擇順序得到測試優(yōu)先級(jí)排序,選擇順序越前,優(yōu)先級(jí)越高;4)由步驟幻得到測試用例的測試優(yōu)先級(jí)排序,按照排序后的順序執(zhí)行測試用例。或,步驟幻使用聚類cluster算法對(duì)測試用例的執(zhí)行順序進(jìn)行排序,使得排序后, 執(zhí)行順序臨近的測試用例能夠分散在剖面空間中聚類cluster算法根據(jù)相異性程度將測試用例劃分為不同的簇,然后在不同的簇間輪流挑選測試用例,挑選的先后順序即為測試用例執(zhí)行的順序,其過程是首先使用聚類分析技術(shù)將測試用例劃分為不同的簇,每個(gè)簇的排列順序根據(jù)它們創(chuàng)建的順序決定;然后, 依次從每個(gè)簇中挑選測試用例從第一個(gè)簇中挑選一個(gè)測試用例,然后轉(zhuǎn)向第二個(gè)簇,挑選一個(gè)測試用例,依次類推,直到所有的測試用例都被挑選,一個(gè)簇中測試用例的挑選順序根據(jù)它們的元素覆蓋率來決定,覆蓋率高的測試用例將優(yōu)先被挑選,由測試用例的選擇順序得到測試優(yōu)先級(jí)排序,選擇順序越前,優(yōu)先級(jí)越高;所述聚類分析技術(shù)使用凝聚的層次化聚類算法一開始,每個(gè)簇中只包含一個(gè)測試用例,然后逐步合并距離最近的兩個(gè)簇,合并的過程反復(fù)進(jìn)行,直到簇的個(gè)數(shù)達(dá)到預(yù)先設(shè)置的臨界值,所述臨界值為測試用例總數(shù)的百分比,簇之間的兩兩距離采用平均距離,即首先計(jì)算兩個(gè)簇之間每對(duì)測試用例之間的距離,然后累加求平均。預(yù)先設(shè)置的臨界值為測試用例總數(shù)的5%、10%或15%。使用白盒測試工具CodeCover獲取測試用例集中各測試用例的執(zhí)行序列信息和覆蓋率信息,白盒測試工具CodeCover包括注入階段、執(zhí)行階段和報(bào)告階段注入階段在程序源代碼上注入收集覆蓋信息的輔助代碼;注入完畢后,再在源代碼上注入收集序列信息的輔助代碼;兩次注入完畢后,編譯器產(chǎn)生可執(zhí)行代碼,隨著測試用例的運(yùn)行,注入后的可執(zhí)行代碼被執(zhí)行,測試用例的執(zhí)行序列信息和覆蓋信息隨之被記錄到日志中,日志保存了測試用例程序元素被執(zhí)行的次數(shù)以及程序元素的執(zhí)行順序,最后產(chǎn)生可閱讀的報(bào)告?;诜植嫉臏y試用例優(yōu)先級(jí)技術(shù)依賴于執(zhí)行剖面的特征、所選用的相異性方程, 以及將測試用例重新排序的算法。執(zhí)行剖面刻畫了測試用例的執(zhí)行歷史,對(duì)錯(cuò)誤檢測十分有用。相異性方程決定了執(zhí)行剖面在剖面空間中的分布,該方程將兩個(gè)測試用例的執(zhí)行剖面作為輸入,產(chǎn)生一個(gè)實(shí)數(shù)值代表這兩個(gè)測試用例的相異性程度。將測試用例重新排序的算法依據(jù)測試用例的執(zhí)行剖面在剖面空間中的分布進(jìn)行,使得重新排序后,執(zhí)行順序臨近的測試用例能夠分散在剖面空間中。這主要依據(jù)以下思想剖面空間中分布較近的測試用例通常具有相似的行為,以及相似的錯(cuò)誤檢測能力。例如,該組測試用例具備檢測出同一錯(cuò)誤引發(fā)的不同失效的能力;或者根本不具備檢測出任何錯(cuò)誤的能力。本發(fā)明的特點(diǎn)在于1、使用測試用例的執(zhí)行序列信息作為執(zhí)行剖面的特征;2、使用編輯距離作為相異性方程;3、依據(jù)執(zhí)行序列信息,使用最遠(yuǎn)距離優(yōu)先farthest-first算法或聚類cluster算法對(duì)測試用例的執(zhí)行順序進(jìn)行排序。特點(diǎn)1和2較之現(xiàn)有的使用元素覆蓋率的技術(shù),考慮了程序元素的執(zhí)行順序,能夠更有效的檢測出順序敏感的錯(cuò)誤;同時(shí), 本發(fā)明第一次將farthest-first算法引入到測試用例優(yōu)先級(jí)技術(shù)中,并改進(jìn)了聚類算法使之較之前提出的方法更加自動(dòng)化。將這3點(diǎn)結(jié)合,通過實(shí)驗(yàn)表明,本發(fā)明可以提高錯(cuò)誤檢測的速率,使得程序員可以盡早找到更多的錯(cuò)誤,節(jié)省了程序員尋找錯(cuò)誤的時(shí)間成本。


圖1為本發(fā)明的實(shí)施流程圖。圖2為工具CodeCover收集覆蓋率信息和執(zhí)行序列信息的主要過程。圖3 (a)為本發(fā)明實(shí)施例中,statement粒度farthest-first算法的APFD值的統(tǒng)計(jì)結(jié)果。圖3 (b)為本發(fā)明實(shí)施例中,statement粒度cluster算法的APFD值的統(tǒng)計(jì)結(jié)果。圖4(a)為本發(fā)明實(shí)施例中,branch粒度farthest-first算法的APFD值的統(tǒng)計(jì)結(jié)果。圖4(b)為本發(fā)明實(shí)施例中,branch粒度cluster算法的APFD值的統(tǒng)計(jì)結(jié)果。圖5(a)為本發(fā)明實(shí)施例中,loop粒度farthest-first算法的APFD值的統(tǒng)計(jì)結(jié)^ ο圖5(b)為本發(fā)明實(shí)施例中,loop粒度cluster算法的APFD值的統(tǒng)計(jì)結(jié)果。
具體實(shí)施例方式如圖1,本發(fā)明對(duì)于回歸測試中的測試用例集,對(duì)測試用例的執(zhí)行順序進(jìn)行優(yōu)先級(jí)排序,優(yōu)先級(jí)高的測試用例將被優(yōu)先執(zhí)行,使得執(zhí)行順序臨近的測試用例盡可能分散在剖面空間中,以盡早最大化錯(cuò)誤檢測能力,提高錯(cuò)誤檢測速率,步驟如下1)獲得測試用例集合T中每個(gè)測試用例的執(zhí)行序列信息和覆蓋率信息,使用執(zhí)行序列信息作為測試用例執(zhí)行剖面的特征,所述執(zhí)行序列是一序列的字符串,記錄了程序元
6素的執(zhí)行順序;使用白盒測試工具CodeCover獲取測試用例集中各測試用例的執(zhí)行序列信息和覆蓋率信息,白盒測試工具CodeCover包括注入階段、執(zhí)行階段和報(bào)告階段注入階段在程序源代碼上注入收集覆蓋信息的輔助代碼;注入完畢后,再在源代碼上注入收集序列信息的輔助代碼;兩次注入完畢后,編譯器產(chǎn)生可執(zhí)行代碼,隨著測試用例的運(yùn)行,注入后的可執(zhí)行代碼被執(zhí)行,測試用例的執(zhí)行序列信息和覆蓋信息隨之被記錄到日志中,日志保存了測試用例程序元素被執(zhí)行的次數(shù)以及程序元素的執(zhí)行順序,最后產(chǎn)生可閱讀的報(bào)告;2)利用測試用例的執(zhí)行序列的編輯距離,來計(jì)算測試用例之間的相異性程度。兩個(gè)執(zhí)行序列的編輯距離為通過插入、刪除和替換操作,將其中一個(gè)執(zhí)行序列轉(zhuǎn)換為另一個(gè)執(zhí)行序列所需要的操作數(shù);3)使用最遠(yuǎn)距離優(yōu)先farthest-first算法或聚類cluster算法對(duì)測試用例的執(zhí)行順序進(jìn)行排序,使得排序后,執(zhí)行順序臨近的測試用例能夠分散在剖面空間中;4)由步驟幻得到測試用例的測試優(yōu)先級(jí)排序,按照排序后的順序執(zhí)行測試用例。本發(fā)明中涉及的兩個(gè)主要算法分別是最遠(yuǎn)距離優(yōu)先farthest-first算法和聚類 cluster算法,下面具體說明其實(shí)施方式。1、最遠(yuǎn)距離優(yōu)先farthest-first算法這個(gè)算法的主要流程如下所示Prioritization 過程輸入=TIt1, t2,. . . }原始測試用例集合輸出P{Pl,p2,. . . }排序后測試用例集合過程1、設(shè)置P為空集2、挑選第一個(gè)測試用例tfirst3、將tfirst加入集合P中4、調(diào)用selectNextkstCase過程直到所有測試用例均被選擇5、返回集合PselectNextTestCase 過程過程1、構(gòu)造候選測試用例集Clc1, C2, ... }2、構(gòu)造距離集合 D W1,d2,· · · }3、對(duì)于C中的每個(gè)測試用例Ci設(shè)置Cli = (Ci和P之間的距離)4、選擇D中最大的距離Cli5、將Cli對(duì)應(yīng)的候選測試用例Ci加入集合P中Prioritization過程首先選擇第一個(gè)測試用例,該測試用例擁有最大的元素覆蓋率。然后,它重復(fù)調(diào)用selectNextTestCase過程來選擇下一個(gè)未被排序的測試用例,直到所有的測試用例都被選中。selectNextTestCase過程將所有未排序的測試用例構(gòu)造成一個(gè)候選集合,每一次挑選一個(gè)距離已經(jīng)選擇的測試用例集合最遠(yuǎn)的測試用例。為了決定哪個(gè)候選測試用例被挑選,該過程考慮兩種類型的距離第一種是測試用例兩兩之間的距離, 第二種是候選測試用例和已經(jīng)挑選的測試用例集合之間的距離。對(duì)于第一種距離,本發(fā)明使用編輯距離,根據(jù)兩個(gè)測試用例的執(zhí)行序列來計(jì)算;對(duì)于第二種距離,首先計(jì)算候選測試用例與已經(jīng)挑選的測試用例集合中每一個(gè)測試用例之間的距離,然后挑選最小的距離代表該候選測試用例與已挑選的測試用例集合之間的距離。最后selectNextTestCase過程選擇與已挑選的測試用例集合之間距離最遠(yuǎn)的測試用例作為下一個(gè)測試用例,由測試用例的選擇順序得到測試優(yōu)先級(jí)排序,選擇順序越前,優(yōu)先級(jí)越高。本發(fā)明實(shí)施例中使用語句 (statement)、分支(branch)、循環(huán)(loop)三種粒度信息作為執(zhí)行剖面的粒度。2、聚類 cluster 算法Cluster算法的基本思想是用聚類分析技術(shù)將測試用例劃分為不同的簇,這樣執(zhí)行順序臨近的測試用例分屬于不同的簇,可以盡可能分散在剖面空間中。相異性方程被用來計(jì)算對(duì)象之間的距離,以指導(dǎo)聚類過程。測試用例優(yōu)先級(jí)技術(shù)排序測試用例的執(zhí)行順序, 但不會(huì)從原始測試用例集中丟棄任何測試用例。基于此,cluster算法需要兩種類型的優(yōu)先級(jí)排序簇間優(yōu)先級(jí)排序和簇內(nèi)優(yōu)先級(jí)排序。簇間優(yōu)先級(jí)針對(duì)不同的簇進(jìn)行排序,而簇內(nèi)優(yōu)先級(jí)針對(duì)一個(gè)簇中的各個(gè)測試用例進(jìn)行排序。Cluster算法的主要過程如下最初,使用聚類分析技術(shù)將測試用例劃分為不同的簇。每個(gè)簇的排列順序?qū)⒏鶕?jù)它們創(chuàng)建的順序決定。然后,依次從每個(gè)簇中挑選測試用例。為公平起見,從第一個(gè)簇中挑選第一個(gè)測試用例,然后轉(zhuǎn)向第二個(gè)簇,挑選第一個(gè)測試用例,依次類推,直到所有的測試用例都被挑選。一個(gè)簇中測試用例的挑選順序?qū)⒏鶕?jù)它們的元素覆蓋率來決定,覆蓋率高的測試用例將優(yōu)先被挑選,由測試用例的選擇順序得到測試優(yōu)先級(jí)排序,選擇順序越前,優(yōu)先級(jí)越高。本發(fā)明實(shí)施例中使用語句(statement)、分支 (branch)、循環(huán)(loop)三種粒度信息作為執(zhí)行剖面的粒度,并相應(yīng)選擇語句覆蓋率、分支覆蓋率、循環(huán)覆蓋率作為簇內(nèi)測試用例挑選的依據(jù)。Cluster算法中聚類分析技術(shù)選用凝聚的層次化聚類算法一開始,每個(gè)簇中只包含一個(gè)測試用例,然后逐步合并距離最近的兩個(gè)簇,合并的過程反復(fù)進(jìn)行,直到簇的個(gè)數(shù)達(dá)到臨界值。本發(fā)明實(shí)施例依次選擇測試用例總數(shù)的5<%、10%、15%作為臨界值。簇之間的兩兩距離采用平均距離,即計(jì)算兩個(gè)簇之間每對(duì)測試用例之間的距離,然后累加求平均。 每對(duì)測試用例之間的距離根據(jù)執(zhí)行序列,使用編輯距離計(jì)算。下面通過具體的實(shí)施例來說明本發(fā)明的實(shí)施。本發(fā)明選擇了 Checkstyle程序作為實(shí)驗(yàn)程序。這個(gè)程序?yàn)殚_源程序,并且提供了測試用例集。表1列出了這個(gè)程序的詳細(xì)信息。表1實(shí)驗(yàn)程序詳細(xì)信息
權(quán)利要求
1.一種回歸測試中基于分布的測試用例優(yōu)先級(jí)劃分方法,其特征是對(duì)于回歸測試中的測試用例集,依據(jù)執(zhí)行剖面在剖面空間中的分布對(duì)測試用例的執(zhí)行順序進(jìn)行優(yōu)先級(jí)排序, 優(yōu)先級(jí)高的測試用例將被優(yōu)先執(zhí)行,使得執(zhí)行順序臨近的測試用例盡可能分散在剖面空間中,以盡早最大化錯(cuò)誤檢測能力,提高錯(cuò)誤檢測速率,該方法包括以下步驟1)獲得測試用例集合T中每個(gè)測試用例的執(zhí)行序列信息和覆蓋率信息,使用執(zhí)行序列信息作為測試用例執(zhí)行剖面的特征,所述執(zhí)行序列是一序列的字符串,記錄了程序元素的執(zhí)行順序;2)利用測試用例的執(zhí)行序列的編輯距離,來計(jì)算測試用例之間的相異性程度,兩個(gè)執(zhí)行序列的編輯距離為通過插入、刪除和替換操作,將其中一個(gè)執(zhí)行序列轉(zhuǎn)換為另一個(gè)執(zhí)行序列所需要的操作數(shù);3)使用最遠(yuǎn)距離優(yōu)先farthest-first算法對(duì)測試用例的執(zhí)行順序進(jìn)行排序,使得排序后,執(zhí)行順序臨近的測試用例能夠分散在剖面空間中最遠(yuǎn)距離優(yōu)先算法對(duì)測試用例的排序?yàn)楹笠粋€(gè)測試用例盡可能遠(yuǎn)離之前的測試用例,以保證執(zhí)行順序臨近的測試用例盡可能的分散,其過程是首先選擇第一個(gè)測試用例, 該測試用例擁有最大的元素覆蓋率,然后它迭代選擇下一個(gè)測試用例,直到所有的測試用例都被選擇,選擇時(shí),將所有未被排序的測試用例構(gòu)造成一個(gè)候選集合,對(duì)其中的每個(gè)候選測試用例,分別計(jì)算其與已經(jīng)挑選的測試用例集合中每一個(gè)測試用例之間的距離,也就是相異性程度,將其中最小的距離作為該候選測試用例與已被選擇的測試用例集合之間的距離;最后,選擇候選集合中距離已經(jīng)被選擇的測試用例集合最遠(yuǎn)的一個(gè)測試用例,由測試用例的選擇順序得到測試優(yōu)先級(jí)排序,選擇順序越前,優(yōu)先級(jí)越高;4)由步驟幻得到測試用例的測試優(yōu)先級(jí)排序,按照排序后的順序執(zhí)行測試用例。
2.根據(jù)權(quán)利要求1所述的一種回歸測試中基于分布的測試用例優(yōu)先級(jí)劃分方法,其特征是步驟幻使用聚類cluster算法對(duì)測試用例的執(zhí)行順序進(jìn)行排序,使得排序后,執(zhí)行順序臨近的測試用例能夠分散在剖面空間中聚類cluster算法根據(jù)相異性程度將測試用例劃分為不同的簇,然后在不同的簇間輪流挑選測試用例,挑選的先后順序即為測試用例執(zhí)行的順序,其過程是首先使用聚類分析技術(shù)將測試用例劃分為不同的簇,每個(gè)簇的排列順序根據(jù)它們創(chuàng)建的順序決定;然后,依次從每個(gè)簇中挑選測試用例從第一個(gè)簇中挑選一個(gè)測試用例,然后轉(zhuǎn)向第二個(gè)簇,挑選一個(gè)測試用例,依次類推,直到所有的測試用例都被挑選,一個(gè)簇中測試用例的挑選順序根據(jù)它們的元素覆蓋率來決定,覆蓋率高的測試用例將優(yōu)先被挑選,由測試用例的選擇順序得到測試優(yōu)先級(jí)排序,選擇順序越前,優(yōu)先級(jí)越高;所述聚類分析技術(shù)使用凝聚的層次化聚類算法一開始,每個(gè)簇中只包含一個(gè)測試用例,然后逐步合并距離最近的兩個(gè)簇,合并的過程反復(fù)進(jìn)行,直到簇的個(gè)數(shù)達(dá)到預(yù)先設(shè)置的臨界值,所述臨界值為測試用例總數(shù)的百分比,簇之間的兩兩距離采用平均距離,即首先計(jì)算兩個(gè)簇之間每對(duì)測試用例之間的距離,然后累加求平均。
3.根據(jù)權(quán)利要求2所述的一種回歸測試中基于分布的測試用例優(yōu)先級(jí)劃分方法,其特征是預(yù)先設(shè)置的臨界值為測試用例總數(shù)的5%、10%或15%。
4.根據(jù)權(quán)利要求1或2所述的一種回歸測試中基于分布的測試用例優(yōu)先級(jí)劃分方法, 其特征是使用白盒測試工具CodeCover獲取測試用例集中各測試用例的執(zhí)行序列信息和覆蓋率信息,白盒測試工具CodeCover包括注入階段、執(zhí)行階段和報(bào)告階段注入階段在程序源代碼上注入收集覆蓋信息的輔助代碼;注入完畢后,再在源代碼上注入收集序列信息的輔助代碼;兩次注入完畢后,編譯器產(chǎn)生可執(zhí)行代碼,隨著測試用例的運(yùn)行,注入后的可執(zhí)行代碼被執(zhí)行,測試用例的執(zhí)行序列信息和覆蓋信息隨之被記錄到日志中,日志保存了測試用例程序元素被執(zhí)行的次數(shù)以及程序元素的執(zhí)行順序,最后產(chǎn)生可閱讀的報(bào)告。
全文摘要
一種回歸測試中基于分布的測試用例優(yōu)化方法,對(duì)于回歸測試中的測試用例集,依據(jù)執(zhí)行剖面在剖面空間中的分布對(duì)測試用例的執(zhí)行順序進(jìn)行優(yōu)先級(jí)排序,優(yōu)先級(jí)高的測試用例將被優(yōu)先執(zhí)行,使得執(zhí)行順序臨近的測試用例盡可能分散在剖面空間中,以盡早最大化錯(cuò)誤檢測能力,提高錯(cuò)誤檢測速率。本發(fā)明在不進(jìn)行任何測試用例約簡的前提下,對(duì)測試用例的執(zhí)行順序進(jìn)行排序,即測試用例的創(chuàng)建順序并不作為其執(zhí)行順序,而是使用基于分布的測試用例優(yōu)先級(jí)技術(shù)對(duì)執(zhí)行順序進(jìn)行排序。這樣一方面使得測試用例集合的錯(cuò)誤檢測能力不受影響,另一方面提高了錯(cuò)誤檢測的速率,使得程序員可以盡早地找到更多的錯(cuò)誤,節(jié)省了程序員尋找錯(cuò)誤的時(shí)間成本。
文檔編號(hào)G06F11/36GK102253889SQ20111022531
公開日2011年11月23日 申請日期2011年8月7日 優(yōu)先權(quán)日2011年8月7日
發(fā)明者吳堃, 房春榮, 趙志宏, 陳振宇 申請人:南京大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
石家庄市| 永年县| 安国市| 临沂市| 黔南| 和静县| 无极县| 文山县| 界首市| 威海市| 汕尾市| 习水县| 措勤县| 丰宁| 鄯善县| 平谷区| 黄龙县| 泗水县| 宁河县| 厦门市| 霍城县| 青阳县| 景德镇市| 清河县| 泗洪县| 姜堰市| 修水县| 新化县| 梅州市| 兰州市| 珠海市| 永泰县| 牡丹江市| 乌兰察布市| 利辛县| 水城县| 罗田县| 白水县| 逊克县| 孝昌县| 太谷县|