国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      頻譜信息去冗優(yōu)化的軟件缺陷定位方法

      文檔序號(hào):6546831閱讀:222來(lái)源:國(guó)知局
      頻譜信息去冗優(yōu)化的軟件缺陷定位方法
      【專利摘要】本發(fā)明提供一種頻譜信息去冗優(yōu)化的軟件缺陷定位方法,通過(guò)運(yùn)行測(cè)試用例,收集程序運(yùn)行結(jié)果信息即頻譜信息;對(duì)所得頻譜信息進(jìn)行去冗優(yōu)化處理,利用頻譜信息計(jì)算可疑度;根據(jù)可疑度值的大小對(duì)語(yǔ)句進(jìn)行降序排列,根據(jù)已排序的語(yǔ)句序列逐個(gè)進(jìn)行排錯(cuò),直至找到引發(fā)程序異常的語(yǔ)句。本發(fā)明在基于頻譜的錯(cuò)誤定位方法中,在利用覆蓋信息表進(jìn)行可疑度計(jì)算之前,對(duì)頻譜信息進(jìn)行去冗余處理,利用有效的頻譜信息進(jìn)行可疑度計(jì)算,提高根據(jù)可疑度進(jìn)行缺陷定位的可靠性,進(jìn)而提高軟件缺陷定位的效率。
      【專利說(shuō)明】頻譜信息去冗優(yōu)化的軟件缺陷定位方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及一種頻譜信息去冗優(yōu)化的軟件缺陷定位方法,屬于軟件測(cè)試領(lǐng)域。
      【背景技術(shù)】
      [0002]多年來(lái),人們?cè)谌毕荻ㄎ坏难芯恐刑岢隽嗽S多方法,主要通過(guò)程序的靜態(tài)信息和動(dòng)態(tài)信息來(lái)定位程序錯(cuò)誤。但獲得靜態(tài)信息的開(kāi)銷較大,對(duì)于大型軟件,全面的靜態(tài)分析甚至是不現(xiàn)實(shí)的,而動(dòng)態(tài)信息的收集只要是運(yùn)行測(cè)試用例,并不會(huì)給測(cè)試帶來(lái)過(guò)多的開(kāi)銷。同時(shí),由于動(dòng)態(tài)信息包含了程序運(yùn)行時(shí)的信息,與利用靜態(tài)信息的方法相比,可以提供更準(zhǔn)確的結(jié)果。
      [0003]利用程序頻譜信息進(jìn)行缺陷定位,是目前比較切實(shí)有效的軟件缺陷定位方法,程序頻譜是一種表示程序運(yùn)行時(shí)覆蓋情況的信息,反應(yīng)程序運(yùn)行某一特征的代碼剖面信息。程序頻譜與程序行為之間存在著一定的關(guān)系,通過(guò)研究運(yùn)行失敗測(cè)試用例得到的頻譜信息與運(yùn)行成功測(cè)試用例得到的頻譜信息之間的差異性可為軟件缺陷定位提供幫助。對(duì)于程序的單條語(yǔ)句,被失效測(cè)試用例執(zhí)行的越多,成功的測(cè)試用例執(zhí)行的越少,語(yǔ)句含有錯(cuò)誤的可能性就越大,發(fā)生錯(cuò)誤的概率就越大。利用這種特征對(duì)程序語(yǔ)句被成功測(cè)試用例以及失敗測(cè)試用例的覆蓋情況進(jìn)行統(tǒng)計(jì)分析,找出含有缺陷的程序語(yǔ)句。
      [0004]對(duì)基于程序頻譜的程序定位方法,可以從多角度采取優(yōu)化策略提高軟件缺陷定位的效率:第一,提高選取測(cè)試用例集的有效性;第二,盡量減少收集程序頻譜的開(kāi)銷;第三,提高可以度算法的精確度性。在以往的優(yōu)化策略的基礎(chǔ)上,如何提出一種新的優(yōu)化策略,對(duì)覆蓋信息表進(jìn)行去冗優(yōu)化,提高依賴程序語(yǔ)句可疑度進(jìn)行缺陷定位的可靠性,從而達(dá)到提高軟件缺陷定位的效率是在基于程序頻譜的程序定位方法的優(yōu)化過(guò)程中應(yīng)當(dāng)予以考慮并解決的問(wèn)題。

      【發(fā)明內(nèi)容】

      [0005]本發(fā)明對(duì)已有缺陷定位方法采取優(yōu)化策略產(chǎn)生一種新的錯(cuò)誤定位方法,使缺陷定位的效率更高。通過(guò)運(yùn)行測(cè)試用例,收集程序運(yùn)行結(jié)果信息即頻譜信息,對(duì)頻譜信息進(jìn)行去冗優(yōu)化處理,利用頻譜信息進(jìn)行可疑度計(jì)算,根據(jù)可疑度值的大小對(duì)語(yǔ)句進(jìn)行降序排列,最后根據(jù)已排序的語(yǔ)句序列逐個(gè)進(jìn)行排錯(cuò),直到找到引發(fā)程序異常的語(yǔ)句。
      [0006]本發(fā)明的技術(shù)解決方案是:
      [0007]一種頻譜信息去冗優(yōu)化的軟件缺陷定位方法,
      [0008]通過(guò)運(yùn)行測(cè)試用例,收集程序運(yùn)行結(jié)果信息即頻譜信息;
      [0009]對(duì)所得頻譜信息進(jìn)行去冗優(yōu)化處理,利用頻譜信息計(jì)算可疑度;
      [0010]根據(jù)可疑度值的大小對(duì)語(yǔ)句進(jìn)行降序排列,根據(jù)已排序的語(yǔ)句序列逐個(gè)進(jìn)行排錯(cuò),直至找到弓I發(fā)程序異常的語(yǔ)句。
      [0011]優(yōu)選地,S1、獲取可執(zhí)行的待測(cè)程序以及測(cè)試用例集;
      [0012]S2、執(zhí)行測(cè)試用例,獲取程序執(zhí)行的動(dòng)態(tài)信息;[0013]S3、收集所有測(cè)試用例的運(yùn)行情況,并進(jìn)行去冗余處理,生成無(wú)冗余覆蓋信息表;
      [0014]S4、根據(jù)覆蓋信息表進(jìn)行語(yǔ)句可疑度計(jì)算;
      [0015]S5、根據(jù)可疑度值,對(duì)程序語(yǔ)句進(jìn)行降序排列,根據(jù)排序的語(yǔ)句序列進(jìn)行缺陷定位。
      [0016]優(yōu)選地,步驟SI具體為:
      [0017]S11、獲取待測(cè)的可執(zhí)行程序P ;
      [0018]S12、將程序P的每條語(yǔ)句進(jìn)行編號(hào),按序編為S1, S2, S3,…,S」,...,Sn,將編號(hào)集合記為S,其中S」表示程序P的第j條語(yǔ)句,η為程序語(yǔ)句的總條數(shù);
      [0019]S13、獲取測(cè)試用例集,記為L(zhǎng)istsuites ;
      [0020]S14、對(duì)Listsuites中的測(cè)試用例進(jìn)行編號(hào),按序編為
      [0021]test” test2, test3,...,test”..., testm,其中 testj 表不測(cè)試用例集 Listsuites中的第i條測(cè)試用例,m為測(cè)試用例的總條數(shù)。
      [0022]優(yōu)選地,步驟S2具體為:
      [0023]S21、根據(jù)測(cè)試用例的 編號(hào)按序從Listsuites中讀取測(cè)試用例testi ;
      [0024]S22、根據(jù)測(cè)試用例的輸入以及執(zhí)行條件執(zhí)行讀取的測(cè)試用例test ;
      [0025]S23、在測(cè)試用例執(zhí)行過(guò)程中對(duì)覆蓋語(yǔ)句以及未覆蓋的語(yǔ)句用“O”和“I”進(jìn)行區(qū)分標(biāo)記,“O”表示語(yǔ)句沒(méi)有被當(dāng)前測(cè)試用例執(zhí)行,“ I ”表示語(yǔ)句被當(dāng)前測(cè)試用例執(zhí)行;
      [0026]S24、判定測(cè)試用例運(yùn)行結(jié)果;
      [0027]S25、收集測(cè)試用例test的運(yùn)行情況,記為
      [0028]Fttesti] (T(S1), T(S2), T (S3)...T (Sj)...T (Sn),R},,即頻譜信息,其中,T(Sj)表示語(yǔ)句S」被當(dāng)前測(cè)試用例覆蓋的情況,R表示當(dāng)前測(cè)試用例的運(yùn)行通過(guò)情況;
      [0029]S26、判斷測(cè)試用例集中的所有的測(cè)試用例是否均被運(yùn)行,如果“是”,轉(zhuǎn)步驟S27,否則轉(zhuǎn)步驟S21 ;
      [0030]S27、收集所有測(cè)試用例的執(zhí)行情況。
      [0031]優(yōu)選地,步驟S24具體為:
      [0032]S241、獲取當(dāng)前測(cè)試用例test在程序中的實(shí)際運(yùn)行結(jié)果;
      [0033]S242、獲取當(dāng)前測(cè)試用例test的預(yù)期運(yùn)行結(jié)果;
      [0034]S243、判斷實(shí)際運(yùn)行結(jié)果與預(yù)期結(jié)果是否相同,如果“是”,轉(zhuǎn)步驟S244,否則轉(zhuǎn)步驟S245 ;
      [0035]S244、運(yùn)行結(jié)果記為0,記入R中,R表示測(cè)試用例運(yùn)行結(jié)果情況;
      [0036]S245、運(yùn)行結(jié)果記為1,記入R中,R表示測(cè)試用例運(yùn)行結(jié)果情況。
      [0037]優(yōu)選地,步驟S3具體為:
      [0038]S31、首個(gè)測(cè)試用例默認(rèn)處理;
      [0039]S32、將 FF[testJ (Test1, T(S1), T (S2), T (S3)...T (Sj)...T (Sn), R}記入覆蓋信息表G,G由
      [0040]FF [testj (Test1,T (S1),T (S2),T (S3)...T (Sj)...T (Sn),R}累積生成;
      [0041]S33、獲取下一條測(cè)試用例的執(zhí)行情況
      [0042]F [testj {T (S1),T (S2),T (S3)...T (Sj)...T (Sn),R};
      [0043]S34、判定 Fbesti] {T (S1),T (S2),T (S3)…T (Sj)…T (Sn),R}是否與覆蓋信息表 G已有行F[test]相同,如果“是”,轉(zhuǎn)步驟S35,否則轉(zhuǎn)步驟S37 ;
      [0044]S35、判定測(cè)試tesh為非有效測(cè)試用例;
      [0045]S36、刪除 FEtestJIT(S1),T(S2) ,T(S3)...T(Sj)...T(Sn),R};
      [0046]S37、判定測(cè)試用例tesh為有效測(cè)試用例;
      [0047]S38、對(duì)有效測(cè)試用例test進(jìn)行編號(hào),編為T(mén)est1,表示第I個(gè)有效測(cè)試用例;
      [0048]S39、拓展testi運(yùn)行結(jié)果為
      [0049]FF [testj (Test1, F [testj {T (S1),T (S2),T (S3)...T (Sj)...T (Sn),R}},
      [0050]即FF [testj (Test1, T (S1),T (S2),T (S3)...T (Sj)...T (Sn),R};
      [0051]S310、將 FFttesti] (Test1, T (S1),T (S2),T (S3)...T (Sj)...T (Sn),R}記入覆蓋信息表G中;
      [0052]S311、判斷Listsuites中所有測(cè)試用例是否都被執(zhí)行,如果“是”,轉(zhuǎn)步驟S312,否則轉(zhuǎn)步驟S33 ;
      [0053]S312、獲得最終覆蓋信息表G。
      [0054]優(yōu)選地,步驟S31具體為:
      [0055]默認(rèn)第一個(gè)測(cè)試用例test:為有效測(cè)試用例;
      [0056]對(duì)第一個(gè)有效測(cè)試用例test:進(jìn)行編號(hào),記為T(mén)est1,表不第一個(gè)有效測(cè)試用例;
      [0057]拓展有效測(cè)試用例的執(zhí)行情況為
      [0058]FF [testj (Test1,F(xiàn) [testj {T (S1),T (S2),T (S3)...T (Sj)...T (Sn),R}},
      [0059]即為FF [testj (Test1,T (S1),T (S2),T (S3)...T (Sj)...T (Sn),R}。
      [0060]優(yōu)選地,步驟S4具體為:
      [0061]S41、針對(duì)S」語(yǔ)句,收集執(zhí)行完測(cè)試用例集Listsuites所提供的<arf,

      aep, anf,anp>,其中,
      【權(quán)利要求】
      1.一種頻譜信息去冗優(yōu)化的軟件缺陷定位方法,其特征在于: 通過(guò)運(yùn)行測(cè)試用例,收集程序運(yùn)行結(jié)果信息即頻譜信息; 對(duì)所得頻譜信息進(jìn)行去冗優(yōu)化處理,利用頻譜信息計(jì)算可疑度; 根據(jù)可疑度值的大小對(duì)語(yǔ)句進(jìn)行降序排列,根據(jù)已排序的語(yǔ)句序列逐個(gè)進(jìn)行排錯(cuò),直至找到引發(fā)程序異常的語(yǔ)句。
      2.如權(quán)利要求1所述的頻譜信息去冗優(yōu)化的軟件缺陷定位方法,其特征在于: s1、獲取可執(zhí)行的待測(cè)程序以及測(cè)試用例集; s2、執(zhí)行測(cè)試用例,獲取程序執(zhí)行的動(dòng)態(tài)信息; s3、收集所有測(cè)試用例的運(yùn)行情況,并進(jìn)行去冗余處理,生成無(wú)冗余覆蓋信息表; s4、根據(jù)覆蓋信息表進(jìn)行語(yǔ)句可疑度計(jì)算; s5、根據(jù)可疑度值,對(duì)程序語(yǔ)句進(jìn)行降序排列,定位缺陷語(yǔ)句。
      3.如權(quán)利要求1所述的頻譜信息去冗優(yōu)化的軟件缺陷定位方法,其特征在于,步驟SI具體為: s11、獲取待測(cè)的可執(zhí)行程序P; s12、將程序P的每條語(yǔ)句進(jìn)行編號(hào),按序編為S1,S2, S3,..., Sj,..., Sn,將編號(hào)集合記為S,其中S」表示程序P的第j條語(yǔ)句,η為程序語(yǔ)句的總條數(shù); s13、獲取測(cè)試用例集,記為L(zhǎng)istsuites; SHjfListsuites中的測(cè)試用例進(jìn)行編號(hào),按序編為 test^ test2, test3, , test^ , testm,其中 testi 表不測(cè)試用例集 Listsuites 中的第i條測(cè)試用例,m為測(cè)試用例的總條數(shù)。
      4.如權(quán)利要求1所述的頻譜信息去冗優(yōu)化的軟件缺陷定位方法,其特征在于,步驟S2具體為: s21、根據(jù)測(cè)試用例的編號(hào)按序從Listsuites中讀取測(cè)試用例tesh; s22、根據(jù)測(cè)試用例的輸入以及執(zhí)行條件執(zhí)行讀取的測(cè)試用例test; s23、在測(cè)試用例執(zhí)行過(guò)程中對(duì)覆蓋語(yǔ)句以及未覆蓋的語(yǔ)句用“O”和“I”進(jìn)行區(qū)分標(biāo)記,“O”表示語(yǔ)句沒(méi)有被當(dāng)前測(cè)試用例執(zhí)行,“ I ”表示語(yǔ)句被當(dāng)前測(cè)試用例執(zhí)行; s24、判定測(cè)試用例運(yùn)行結(jié)果; s35、收集測(cè)試用例tesh的運(yùn)行情況,記為 Fttesti] {T (S1),T (S2),T (S3)…T (Sj)…T (Sn),R},即頻譜信息,其中,T (Sj)表示語(yǔ)句Sj被當(dāng)前測(cè)試用例覆蓋的情況,R表示當(dāng)前測(cè)試用例的運(yùn)行通過(guò)情況; s26、判斷測(cè)試用例集中的所有的測(cè)試用例是否均被運(yùn)行,如果“是”,轉(zhuǎn)步驟S27,否則轉(zhuǎn)步驟S21 ; s27、收集所有測(cè)試用例的執(zhí)行情況。
      5.如權(quán)利要求4所述的頻譜信息去冗優(yōu)化的軟件缺陷定位方法,其特征在于,步驟S24具體為: s241、獲取當(dāng)前測(cè)試用例test在程序中的實(shí)際運(yùn)行結(jié)果; s242、獲取當(dāng)前測(cè)試用例test的預(yù)期運(yùn)行結(jié)果; s243、判斷實(shí)際運(yùn)行結(jié)果與預(yù)期結(jié)果是否相同,如果“是”,轉(zhuǎn)步驟S244,否則轉(zhuǎn)步驟S245 ;S244、運(yùn)行結(jié)果記為O,記入R中,R表示測(cè)試用例運(yùn)行結(jié)果情況; S245、運(yùn)行結(jié)果記為1,記入R中,R表示測(cè)試用例運(yùn)行結(jié)果情況。
      6.如權(quán)利要求1所述的頻譜信息去冗優(yōu)化的軟件缺陷定位方法,其特征在于,步驟S3具體為: S31、首個(gè)測(cè)試用例默認(rèn)處理;
      S32、將FF [testj (Test1, T (S1),T (S2),T (S3)...T (Sj)...T (Sn),R}記入覆蓋信息表 G,G 由 FF [testj ITest1,T (S1),T (S2),T (S3)...T (Sj)...T (Sn),R}累積生成; S33、獲取下一條測(cè)試用例的執(zhí)行情況
      F [testj {T (S1),T (S2),T (S3)...T (Sj)...T (Sn),R};
      S34、判定F [testj {T (S1),T (S2),T (S3)...T (Sj)...T (Sn),R}是否與覆蓋信息表 G 已有行F[test]相同,如果“是”,轉(zhuǎn)步驟S35,否則轉(zhuǎn)步驟S37 ; S35、判定測(cè)試test為非有效測(cè)試用例;
      S36、刪除Fttesti] {T (S1),T (S2),T (S3)...T (Sj)...T (Sn),R}; S37、判定測(cè)試用例test為有效測(cè)試用例; S38、對(duì)有效測(cè)試用例test進(jìn)行編號(hào),編為T(mén)est1,表示第I個(gè)有效測(cè)試用例; S39、拓展test運(yùn)行結(jié)果為
      FF[testj (Test1, F[testj {T (S1),T (S2),T (S3)...T (Sj)...T (Sn),R}},
      即 FFEtesti] (Test1, T(S1), T(S2), T (S3)...T (Sj)...T (Sn), R};
      S310、將FFttesti] ITest1, T(S1),T(S2),T (S3)...T (Sj)...T (Sn),R}記入覆蓋信息表G中; S311、判斷Listsuites中所有測(cè)試用例是否都被執(zhí)行,如果“是”,轉(zhuǎn)步驟S312,否則轉(zhuǎn)步驟S33 ; S312、獲得最終覆蓋信息表G。
      7.如權(quán)利要求6所述的頻譜信息去冗優(yōu)化的軟件缺陷定位方法,其特征在于,步驟S31具體為: 默認(rèn)第一個(gè)測(cè)試用例test為有效測(cè)試用例; 對(duì)第一個(gè)有效測(cè)試用例test:進(jìn)行編號(hào),記為T(mén)est1,表不第一個(gè)有效測(cè)試用例; 拓展有效測(cè)試用例的執(zhí)行情況為
      FF[testJ ITest1, Fttest1] (T(S1), T (S2),T (S3)...T(Sj)...T (Sn),R}},
      即為 FF[testj ITest1,T (S1),T (S2),T (S3)...T (Sj)...T (Sn),R}。
      8.如權(quán)利要求1-7任一項(xiàng)所述的頻譜信息去冗優(yōu)化的軟件缺陷定位方法,其特征在于,步驟S4具體為: S41、針對(duì)&語(yǔ)句,收集執(zhí)行完測(cè)試用例集Listsuites所提供的<aef,aep, anf,anp>,其中,
      9.如權(quán)利要求1-7任一項(xiàng)所述的頻譜信息去冗優(yōu)化的軟件缺陷定位方法,其特征在于,步驟S5具體為: S51、語(yǔ)句排序;
      獲取語(yǔ)句編號(hào)序列S:S1; S2,S3...Sj...Sn; 獲取語(yǔ)句序列S中相應(yīng)語(yǔ)句的可疑度值序列z:z1; z2,z3...Zj...Zn,其中τ、表示第j條語(yǔ)句的可疑度值; 根據(jù)Z中可疑度值進(jìn)行降序排列; 根據(jù)已排序的Z序列,對(duì)S進(jìn)行排序; S52、錯(cuò)誤定位。
      10.如權(quán)利要求9所述的頻譜信息去冗優(yōu)化的軟件缺陷定位方法,其特征在于,步驟S52具體為: S521、獲取重新排序的S序列; S522、按序獲取S中的編號(hào)Sj;S523、查看程序P的語(yǔ)句S」是否含有缺陷,如果“是”,轉(zhuǎn)步驟S524,否則轉(zhuǎn)步驟S522; S524、確定程序語(yǔ)句S」為缺陷語(yǔ)句,缺陷定位成功。
      【文檔編號(hào)】G06F11/36GK104008051SQ201410210134
      【公開(kāi)日】2014年8月27日 申請(qǐng)日期:2014年5月16日 優(yōu)先權(quán)日:2014年5月16日
      【發(fā)明者】張衛(wèi)豐, 張曉紅, 王云, 王子元, 周?chē)?guó)強(qiáng), 張迎周 申請(qǐng)人:南京郵電大學(xué)
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1