午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

靜態(tài)檢測方法和靜態(tài)檢測裝置的制造方法

文檔序號(hào):10512091閱讀:469來源:國知局
靜態(tài)檢測方法和靜態(tài)檢測裝置的制造方法
【專利摘要】本發(fā)明公開了一種靜態(tài)檢測方法和靜態(tài)檢測裝置。該方法包括:判斷源代碼中的程序語句為不可達(dá)語句或者可達(dá)語句;若判斷出所述程序語句為不可達(dá)語句時(shí),跳過所述不可達(dá)語句;若判斷出所述程序語句為可達(dá)語句時(shí),對(duì)所述可達(dá)語句進(jìn)行缺陷計(jì)算。本發(fā)明提供的靜態(tài)檢測方法和靜態(tài)檢測裝置中,若判斷出程序語句為不可達(dá)語句時(shí)跳過該不可達(dá)語句,若判斷出程序語句為可達(dá)語句時(shí)對(duì)該可達(dá)語句進(jìn)行缺陷計(jì)算,本發(fā)明的方案可實(shí)現(xiàn)從源代碼的程序語句識(shí)別出不可達(dá)語句,并在缺陷計(jì)算過程中跳過該不可達(dá)語句,極大的減少了后續(xù)進(jìn)行缺陷確認(rèn)時(shí)人工確認(rèn)的工作量,從而提高了靜態(tài)檢測的效率。
【專利說明】
靜態(tài)檢測方法和靜態(tài)檢測裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,特別涉及一種靜態(tài)檢測方法和靜態(tài)檢測裝置。
【背景技術(shù)】
[0002]軟件測試的主要目的在于發(fā)現(xiàn)軟件中存在的錯(cuò)誤(Bug),對(duì)于如何處理測試中發(fā)現(xiàn)的錯(cuò)誤,將直接影響到測試的效果。只有正確、迅速、準(zhǔn)確地處理這些錯(cuò)誤,才能消除軟件的錯(cuò)誤,保證要發(fā)布的軟件符合設(shè)計(jì)的目標(biāo)。近年來,面向故障的靜態(tài)檢測技術(shù)得到快速的發(fā)展,大量的軟件測試工具被研制出來,并且在對(duì)一些大型商業(yè)軟件和開源軟件的測試中發(fā)現(xiàn)了大量的以前測試沒有發(fā)現(xiàn)的軟件故障和安全隱患。靜態(tài)檢測能夠從源代碼級(jí)別檢測出軟件中可能隱含的缺陷,并將這些缺陷在軟件實(shí)際部署之前暴漏出來,減少后期缺陷修復(fù)的成本,提高軟件的質(zhì)量和可信性。
[0003]隨著軟件規(guī)模越來越大,軟件中的代碼量也隨之增加。靜態(tài)檢測一般包括靜態(tài)分析和人工確認(rèn)兩個(gè)階段。靜態(tài)分析過程中會(huì)檢測出大量缺陷,而后這些缺陷需要經(jīng)過人工確認(rèn)才能得出去除。
[0004]但是,現(xiàn)有技術(shù)存在如下技術(shù)問題:軟件中存在不可達(dá)路徑,不可達(dá)路徑上的代碼在程序操作過程中永遠(yuǎn)不可能被執(zhí)行到。靜態(tài)檢測過程中會(huì)檢測出很多不可達(dá)路徑上的缺陷,導(dǎo)致大量誤報(bào)缺陷的產(chǎn)生。而靜態(tài)檢測過程中檢測出的缺陷均需要通過人工方式逐一進(jìn)行確認(rèn),確認(rèn)是否是誤報(bào),這會(huì)耗費(fèi)大量的人工確認(rèn)的工作量,從而降低了靜態(tài)檢測的效率。

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

[0005]本發(fā)明提供一種靜態(tài)檢測方法和靜態(tài)檢測裝置,用于提高靜態(tài)檢測的效率。
[0006]為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種靜態(tài)檢測方法,包括:
[0007]判斷源代碼中的程序語句為不可達(dá)語句或者可達(dá)語句;
[0008]若判斷出所述程序語句為不可達(dá)語句時(shí),跳過所述不可達(dá)語句;
[0009]若判斷出所述程序語句為可達(dá)語句時(shí),對(duì)所述可達(dá)語句進(jìn)行缺陷計(jì)算。
[0010]可選地,所述判斷源代碼中的程序語句為不可達(dá)語句或者可達(dá)語句包括:
[0011]判斷源代碼中的程序語句是否設(shè)置有不可達(dá)標(biāo)記,所述不可達(dá)標(biāo)記用于標(biāo)示不可達(dá)語句;
[0012]所述判斷出所述程序語句為不可達(dá)語句包括:判斷出源代碼中的程序語句設(shè)置有不可達(dá)標(biāo)記;
[0013]所述判斷出所述程序語句為可達(dá)語句包括:判斷出源代碼中的程序語句未設(shè)置不可達(dá)標(biāo)記。
[0014]可選地,所述判斷源代碼中的程序語句是否設(shè)置有不可達(dá)標(biāo)記之前還包括:
[0015]從源代碼中識(shí)別出不可達(dá)語句;
[0016]為所述不可達(dá)語句設(shè)置不可達(dá)標(biāo)記。
[0017]可選地,所述從源代碼中識(shí)別出不可達(dá)語句包括:
[0018]將所述源代碼轉(zhuǎn)化成控制流圖,所述控制流圖包括多個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)對(duì)應(yīng)源代碼中的一條程序語句;
[0019]遍歷控制流圖中的每個(gè)節(jié)點(diǎn),并判斷每個(gè)節(jié)點(diǎn)是否滿足該節(jié)點(diǎn)對(duì)應(yīng)的執(zhí)行條件;
[0020]若判斷出該節(jié)點(diǎn)滿足該節(jié)點(diǎn)對(duì)應(yīng)的執(zhí)行條件,確定出該節(jié)點(diǎn)對(duì)應(yīng)的程序語句為可達(dá)語句;
[0021]若判斷出該節(jié)點(diǎn)不滿足該節(jié)點(diǎn)對(duì)應(yīng)的執(zhí)行條件,確定出該節(jié)點(diǎn)對(duì)應(yīng)的程序語句為不可達(dá)語句。
[0022]為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種靜態(tài)檢測裝置,包括:
[0023]判斷模塊,用于判斷源代碼中的程序語句為不可達(dá)語句或者可達(dá)語句;
[0024]計(jì)算模塊,用于若所述判斷模塊判斷出所述程序語句為不可達(dá)語句時(shí),跳過所述不可達(dá)語句;若所述判斷模塊判斷出所述程序語句為可達(dá)語句時(shí),對(duì)所述可達(dá)語句進(jìn)行缺陷計(jì)算。
[0025]可選地,所述判斷模塊具體用于判斷源代碼中的程序語句是否設(shè)置有不可達(dá)標(biāo)記,所述不可達(dá)標(biāo)記用于標(biāo)示不可達(dá)語句,判斷出源代碼中的程序語句設(shè)置有不可達(dá)標(biāo)記或者判斷出源代碼中的程序語句未設(shè)置不可達(dá)標(biāo)記。
[0026]可選地,還包括:
[0027]識(shí)別模塊,用于從源代碼中識(shí)別出不可達(dá)語句;
[0028]設(shè)置模塊,用于為所述不可達(dá)語句設(shè)置不可達(dá)標(biāo)記。
[0029]可選地,所述識(shí)別模塊包括:
[0030]轉(zhuǎn)換子模塊,用于將所述源代碼轉(zhuǎn)化成控制流圖,所述控制流圖包括多個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)對(duì)應(yīng)源代碼中的一條程序語句;
[0031]判斷子模塊,用于遍歷所述控制流圖中的每個(gè)節(jié)點(diǎn),并判斷每個(gè)節(jié)點(diǎn)是否滿足該節(jié)點(diǎn)對(duì)應(yīng)的執(zhí)行條件;
[0032]確定子模塊,用于若所述判斷子模塊判斷出該節(jié)點(diǎn)滿足該節(jié)點(diǎn)對(duì)應(yīng)的執(zhí)行條件,確定出該節(jié)點(diǎn)對(duì)應(yīng)的程序語句為可達(dá)語句;若所述判斷子模塊判斷出該節(jié)點(diǎn)不滿足該節(jié)點(diǎn)對(duì)應(yīng)的執(zhí)行條件,確定出該節(jié)點(diǎn)對(duì)應(yīng)的程序語句為不可達(dá)語句。
[0033]本發(fā)明具有以下有益效果:
[0034]本發(fā)明提供的靜態(tài)檢測方法和靜態(tài)檢測裝置中,若判斷出程序語句為不可達(dá)語句時(shí)跳過該不可達(dá)語句,若判斷出程序語句為可達(dá)語句時(shí)對(duì)該可達(dá)語句進(jìn)行缺陷計(jì)算,本發(fā)明的方案可實(shí)現(xiàn)從源代碼的程序語句識(shí)別出不可達(dá)語句,并在缺陷計(jì)算過程中跳過該不可達(dá)語句,極大的減少了后續(xù)進(jìn)行缺陷確認(rèn)時(shí)人工確認(rèn)的工作量,從而提高了靜態(tài)檢測的效率。
【附圖說明】
[0035]圖1為本發(fā)明實(shí)施例一提供的一種靜態(tài)檢測方法的流程圖;
[0036]圖2為本發(fā)明實(shí)施例二提供的一種靜態(tài)檢測方法的流程圖;
[0037]圖3為本發(fā)明實(shí)施例三提供的一種靜態(tài)檢測裝置的結(jié)構(gòu)示意圖;
[0038]圖4為本發(fā)明實(shí)施例四提供的一種靜態(tài)檢測裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0039]為使本領(lǐng)域的技術(shù)人員更好地理解本發(fā)明的技術(shù)方案,下面結(jié)合附圖對(duì)本發(fā)明提供靜態(tài)檢測方法和靜態(tài)檢測裝置的進(jìn)行詳細(xì)描述。
[0040]圖1為本發(fā)明實(shí)施例一提供的一種靜態(tài)檢測方法的流程圖,如圖1所示,該方法包括:
[0041]步驟101、判斷源代碼中的程序語句為不可達(dá)語句或者可達(dá)語句,若是判斷出所述程序語句為不可達(dá)語句時(shí)則執(zhí)行步驟102,若判斷出所述程序語句為可達(dá)語句時(shí)則執(zhí)行步驟 103。
[0042]本實(shí)施例中,可掃描源代碼中的程序語句,在掃描源代碼中的程序語句的過程中判斷源代碼中的程序語句為不可達(dá)語句或者可達(dá)語句。
[0043]步驟102、跳過不可達(dá)語句。
[0044]本步驟中通過跳過該不可達(dá)語句,實(shí)現(xiàn)了無需對(duì)該不可達(dá)語句進(jìn)行缺陷計(jì)算。
[0045]步驟103、對(duì)可達(dá)語句進(jìn)行缺陷計(jì)算。
[0046]本實(shí)施例提供的靜態(tài)檢測方法中,若判斷出程序語句為不可達(dá)語句時(shí)跳過該不可達(dá)語句,若判斷出程序語句為可達(dá)語句時(shí)對(duì)該可達(dá)語句進(jìn)行缺陷計(jì)算,本實(shí)施例的方案可實(shí)現(xiàn)從源代碼的程序語句識(shí)別出不可達(dá)語句,并在缺陷計(jì)算過程中跳過該不可達(dá)語句,極大的減少了后續(xù)進(jìn)行缺陷確認(rèn)時(shí)人工確認(rèn)的工作量,從而提高了靜態(tài)檢測的效率。本實(shí)施例中,識(shí)別出不可達(dá)語句的過程是自動(dòng)完成的,無需人工完成,從而提高了識(shí)別效率。本實(shí)施例的方案可實(shí)現(xiàn)從源代碼的程序語句識(shí)別出不可達(dá)語句,降低了缺陷誤報(bào)率,從而提高了檢測準(zhǔn)確度。
[0047]圖2為本發(fā)明實(shí)施例二提供的一種靜態(tài)檢測方法的流程圖,如圖2所示,該方法包括:
[0048]步驟201、從源代碼中識(shí)別出不可達(dá)語句。
[0049]本步驟具體可包括:
[0050]步驟2011、將所述源代碼轉(zhuǎn)化成控制流圖,所述控制流圖包括多個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)對(duì)應(yīng)源代碼中的一條程序語句。
[0051 ]步驟2012、獲取每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的執(zhí)行條件。
[0052]本實(shí)施例中,節(jié)點(diǎn)對(duì)應(yīng)的執(zhí)行條件為從控制流圖的入口節(jié)點(diǎn)到該節(jié)點(diǎn)的所有需要滿足的執(zhí)行條件的集合。具體地,可獲取從入口節(jié)點(diǎn)到該節(jié)點(diǎn)的所有需要滿足的執(zhí)行條件,并將從入口節(jié)點(diǎn)到該節(jié)點(diǎn)的所有需要滿足的執(zhí)行條件集合起來以形成節(jié)點(diǎn)對(duì)應(yīng)的執(zhí)行條件。優(yōu)選地,可通過區(qū)間計(jì)算技術(shù)獲得該節(jié)點(diǎn)對(duì)應(yīng)的執(zhí)行條件。
[0053]步驟2013、遍歷控制流圖中的每個(gè)節(jié)點(diǎn),并判斷每個(gè)節(jié)點(diǎn)是否滿足該節(jié)點(diǎn)對(duì)應(yīng)的執(zhí)行條件,若是則執(zhí)行步驟2014,若否則執(zhí)行步驟2015。
[0054]本步驟中,在遍歷控制流圖中的每個(gè)節(jié)點(diǎn)的過程中,判斷每個(gè)節(jié)點(diǎn)是否滿足該節(jié)點(diǎn)對(duì)應(yīng)的執(zhí)行條件。優(yōu)選地,可以從控制流圖中的入口節(jié)點(diǎn)開始遍歷過程。
[0055]步驟2014、確定出該節(jié)點(diǎn)對(duì)應(yīng)的程序語句為可達(dá)語句。
[0056]步驟2015、確定出該節(jié)點(diǎn)對(duì)應(yīng)的程序語句為不可達(dá)語句。
[0057]步驟202、為不可達(dá)語句設(shè)置不可達(dá)標(biāo)記,不可達(dá)標(biāo)記用于標(biāo)示不可達(dá)語句。
[0058]本實(shí)施例中,可為識(shí)別出的每個(gè)不可達(dá)語句設(shè)置不可達(dá)標(biāo)記。
[0059]步驟203、判斷源代碼中的程序語句是否設(shè)置有不可達(dá)標(biāo)記,若是則執(zhí)行步驟204,若否則執(zhí)行步驟205。
[0060]若判斷出源代碼中的程序語句設(shè)置有不可達(dá)標(biāo)記,則表明該程序語句為不可達(dá)語句;若判斷出源代碼中的程序語句未設(shè)置不可達(dá)標(biāo)記,則表明該程序語句為可達(dá)語句。
[0061 ] 步驟204、跳過不可達(dá)語句。
[0062]步驟205、對(duì)可達(dá)語句進(jìn)行缺陷計(jì)算。
[0063]本實(shí)施例提供的靜態(tài)檢測方法中,若判斷出程序語句為不可達(dá)語句時(shí)跳過該不可達(dá)語句,若判斷出程序語句為可達(dá)語句時(shí)對(duì)該可達(dá)語句進(jìn)行缺陷計(jì)算,本實(shí)施例的方案可實(shí)現(xiàn)從源代碼的程序語句識(shí)別出不可達(dá)語句,并在缺陷計(jì)算過程中跳過該不可達(dá)語句,極大的減少了后續(xù)進(jìn)行缺陷確認(rèn)時(shí)人工確認(rèn)的工作量,從而提高了靜態(tài)檢測的效率。本實(shí)施例中,識(shí)別出不可達(dá)語句的過程是自動(dòng)完成的,無需人工完成,從而提高了識(shí)別效率。本實(shí)施例的方案可實(shí)現(xiàn)從源代碼的程序語句識(shí)別出不可達(dá)語句,降低了缺陷誤報(bào)率,從而提高了檢測準(zhǔn)確度。
[0064]圖3為本發(fā)明實(shí)施例三提供的一種靜態(tài)檢測裝置的結(jié)構(gòu)示意圖,如圖3所示,該裝置包括:判斷模塊11和計(jì)算模塊12。
[0065]判斷模塊11用于判斷源代碼中的程序語句為不可達(dá)語句或者可達(dá)語句。計(jì)算模塊12用于若判斷模塊11判斷出所述程序語句為不可達(dá)語句時(shí),跳過所述不可達(dá)語句;若判斷模塊12判斷出所述程序語句為可達(dá)語句時(shí),對(duì)所述可達(dá)語句進(jìn)行缺陷計(jì)算。
[0066]本實(shí)施例提供的靜態(tài)檢測裝置可用于實(shí)現(xiàn)上述實(shí)施例一提供的靜態(tài)檢測方法,具體描述可參見上述實(shí)施例一。
[0067]本實(shí)施例提供的靜態(tài)檢測裝置中,若判斷出程序語句為不可達(dá)語句時(shí)跳過該不可達(dá)語句,若判斷出程序語句為可達(dá)語句時(shí)對(duì)該可達(dá)語句進(jìn)行缺陷計(jì)算,本實(shí)施例的方案可實(shí)現(xiàn)從源代碼的程序語句識(shí)別出不可達(dá)語句,并在缺陷計(jì)算過程中跳過該不可達(dá)語句,極大的減少了后續(xù)進(jìn)行缺陷確認(rèn)時(shí)人工確認(rèn)的工作量,從而提高了靜態(tài)檢測的效率。本實(shí)施例中,識(shí)別出不可達(dá)語句的過程是自動(dòng)完成的,無需人工完成,從而提高了識(shí)別效率。本實(shí)施例的方案可實(shí)現(xiàn)從源代碼的程序語句識(shí)別出不可達(dá)語句,降低了缺陷誤報(bào)率,從而提高了檢測準(zhǔn)確度。
[0068]圖4為本發(fā)明實(shí)施例四提供的一種靜態(tài)檢測裝置的結(jié)構(gòu)示意圖,如圖4所示,本實(shí)施例在上述實(shí)施例三的基礎(chǔ)上,判斷模塊11具體用于判斷源代碼中的程序語句是否設(shè)置有不可達(dá)標(biāo)記,不可達(dá)標(biāo)記用于標(biāo)示不可達(dá)語句,并判斷出源代碼中的程序語句設(shè)置有不可達(dá)標(biāo)記或者判斷出源代碼中的程序語句未設(shè)置不可達(dá)標(biāo)記。
[0069]進(jìn)一步地,該裝置還包括:識(shí)別模塊13和設(shè)置模塊14。
[0070]識(shí)別模塊13用于從源代碼中識(shí)別出不可達(dá)語句。設(shè)置模塊14用于為不可達(dá)語句設(shè)置不可達(dá)標(biāo)記。
[0071]具體地,識(shí)別模塊13可包括:轉(zhuǎn)換子模塊、判斷子模塊和確定子模塊。
[0072]轉(zhuǎn)換子模塊用于將所述源代碼轉(zhuǎn)化成控制流圖,所述控制流圖包括多個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)對(duì)應(yīng)源代碼中的一條程序語句。判斷子模塊用于遍歷所述控制流圖中的每個(gè)節(jié)點(diǎn),并判斷每個(gè)節(jié)點(diǎn)是否滿足該節(jié)點(diǎn)對(duì)應(yīng)的執(zhí)行條件。確定子模塊用于若所述判斷子模塊判斷出該節(jié)點(diǎn)滿足該節(jié)點(diǎn)對(duì)應(yīng)的執(zhí)行條件,確定出該節(jié)點(diǎn)對(duì)應(yīng)的程序語句為可達(dá)語句;若所述判斷子模塊判斷出該節(jié)點(diǎn)不滿足該節(jié)點(diǎn)對(duì)應(yīng)的執(zhí)行條件,確定出該節(jié)點(diǎn)對(duì)應(yīng)的程序語句為不可達(dá)語句。
[0073]本實(shí)施例提供的靜態(tài)檢測裝置可用于實(shí)現(xiàn)上述實(shí)施例二提供的靜態(tài)檢測方法,具體描述可參見上述實(shí)施例二。
[0074]本實(shí)施例提供的靜態(tài)檢測裝置中,若判斷出程序語句為不可達(dá)語句時(shí)跳過該不可達(dá)語句,若判斷出程序語句為可達(dá)語句時(shí)對(duì)該可達(dá)語句進(jìn)行缺陷計(jì)算,本實(shí)施例的方案可實(shí)現(xiàn)從源代碼的程序語句識(shí)別出不可達(dá)語句,并在缺陷計(jì)算過程中跳過該不可達(dá)語句,極大的減少了后續(xù)進(jìn)行缺陷確認(rèn)時(shí)人工確認(rèn)的工作量,從而提高了靜態(tài)檢測的效率。本實(shí)施例中,識(shí)別出不可達(dá)語句的過程是自動(dòng)完成的,無需人工完成,從而提高了識(shí)別效率。本實(shí)施例的方案可實(shí)現(xiàn)從源代碼的程序語句識(shí)別出不可達(dá)語句,降低了缺陷誤報(bào)率,從而提高了檢測準(zhǔn)確度。
[0075]可以理解的是,以上實(shí)施方式僅僅是為了說明本發(fā)明的原理而采用的示例性實(shí)施方式,然而本發(fā)明并不局限于此。對(duì)于本領(lǐng)域內(nèi)的普通技術(shù)人員而言,在不脫離本發(fā)明的精神和實(shí)質(zhì)的情況下,可以做出各種變型和改進(jìn),這些變型和改進(jìn)也視為本發(fā)明的保護(hù)范圍。
【主權(quán)項(xiàng)】
1.一種靜態(tài)檢測方法,其特征在于,包括: 判斷源代碼中的程序語句為不可達(dá)語句或者可達(dá)語句; 若判斷出所述程序語句為不可達(dá)語句時(shí),跳過所述不可達(dá)語句; 若判斷出所述程序語句為可達(dá)語句時(shí),對(duì)所述可達(dá)語句進(jìn)行缺陷計(jì)算。2.根據(jù)權(quán)利要求1所述的靜態(tài)檢測方法,其特征在于,所述判斷源代碼中的程序語句為不可達(dá)語句或者可達(dá)語句包括: 判斷源代碼中的程序語句是否設(shè)置有不可達(dá)標(biāo)記,所述不可達(dá)標(biāo)記用于標(biāo)示不可達(dá)語句; 所述判斷出所述程序語句為不可達(dá)語句包括:判斷出源代碼中的程序語句設(shè)置有不可達(dá)標(biāo)記; 所述判斷出所述程序語句為可達(dá)語句包括:判斷出源代碼中的程序語句未設(shè)置不可達(dá) ο3.根據(jù)權(quán)利要求2所述的靜態(tài)檢測方法,其特征在于,所述判斷源代碼中的程序語句是否設(shè)置有不可達(dá)標(biāo)記之前還包括: 從源代碼中識(shí)別出不可達(dá)語句; 為所述不可達(dá)語句設(shè)置不可達(dá)標(biāo)記。4.根據(jù)權(quán)利要求3所述的靜態(tài)檢測方法,其特征在于,所述從源代碼中識(shí)別出不可達(dá)語句包括: 將所述源代碼轉(zhuǎn)化成控制流圖,所述控制流圖包括多個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)對(duì)應(yīng)源代碼中的一條程序語句; 遍歷控制流圖中的每個(gè)節(jié)點(diǎn),并判斷每個(gè)節(jié)點(diǎn)是否滿足該節(jié)點(diǎn)對(duì)應(yīng)的執(zhí)行條件; 若判斷出該節(jié)點(diǎn)滿足該節(jié)點(diǎn)對(duì)應(yīng)的執(zhí)行條件,確定出該節(jié)點(diǎn)對(duì)應(yīng)的程序語句為可達(dá)語句; 若判斷出該節(jié)點(diǎn)不滿足該節(jié)點(diǎn)對(duì)應(yīng)的執(zhí)行條件,確定出該節(jié)點(diǎn)對(duì)應(yīng)的程序語句為不可達(dá)語句。5.一種靜態(tài)檢測裝置,其特征在于,包括: 判斷模塊,用于判斷源代碼中的程序語句為不可達(dá)語句或者可達(dá)語句; 計(jì)算模塊,用于若所述判斷模塊判斷出所述程序語句為不可達(dá)語句時(shí),跳過所述不可達(dá)語句;若所述判斷模塊判斷出所述程序語句為可達(dá)語句時(shí),對(duì)所述可達(dá)語句進(jìn)行缺陷計(jì)笪并ο6.根據(jù)權(quán)利要求5所述的靜態(tài)檢測裝置,其特征在于,所述判斷模塊具體用于判斷源代碼中的程序語句是否設(shè)置有不可達(dá)標(biāo)記,所述不可達(dá)標(biāo)記用于標(biāo)示不可達(dá)語句,判斷出源代碼中的程序語句設(shè)置有不可達(dá)標(biāo)記或者判斷出源代碼中的程序語句未設(shè)置不可達(dá)標(biāo)記。7.根據(jù)權(quán)利要求6所述的靜態(tài)檢測裝置,其特征在于,還包括: 識(shí)別模塊,用于從源代碼中識(shí)別出不可達(dá)語句; 設(shè)置模塊,用于為所述不可達(dá)語句設(shè)置不可達(dá)標(biāo)記。8.根據(jù)權(quán)利要求7所述的靜態(tài)檢測裝置,其特征在于,所述識(shí)別模塊包括: 轉(zhuǎn)換子模塊,用于將所述源代碼轉(zhuǎn)化成控制流圖,所述控制流圖包括多個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)對(duì)應(yīng)源代碼中的一條程序語句; 判斷子模塊,用于遍歷所述控制流圖中的每個(gè)節(jié)點(diǎn),并判斷每個(gè)節(jié)點(diǎn)是否滿足該節(jié)點(diǎn)對(duì)應(yīng)的執(zhí)行條件; 確定子模塊,用于若所述判斷子模塊判斷出該節(jié)點(diǎn)滿足該節(jié)點(diǎn)對(duì)應(yīng)的執(zhí)行條件,確定出該節(jié)點(diǎn)對(duì)應(yīng)的程序語句為可達(dá)語句;若所述判斷子模塊判斷出該節(jié)點(diǎn)不滿足該節(jié)點(diǎn)對(duì)應(yīng)的執(zhí)行條件,確定出該節(jié)點(diǎn)對(duì)應(yīng)的程序語句為不可達(dá)語句。
【文檔編號(hào)】G06F11/36GK105868103SQ201610169984
【公開日】2016年8月17日
【申請日】2016年3月23日
【發(fā)明人】楊學(xué)紅
【申請人】中國聯(lián)合網(wǎng)絡(luò)通信集團(tuán)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1