国产精品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ǔ)句頻度統(tǒng)計(jì)的程序錯(cuò)誤定位方法

      文檔序號(hào):6548498閱讀:498來(lái)源:國(guó)知局
      一種基于語(yǔ)句頻度統(tǒng)計(jì)的程序錯(cuò)誤定位方法
      【專利摘要】本發(fā)明公開(kāi)了一種基于語(yǔ)句頻度統(tǒng)計(jì)的程序錯(cuò)誤定位方法,該方法對(duì)已有的Tarantula錯(cuò)誤定位方法進(jìn)行了分析和改進(jìn),在原來(lái)的方法基礎(chǔ)上考慮了語(yǔ)句的具體執(zhí)行頻度,然后將語(yǔ)句頻度映射為0~1之間的數(shù),提出了基于語(yǔ)句頻度統(tǒng)計(jì)的錯(cuò)誤定位方法。故本發(fā)明充分考慮了語(yǔ)句的具體執(zhí)行頻度而不只是統(tǒng)計(jì)語(yǔ)句在每次執(zhí)行時(shí)的覆蓋情況,在效率和穩(wěn)定性方面要優(yōu)于Tarantula方法;只要某兩條語(yǔ)句對(duì)應(yīng)的測(cè)試用例語(yǔ)句頻度不同,那么它們的可疑度值就會(huì)不同,因此本發(fā)明定位更準(zhǔn)確,穩(wěn)定性也有較大提高,對(duì)于出現(xiàn)在循環(huán)語(yǔ)句或者循環(huán)體中的錯(cuò)誤具有較強(qiáng)的檢測(cè)能力。
      【專利說(shuō)明】一種基于語(yǔ)句頻度統(tǒng)計(jì)的程序錯(cuò)誤定位方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明屬于軟件程序錯(cuò)誤定位檢測(cè)【技術(shù)領(lǐng)域】,具體涉及一種基于語(yǔ)句頻度統(tǒng)計(jì)的程序錯(cuò)誤定位方法。
      【背景技術(shù)】
      [0002]隨著信息技術(shù)的高速發(fā)展,我們對(duì)軟件功能的要求不斷增加,軟件規(guī)模也隨之越變?cè)酱?,所有這些都導(dǎo)致了軟件的高出錯(cuò)率。因此,如何定位到軟件中錯(cuò)誤發(fā)生的位置就變得十分重要。
      [0003]錯(cuò)誤定位的目的就是尋找程序中出現(xiàn)的錯(cuò)誤。傳統(tǒng)的用于錯(cuò)誤定位的方法是調(diào)試。程序員先在程序中設(shè)置一個(gè)或多個(gè)斷點(diǎn),接著從斷點(diǎn)處開(kāi)始執(zhí)行失敗的測(cè)試用例,檢查執(zhí)行中程序的運(yùn)行狀態(tài),由此找到錯(cuò)誤的原因。這種方法存在幾個(gè)明顯的缺點(diǎn):首先斷點(diǎn)在程序中的位置難以確定;其次這種方法工作量非常龐大,所以學(xué)者們提出了許多自動(dòng)化的錯(cuò)誤定位方法。這些方法大致可以分為兩種:基于頻譜的錯(cuò)誤定位方法(SFL)和基于模型的診斷和調(diào)試方法(MBD)。由于軟件系統(tǒng)的復(fù)雜性,大多數(shù)基于模型的方法都被局限于小程序?;陬l譜的方法因?yàn)楠?dú)立于系統(tǒng)模型而且實(shí)現(xiàn)比較簡(jiǎn)單,所以得到了開(kāi)發(fā)人員的青睞。
      [0004]當(dāng)前關(guān)于錯(cuò)誤定位方法的研究有很多,其中Delta調(diào)試方法(文獻(xiàn):CleveH, Zeller A.Locating causes of program failures[C]//Proc of the27th internationalconference on Software Engineering.1EEE Computer Society, 2005:342-351.)可以簡(jiǎn)化測(cè)試用例,隔離錯(cuò)誤的原因;該方法通過(guò)一系列的狀態(tài)來(lái)描述程序的執(zhí)行,狀態(tài)包括變量和它們對(duì)應(yīng)的變量值。它通過(guò)不斷迭代運(yùn)行程序,交換成功運(yùn)行和失敗運(yùn)行的內(nèi)存狀態(tài)來(lái)定位錯(cuò)誤,因此代價(jià)和開(kāi)銷比較大。Cleve H定位方法(文獻(xiàn):Cleve H, Zeller A.Locatingcauses of program failures[C]//Proc of27th International Conference on SoftwareEngineering.St.Louis, MO, USA, 2005:342-351)則關(guān)注與錯(cuò)誤相關(guān)的那些變量及其對(duì)應(yīng)的變量值,同時(shí),他們記錄引起程序轉(zhuǎn)變發(fā)生的時(shí)間點(diǎn)來(lái)定位錯(cuò)誤。
      [0005]程序譜在程序執(zhí)行測(cè)試用例時(shí),收集并統(tǒng)計(jì)分析程序產(chǎn)生的頻譜信息,得到程序中每條語(yǔ)句在測(cè)試用例中的覆蓋信息,然后利用這些信息來(lái)計(jì)算每條可執(zhí)行語(yǔ)句的可疑度,最后將所有語(yǔ)句按照可疑度進(jìn)行從大到小排序以便排查出錯(cuò)誤的語(yǔ)句。Tarantula方法(文獻(xiàn):Jones J A, Harrold M J.Empirical evaluation of the tarantula automaticfault-localization technique [C]//Proc of the20th IEEE/ACM internationalConference on Automated software engineering, 2005, 273-282)是基于頻譜的錯(cuò)誤定位方法中最為經(jīng)典的一種。該方法的主要思想是一個(gè)語(yǔ)句被失敗測(cè)試用例執(zhí)行的次數(shù)多于被成功測(cè)試用例執(zhí)行的次數(shù),那么該語(yǔ)句更可能是錯(cuò)誤的。它使用的信息有:每條語(yǔ)句的覆蓋信息,測(cè)試用例執(zhí)行的結(jié)果以及程序的源代碼。它是一種基于程序譜的自動(dòng)化錯(cuò)誤定位方法。對(duì)于語(yǔ)句S,它的可疑度計(jì)算公式如下:
      【權(quán)利要求】
      1.一種基于語(yǔ)句頻度統(tǒng)計(jì)的程序錯(cuò)誤定位方法,包括如下步驟: (1)統(tǒng)計(jì)軟件程序中各條語(yǔ)句在每組測(cè)試用例下的語(yǔ)句頻度,得到對(duì)應(yīng)的語(yǔ)句頻度矩陣; (2)統(tǒng)計(jì)每組測(cè)試用例在軟件程序運(yùn)行下的執(zhí)行結(jié)果:正確或錯(cuò)誤; (3)根據(jù)所述的語(yǔ)句頻度矩陣,計(jì)算各條語(yǔ)句在每組測(cè)試用例下的帶權(quán)頻度,并利用函數(shù)f (X)將所述的帶權(quán)頻度映射到O~I之間; (4)利用映射于O~I之間的帶權(quán)頻度計(jì)算每條語(yǔ)句的錯(cuò)誤可疑度,進(jìn)而根據(jù)所述的錯(cuò)誤可疑度從高到低對(duì)軟件程序中的語(yǔ)句進(jìn)行排序并逐條進(jìn)行錯(cuò)誤排查。
      2.根據(jù)權(quán)利要求1所述的程序錯(cuò)誤定位方法,其特征在于:所述的語(yǔ)句頻度的定義為:以某一測(cè)試用例作為軟件程序的輸入,在軟件程序?qū)τ谠摐y(cè)試用例的整個(gè)運(yùn)行過(guò)程中某一條語(yǔ)句的執(zhí)行次數(shù)即為該語(yǔ)句在該測(cè)試用例下的語(yǔ)句頻度。
      3.根據(jù)權(quán)利要求1所述的程序錯(cuò)誤定位方法,其特征在于:所述的語(yǔ)句頻度矩陣的維度為mXn,m為軟件程序中的語(yǔ)句總數(shù),η為測(cè)試用例總數(shù);該矩陣中第i行第j列的元素值為第i條語(yǔ)句在第j組測(cè)試用例下的語(yǔ)句頻度,i和j均為自然數(shù)且I < i < m,I < j < η。
      4.根據(jù)權(quán)利要求1所述的程序錯(cuò)誤定位方法,其特征在于:所述的步驟(3)中根據(jù)以下算式計(jì)算各條語(yǔ)句在每組測(cè)試用例下的帶權(quán)頻度:
      Uij = ω ijSiJ 其中為軟件程序中第i條語(yǔ)句在第j組測(cè)試用例下的帶權(quán)頻度,為語(yǔ)句頻度矩陣中第i行第j列的元素值即軟件程序中第i條語(yǔ)句在第j組測(cè)試用例下的語(yǔ)句頻度,Wij為Su對(duì)應(yīng)的權(quán)重系數(shù)。
      5.根據(jù)權(quán)利要求1所述的程序錯(cuò)誤定位方法,其特征在于:所述的函數(shù)f(x)滿足以下兩個(gè)條件: a.f(x)在(O,+-)單調(diào)遞增,且 f (O) =0;
      b.X e (O, + °° ), f (x) e (O, I)。
      6.根據(jù)權(quán)利要求1或5所述的程序錯(cuò)誤定位方法,其特征在于:所述的函數(shù)f(x)采用雙曲正切函數(shù),其表達(dá)式如下:
      7.根據(jù)權(quán)利要求1所述的程序錯(cuò)誤定位方法,其特征在于:所述的步驟(4)中根據(jù)以下算式計(jì)算每條語(yǔ)句的錯(cuò)誤可疑度:
      【文檔編號(hào)】G06F11/36GK103995780SQ201410241885
      【公開(kāi)日】2014年8月20日 申請(qǐng)日期:2014年5月30日 優(yōu)先權(quán)日:2014年5月30日
      【發(fā)明者】舒挺, 葉甜甜, 夏勁松 申請(qǐng)人:浙江理工大學(xué)
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1