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

測(cè)試用例覆蓋度自動(dòng)識(shí)別方法及裝置的制作方法

文檔序號(hào):6382421閱讀:219來源:國(guó)知局
專利名稱:測(cè)試用例覆蓋度自動(dòng)識(shí)別方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及代碼測(cè)試技術(shù),尤其涉及一種測(cè)試用例覆蓋度自動(dòng)識(shí)別方法及裝置。
背景技術(shù)
測(cè)試人員對(duì)軟件產(chǎn)品進(jìn)行測(cè)試時(shí),往往不能量化判斷測(cè)試用例設(shè)計(jì)是否全面,測(cè)試是否完全,因此會(huì)出現(xiàn)軟件上線后才發(fā)現(xiàn)漏測(cè)的問題,導(dǎo)致需要重新開發(fā),再次測(cè)試。如此不斷循環(huán),既影響到軟件質(zhì)量、浪費(fèi)測(cè)試資源,又導(dǎo)致軟件發(fā)布周期延長(zhǎng)。圖1示出了現(xiàn)有技術(shù)中的一種測(cè)試覆蓋率統(tǒng)計(jì)方法,包括在步驟11處,增加編譯選項(xiàng),例如可以對(duì)源碼編譯信息進(jìn)行配置,該源碼編譯信息可以包括編譯時(shí)產(chǎn)生的源碼文件名、代碼行信息以及程序流信息;在步驟12處,產(chǎn)生源碼信息;在步驟13處,執(zhí)行測(cè)試用例;在步驟14處,產(chǎn)生語句覆蓋信息,該語句覆蓋信息例如可以包括用例運(yùn)行結(jié)束后記錄的語句所在文件名、語句行號(hào)信息、語句執(zhí)行次數(shù)以及每個(gè)基本塊執(zhí)行次數(shù)等信息;在步驟15處,產(chǎn)生覆蓋率報(bào)告。該方法使用簡(jiǎn)便,在用例運(yùn)行一遍后,可以給出所有源碼的覆蓋率情況,可以給出已經(jīng)覆蓋到的源碼行和未覆蓋到的源碼行信息?,F(xiàn)有技術(shù)中的覆蓋率工具通常都采用圖1所示的方法?,F(xiàn)有技術(shù)的覆蓋率統(tǒng)計(jì)方法具有覆蓋率不準(zhǔn)確、無法自動(dòng)識(shí)別測(cè)試用例設(shè)計(jì)是否全面等問題。

發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種測(cè)試用例覆蓋度自動(dòng)識(shí)別方法及裝置,能夠提高測(cè)試用例的覆蓋度、識(shí)別準(zhǔn)確度,并能夠快速定位沒有被測(cè)試用例覆蓋的源碼位置。為解決上述技術(shù)問題,本發(fā)明提供了一種測(cè)試用例覆蓋度自動(dòng)識(shí)別方法,包括將混合源碼分離為系統(tǒng)源碼和用戶源碼;根據(jù)原始的覆蓋率信息,針對(duì)所述用戶源碼進(jìn)行統(tǒng)計(jì)分析,重新計(jì)算所述用戶源碼的有效覆蓋率;將所述有效覆蓋率與預(yù)設(shè)的覆蓋率閾值進(jìn)行比較,若所述有效覆蓋率不小于所述預(yù)設(shè)的覆蓋率閾值,則測(cè)試結(jié)束,否則給出告警信息。根據(jù)本發(fā)明的一個(gè)實(shí)施例,在給出告警信息時(shí),還一并獲取所述用戶源碼中的未覆蓋有效源碼。根據(jù)本發(fā)明的一個(gè)實(shí)施例,所述原始的覆蓋率信息是通過執(zhí)行測(cè)試用例獲得的,在執(zhí)行每一測(cè)試用例后還一并記錄該測(cè)試用例的用例號(hào),并將該測(cè)試用例的用例號(hào)以及該測(cè)試用例覆蓋的用戶源碼有效代碼行的行號(hào)信息記錄為用例源碼映射信息,所述用戶源碼有效代碼指的是所述用戶源碼中符合預(yù)定義的有效代碼行規(guī)則的代碼行。根據(jù)本發(fā)明的一個(gè)實(shí)施例,獲取所述用戶源碼中的未覆蓋有效源碼包括將當(dāng)前的用戶源碼與舊用戶源碼進(jìn)行比對(duì),根據(jù)所述有效代碼行規(guī)則對(duì)比對(duì)所得的差異代碼行進(jìn)行有效代碼行判斷,以獲取有效差異代碼行信息;
根據(jù)所述有效差異代碼行信息查詢所述用例源碼映射信息,若未查詢到與所述有效差異代碼行信息對(duì)應(yīng)的用例號(hào),則輸出該有效代碼行信息。根據(jù)本發(fā)明的一個(gè)實(shí)施例,所述有效覆蓋率包括有效語句覆蓋率、有效函數(shù)覆蓋率和有效分支覆蓋率,所述有效覆蓋率不小于所述預(yù)設(shè)的覆蓋率閾值指的是所述有效語句覆蓋率不小于預(yù)設(shè)的語句覆蓋率閾值、所述有效函數(shù)覆蓋率不小于預(yù)設(shè)的函數(shù)覆蓋率閾值并且所述有效分支覆蓋率不小于預(yù)設(shè)的分值覆蓋率閾值。本發(fā)明還提供了一種測(cè)試用例覆蓋度自動(dòng)識(shí)別裝置,包括源碼分離模塊,將混合源碼分離為系統(tǒng)源碼和用戶源碼;有效覆蓋率重新計(jì)算模塊,根據(jù)原始的覆蓋率信息,針對(duì)所述用戶源碼進(jìn)行統(tǒng)計(jì)分析,重新計(jì)算所述用戶源碼的有效覆蓋率;測(cè)試告警模塊,將所述有效覆蓋率與預(yù)設(shè)的覆蓋率閾值進(jìn)行比較,若所述有效覆蓋率不小于所述預(yù)設(shè)的覆蓋率閾值,則測(cè)試結(jié)束,否則給出告警信息。根據(jù)本發(fā)明的一個(gè)實(shí)施例,所述裝置還包括未覆蓋有效源碼獲取模塊,在所述有效覆蓋率小于所述預(yù)設(shè)的覆蓋率閾值時(shí),獲取所述用戶源碼中的未覆蓋有效源碼。根據(jù)本發(fā)明的一個(gè)實(shí)施例,所述原始的覆蓋率信息是通過執(zhí)行測(cè)試用例獲得的,所述裝置還包括用例源碼映射信息生成模塊,在執(zhí)行每一測(cè)試用例后還一并記錄該測(cè)試用例的用例號(hào),并將該測(cè)試用例的用例號(hào)以及該測(cè)試用例覆蓋的用戶源碼有效代碼行的行號(hào)信息記錄為用例源碼映射信息,所述用戶源碼有效代碼指的是所述用戶源碼中符合預(yù)定義的有效代碼行規(guī)則的代碼行。根據(jù)本發(fā)明的一個(gè)實(shí)施例,所述未覆蓋有效源碼獲取模塊包括比對(duì)單元,將當(dāng)前的用戶源碼與舊用戶源碼進(jìn)行比對(duì),根據(jù)所述有效代碼行規(guī)則對(duì)比對(duì)所得的差異代碼行進(jìn)行有效代碼行判斷,以獲取有效差異代碼行信息;查詢單元,根據(jù)所述有效差異代碼行信息查詢所述用例源碼映射信息,若未查詢到與所述有效差異代碼行信息對(duì)應(yīng)的用例號(hào),則輸出該有效代碼行信息。根據(jù)本發(fā)明的一個(gè)實(shí)施例,所述有效覆蓋率包括有效語句覆蓋率、有效函數(shù)覆蓋率和有效分支覆蓋率,所述有效覆蓋率不小于所述預(yù)設(shè)的覆蓋率閾值指的是所述有效語句覆蓋率不小于預(yù)設(shè)的語句覆蓋率閾值、所述有效函數(shù)覆蓋率不小于預(yù)設(shè)的函數(shù)覆蓋率閾值并且所述有效分支覆蓋率不小于預(yù)設(shè)的分值覆蓋率閾值。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn)本發(fā)明實(shí)施例的測(cè)試用例覆蓋度自動(dòng)識(shí)別方法對(duì)混合源碼進(jìn)行分析和分離,根據(jù)預(yù)定義的用戶源碼規(guī)則進(jìn)行篩選,得到用戶源碼,并根據(jù)原始的覆蓋率信息僅針對(duì)分離得到的用戶源碼進(jìn)行統(tǒng)計(jì)分析,重新計(jì)算得到用戶源碼的有效覆蓋率,之后與預(yù)設(shè)的覆蓋率閾值比較,判斷測(cè)試是否完全。由于本發(fā)明實(shí)施例針對(duì)分離得到的用戶源碼進(jìn)行統(tǒng)計(jì)分析,因而覆蓋率更加準(zhǔn)確,也有利于降低測(cè)試成本。進(jìn)一步地,在測(cè)試不完全時(shí),本發(fā)明實(shí)施例還能夠準(zhǔn)確展示變更的代碼中有哪些有效代碼行沒有被覆蓋,從而能夠有的放矢地設(shè)計(jì)測(cè)試用例,有利于提高測(cè)試效率。


圖1示出了現(xiàn)有技術(shù)中的一種測(cè)試覆蓋率統(tǒng)計(jì)方法;圖2示出了現(xiàn)有技術(shù)中的覆蓋率統(tǒng)計(jì)方法;圖3示出了本發(fā)明實(shí)施例的覆蓋度自動(dòng)識(shí)別方法;圖4和圖5示出了本發(fā)明實(shí)施例對(duì)于無測(cè)試用例的新增用戶源碼的處理方法;圖6示出了本發(fā)明實(shí)施例的覆蓋度自動(dòng)識(shí)別方法的詳細(xì)流程圖;圖7示出了本發(fā)明實(shí)施例的覆蓋度自動(dòng)識(shí)別裝置的結(jié)構(gòu)框圖。
具體實(shí)施方式

下面結(jié)合具體實(shí)施例和附圖對(duì)本發(fā)明作進(jìn)一步說明,但不應(yīng)以此限制本發(fā)明的保護(hù)范圍。參考圖2,現(xiàn)有技術(shù)中,覆蓋率22是根據(jù)混合源碼信息21得到的,該混合源碼通常包括系統(tǒng)源碼和用戶源碼,其中系統(tǒng)源碼是系統(tǒng)中固有的源代碼,其內(nèi)容相對(duì)固定;而用戶源碼是用戶自定義的源代碼,在開發(fā)過程中經(jīng)常需要變更,系統(tǒng)源碼和用戶源碼二者是相對(duì)的概念。而現(xiàn)有技術(shù)中,語句覆蓋率統(tǒng)計(jì)方法是把系統(tǒng)源碼與用戶源碼混合在一起計(jì)算的。發(fā)明人發(fā)現(xiàn),現(xiàn)有技術(shù)由于用戶定義的源碼與系統(tǒng)文件混合,因此在需要只統(tǒng)計(jì)用戶定義的源碼覆蓋率時(shí),會(huì)導(dǎo)致覆蓋率不準(zhǔn)確,降低了覆蓋率工具的指導(dǎo)意義;另外,采用現(xiàn)有技術(shù)的方法無法自動(dòng)識(shí)別測(cè)試用例的設(shè)計(jì)是否全面,而且當(dāng)增加注釋行等無效代碼時(shí),無法實(shí)現(xiàn)自動(dòng)化過濾,需要人工判斷哪些代碼行是無效代碼,效率低下。下面對(duì)本發(fā)明實(shí)施例的測(cè)試用例覆蓋度自動(dòng)識(shí)別方法進(jìn)行詳細(xì)說明,該方法包括將混合源碼分離為系統(tǒng)源碼和用戶源碼;根據(jù)原始的覆蓋率信息,針對(duì)所述用戶源碼進(jìn)行統(tǒng)計(jì)分析,重新計(jì)算所述用戶源碼的有效覆蓋率;將所述有效覆蓋率與預(yù)設(shè)的覆蓋率閾值進(jìn)行比較,若所述有效覆蓋率不小于所述預(yù)設(shè)的覆蓋率閾值,則測(cè)試結(jié)束,否則給出告

目 I R ο參考圖3,在32處,對(duì)混合源碼31進(jìn)行分離處理,得到系統(tǒng)源碼33和用戶源碼34。分離過程例如可以根據(jù)設(shè)定的用戶源碼規(guī)則進(jìn)行,比如測(cè)試人員可以輸入用戶自定義的源碼模塊的名稱,將其與系統(tǒng)源碼區(qū)分開,或者測(cè)試人員也可以輸入用戶源碼的目錄名稱,將其與系統(tǒng)源碼分離。分離之后,后續(xù)將僅對(duì)用戶源碼進(jìn)行操作處理,使得后續(xù)的覆蓋率統(tǒng)計(jì)更加具有針對(duì)性和可讀性。在分離得到用戶源碼之后,還可以根據(jù)預(yù)先定義的有效代碼行規(guī)則進(jìn)行篩選,將其中的有效代碼行篩選出來。其中,有效代碼行指的是應(yīng)當(dāng)被識(shí)別的、具有實(shí)質(zhì)功能的代碼行,例如注釋行、空行和頭文件的加載行是無效代碼行,不應(yīng)當(dāng)被覆蓋率工具識(shí)別,而能夠被覆蓋率工具識(shí)別的代碼行稱為有效代碼行。有效代碼行規(guī)則所定義的就是符合何種規(guī)則的代碼行可以被認(rèn)定為是有效代碼行。在36處,根據(jù)用戶源碼覆蓋信息35,針對(duì)用戶源碼34重新計(jì)算用戶源碼34的有效覆蓋率。由于測(cè)試往往只關(guān)心用戶自定義的源碼,因此只計(jì)算用戶源碼的有效覆蓋率,可以提高測(cè)試判斷的準(zhǔn)確度,也有利于提高測(cè)試效率。其中,用戶源碼覆蓋信息35是原始的覆蓋信息,例如是前一次執(zhí)行測(cè)試用例生成的覆蓋信息。有效覆蓋率可以包括語句覆蓋率、函數(shù)覆蓋率、分支覆蓋率中的一項(xiàng)或多項(xiàng),或者還可以包括本領(lǐng)域技術(shù)人員公知的其他覆蓋率的衡量方式。作為一個(gè)非限制性的例子,本實(shí)施例中的有效覆蓋率包括語句覆蓋率、函數(shù)覆蓋率、分支覆蓋率三項(xiàng)。其中,有效語句覆蓋率的含義如下測(cè)試用例執(zhí)行后,至少被執(zhí)行一次的語句數(shù)量占有效代碼總行數(shù)的比例,可以用effLineCov表示,即effLineCov=(至少被執(zhí)行一次的語句數(shù)量/有效代碼行數(shù))*100% ;有效函數(shù)覆蓋率的含義如下測(cè)試用例執(zhí)行后,至少被執(zhí)行一次的函數(shù)數(shù)·量占有效函數(shù)總個(gè)數(shù)的比例,可以用effFunCov表示,即effFunCov=(覆蓋到的函數(shù)個(gè)數(shù)/有效函數(shù)總個(gè)數(shù))*100% ;有效分支覆蓋率的含義如下測(cè)試用例執(zhí)行后,會(huì)產(chǎn)生相應(yīng)的分支覆蓋信息,至少被執(zhí)行一次的分支數(shù)量占有效分支總個(gè)數(shù)的比例,可以用effBranCov表示,即effBranCov=(覆蓋到的分支個(gè)數(shù)/有效分支總個(gè)數(shù))*100%。在37處,將重新計(jì)算所得的有效覆蓋率與預(yù)設(shè)的覆蓋率閾值進(jìn)行比較,如果計(jì)算所得的有效覆蓋率不小于覆蓋率閾值,則測(cè)試結(jié)束,否則給出告警信息。其中,覆蓋率閾值是預(yù)先設(shè)定的,用戶可以根據(jù)項(xiàng)目的不斷進(jìn)行對(duì)該閾值的經(jīng)驗(yàn)值進(jìn)行調(diào)整。作為一個(gè)非限制性的例子,在本實(shí)施例中,需要同時(shí)滿足以下三個(gè)條件才結(jié)束測(cè)試有效語句覆蓋率不小于語句覆蓋率閾值;有效函數(shù)覆蓋率不小于函數(shù)覆蓋率閾值;有效分支覆蓋率不小于分支覆蓋率閾值。其中任一條件不滿足,則給出告警信息,提示用戶當(dāng)前的測(cè)試用例還不夠完善,測(cè)試并不完全。作為一個(gè)優(yōu)選的實(shí)施例,在用戶源碼的有效覆蓋率小于預(yù)設(shè)的覆蓋率閾值時(shí),還可以獲取用戶源碼中的未覆蓋有效源碼,向用戶提示用戶源碼中測(cè)試不全面的有效代碼行。其中,獲取的未覆蓋有效源碼的相關(guān)信息可以包括相關(guān)的文件名、代碼行號(hào)等信息。參考圖4,在有效覆蓋率小于閾值時(shí),提示測(cè)試不完全,并給出未覆蓋到的用戶源碼信息(即未覆蓋有效源碼)。在實(shí)際測(cè)試過程中,這部分往往是用戶新增的源碼,準(zhǔn)確地給出未覆蓋有效源碼的位置,能夠減少人工閱讀代碼時(shí)間,提高測(cè)試效率。例如,對(duì)于用戶源碼新增第m行至第η行41,可以分別設(shè)計(jì)用例I至用例η對(duì)其進(jìn)行測(cè)試,以對(duì)其進(jìn)行覆蓋。參考圖5,圖5在圖4基礎(chǔ)上示出了更加詳細(xì)的處理過程。在52處,對(duì)于用戶源碼新增第m行至η行51,根據(jù)有效代碼行規(guī)則對(duì)其進(jìn)行篩選,獲取其中的有效代碼行,得到新增有效代碼第m至P行,……,新增有效代碼第z至η行。之后對(duì)于每一部分的新增有效代碼,分別設(shè)計(jì)測(cè)試用例,例如用例I至用例η,以實(shí)現(xiàn)對(duì)新增代碼的覆蓋。參考圖6,圖6示出了覆蓋度自動(dòng)識(shí)別方法的一個(gè)具體實(shí)例,該實(shí)例中,在602處,對(duì)混合源碼601進(jìn)行分離處理,得到系統(tǒng)源碼603和用戶源碼604。分離操作可以根據(jù)預(yù)定義的用戶源碼規(guī)則進(jìn)行,例如用戶可以輸入用戶源碼目錄名,將系統(tǒng)源碼與用戶自定義的用戶源碼分離開來,將混合源碼601分離為系統(tǒng)源碼603和用戶源碼604,后續(xù)將只對(duì)用戶源碼進(jìn)行操作。在605處,重新計(jì)算有效覆蓋率。進(jìn)一步而言,可以在612處獲取原始的覆蓋率信息,之后僅針對(duì)用戶源碼604進(jìn)行統(tǒng)計(jì)分析,重新計(jì)算得到用戶源碼604的有效覆蓋率。其中,原始的覆蓋率信息的獲得方式如下在610處,修改覆蓋率編譯選項(xiàng);在611處,執(zhí)行用例,從而在612處獲得原始覆蓋率信息。有效覆蓋率可以包括有效語句覆蓋率、有效函數(shù)覆蓋率和有效分支覆蓋率。在重新計(jì)算有效覆蓋率之后,在606處,將計(jì)算所得的有效覆蓋率與預(yù)設(shè)的覆蓋率閾值進(jìn)行比較,如果有效覆蓋率不小于預(yù)設(shè)的覆蓋率閾值,則轉(zhuǎn)至607處,測(cè)試結(jié)束。在本實(shí)例中,需要以下三個(gè)條件同時(shí)滿足測(cè)試才結(jié)束有效語句覆蓋率不小于語句覆蓋率閾值;有效函數(shù)覆蓋率不小于函數(shù)覆蓋率閾值;有效分支覆蓋率不小于分支覆蓋率閾值。其中任一條件不滿足,則給出告警信息。在本實(shí)例中,如果重新計(jì)算的有效覆蓋率小于預(yù)設(shè)的覆蓋率閾值,還跳轉(zhuǎn)至608處,獲取有效源碼變更信息。進(jìn)一步而言,在609處進(jìn)行新舊源碼比對(duì),更加具體而言,將當(dāng)前的用戶源碼604與舊用戶源碼進(jìn)行比對(duì),對(duì)于比對(duì)所得的差異代碼行,根據(jù)預(yù)設(shè)的有效代碼行規(guī)則進(jìn)行篩選,從而獲取有效差異代碼行信息,該有效差異代碼行信息例如可以包括行號(hào)。在獲取有效源碼變更信息之后,前進(jìn)至步驟615,按照行號(hào)查詢相關(guān)用例號(hào)。具體而言,在611處執(zhí)行用例(可以是手工用例也可以是自動(dòng)化用例)之后,還在613處一并記錄執(zhí)行的用例號(hào),將測(cè)試用例的用例號(hào)以及該測(cè)試用例覆蓋的用戶源碼有效代碼行的行號(hào)信息集成記錄在用例源碼映射信息中,也就是得到用例源碼映射關(guān)系614。用例源碼映射信息中可以包括用例號(hào)信息、用戶源碼的文件名、有效代碼行的行號(hào)信息、內(nèi)部的流程信息等,其可以采用映射關(guān)系表的形式來保存,按照用例號(hào)來索引區(qū)分。在615處,按照有效差異代碼行信息的行號(hào)在用例源碼映射關(guān)系614中查詢與該行號(hào)對(duì)應(yīng)的用例號(hào),并在616處對(duì)查詢結(jié)果進(jìn)行判斷,若查詢不到則表明該有效差異代碼行并未設(shè)計(jì)用例,則轉(zhuǎn)向步驟617,給出無用例的有效代碼行位置,可以和告警信息一并輸出至用戶。如果查詢到有相關(guān)的用例,則轉(zhuǎn)向步驟618,判斷是否有變更信息,如果無變更信息則前進(jìn)至步驟607,結(jié)束測(cè)試;如果有變更信息,則返回至步驟608。更加具體而言,查詢相關(guān)用例的步驟可以包括1)根據(jù)獲得的有效差異代碼行信息,在用例源碼映射關(guān)系614中查詢,如果查詢到相應(yīng)的用例,則表明該差異的有效代碼行已經(jīng)被覆蓋到,進(jìn)入步驟2),如果查詢不到相應(yīng)的用例,則進(jìn)入步驟3) ;2)進(jìn)入下一個(gè)有效差異代碼行信息查詢,如果沒有有效差異代碼行信息,則結(jié)束,若還有有效差異代碼行信息,則返回步驟I)繼續(xù)查詢;3)存儲(chǔ)沒有相應(yīng)用例的有效差異代碼行信息;4)輸出沒有測(cè)試用例的有效差異代碼行信息,結(jié)束測(cè)試。參考圖7,本實(shí)施例還提供了一種測(cè)試用例覆蓋度自動(dòng)識(shí)別裝置,包括源碼分離模塊71,將混合源碼分離為系統(tǒng)源碼和用戶源碼;有效覆蓋率重新計(jì)算模塊72,根據(jù)原始的覆蓋率信息,針對(duì)所述用戶源碼進(jìn)行統(tǒng)計(jì)分析,重新計(jì)算所述用戶源碼的有效覆蓋率;測(cè)試告警模塊73,將所述有效覆蓋率與預(yù)設(shè)的覆蓋率閾值進(jìn)行比較,若所述有效覆蓋率不小于所述預(yù)設(shè)的覆蓋率閾值,則測(cè)試結(jié)束,否則給出告警信息;未覆蓋有效源碼獲取模塊75,在所述有效覆蓋率小于所述預(yù)設(shè)的覆蓋率閾值時(shí),獲取所述用戶源碼中的未覆蓋有效源碼;用例源碼映射信息生成模塊74,在執(zhí)行每一測(cè)試用例后還一并記錄該測(cè)試用例的用例號(hào),并將該測(cè)試用例的用例號(hào)以及該測(cè)試用例覆蓋的用戶源碼有效代碼行的行號(hào)信息記錄為用例源碼映射信息。其中,未覆蓋有效源碼獲取模塊75可以包括比對(duì)單元,將當(dāng)前的用戶源碼與舊用戶源碼進(jìn)行比對(duì),根據(jù)所述有效代碼行規(guī)則對(duì)比對(duì)所得的差異代碼行進(jìn)行有效代碼行判斷,以獲取有效差異代碼行信息;查詢單元,根據(jù)所述有效差異代碼行信息查詢所述用例源碼映射信息,若未查詢到與所述有效差異代碼行信息對(duì)應(yīng)的用例號(hào),則輸出該有效代碼行信息。關(guān)于該測(cè)試用例覆蓋度自動(dòng)識(shí)別裝置的工作原理和工作過程請(qǐng)參考以上實(shí)施例中測(cè)試用例覆蓋度自動(dòng)識(shí)別方法的描述,這里不再贅述。綜上,本實(shí)施例的技術(shù)方案首先可以根據(jù)預(yù)設(shè)的覆蓋率閾值來判斷測(cè)試是否完全;其次,當(dāng)測(cè)試不完全時(shí),還可以準(zhǔn)確展示有效變更的代碼行位置,從而可以多個(gè)角度量化判斷測(cè)試是否完全,給測(cè)試人員提供測(cè)試判斷的依據(jù)。當(dāng)測(cè)試不完全時(shí),可以準(zhǔn)確給出變更的代碼中哪些代碼行還沒有覆蓋到,從而有的放矢地設(shè)計(jì)測(cè)試用例,提高測(cè)試效率。此外,本實(shí)施例的技術(shù)方案通過分離系統(tǒng)源碼和用戶源碼,能夠提高代碼覆蓋率的判斷準(zhǔn)確度,從覆蓋率的各個(gè)維度來提高測(cè)試完全的準(zhǔn)確率,并能夠準(zhǔn)確定位到未覆蓋到的差異代碼位置。本發(fā)明雖然以較佳實(shí)施例公開如上,但其并不是用來限定本發(fā)明,任何本領(lǐng)域技術(shù)人員在不脫離本發(fā)明的精神和范圍內(nèi),都可以做出可能的變動(dòng)和修改,因此本發(fā)明的保護(hù)范圍應(yīng)當(dāng)以本發(fā)明權(quán)利要求所界定的范圍為準(zhǔn)。
權(quán)利要求
1.一種測(cè)試用例覆蓋度自動(dòng)識(shí)別方法,其特征在于,包括 將混合源碼分離為系統(tǒng)源碼和用戶源碼; 根據(jù)原始的覆蓋率信息,針對(duì)所述用戶源碼進(jìn)行統(tǒng)計(jì)分析,重新計(jì)算所述用戶源碼的有效覆蓋率; 將所述有效覆蓋率與預(yù)設(shè)的覆蓋率閾值進(jìn)行比較,若所述有效覆蓋率不小于所述預(yù)設(shè)的覆蓋率閾值,則測(cè)試結(jié)束,否則給出告警信息。
2.根據(jù)權(quán)利要求2所述的測(cè)試用例覆蓋度自動(dòng)識(shí)別方法,其特征在于,在給出告警信息時(shí),還一并獲取所述用戶源碼中的未覆蓋有效源碼。
3.根據(jù)權(quán)利要求2所述的測(cè)試用例覆蓋度自動(dòng)識(shí)別方法,其特征在于,所述原始的覆蓋率信息是通過執(zhí)行測(cè)試用例獲得的,在執(zhí)行每一測(cè)試用例后還一并記錄該測(cè)試用例的用例號(hào),并將該測(cè)試用例的用例號(hào)以及該測(cè)試用例覆蓋的用戶源碼有效代碼行的行號(hào)信息記錄為用例源碼映射信息,所述用戶源碼有效代碼指的是所述用戶源碼中符合預(yù)定義的有效代碼行規(guī)則的代碼行。
4.根據(jù)權(quán)利要求3所述的測(cè)試用例覆蓋度自動(dòng)識(shí)別方法,其特征在于,獲取所述用戶源碼中的未覆蓋有效源碼包括 將當(dāng)前的用戶源碼與舊用戶源碼進(jìn)行比對(duì),根據(jù)所述有效代碼行規(guī)則對(duì)比對(duì)所得的差異代碼行進(jìn)行有效代碼行判斷,以獲取有效差異代碼行信息; 根據(jù)所述有效差異代碼行信息查詢所述用例源碼映射信息,若未查詢到與所述有效差異代碼行信息對(duì)應(yīng)的用例號(hào),則輸出該有效代碼行信息。
5.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的測(cè)試用例覆蓋度自動(dòng)識(shí)別方法,其特征在于,所述有效覆蓋率包括有效語句覆蓋率、有效函數(shù)覆蓋率和有效分支覆蓋率,所述有效覆蓋率不小于所述預(yù)設(shè)的覆蓋率閾值指的是所述有效語句覆蓋率不小于預(yù)設(shè)的語句覆蓋率閾值、所述有效函數(shù)覆蓋率不小于預(yù)設(shè)的函數(shù)覆蓋率閾值并且所述有效分支覆蓋率不小于預(yù)設(shè)的分值覆蓋率閾值。
6.一種測(cè)試用例覆蓋度自動(dòng)識(shí)別裝置,其特征在于,包括 源碼分離模塊,將混合源碼分離為系統(tǒng)源碼和用戶源碼; 有效覆蓋率重新計(jì)算模塊,根據(jù)原始的覆蓋率信息,針對(duì)所述用戶源碼進(jìn)行統(tǒng)計(jì)分析,重新計(jì)算所述用戶源碼的有效覆蓋率; 測(cè)試告警模塊,將所述有效覆蓋率與預(yù)設(shè)的覆蓋率閾值進(jìn)行比較,若所述有效覆蓋率不小于所述預(yù)設(shè)的覆蓋率閾值,則測(cè)試結(jié)束,否則給出告警信息。
7.根據(jù)權(quán)利要求6所述的測(cè)試用例覆蓋度自動(dòng)識(shí)別裝置,其特征在于,還包括 未覆蓋有效源碼獲取模塊,在所述有效覆蓋率小于所述預(yù)設(shè)的覆蓋率閾值時(shí),獲取所述用戶源碼中的未覆蓋有效源碼。
8.根據(jù)權(quán)利要求7所述的測(cè)試用例覆蓋度自動(dòng)識(shí)別裝置,其特征在于,所述原始的覆蓋率信息是通過執(zhí)行測(cè)試用例獲得的,所述裝置還包括 用例源碼映射信息生成模塊,在執(zhí)行每一測(cè)試用例后還一并記錄該測(cè)試用例的用例號(hào),并將該測(cè)試用例的用例號(hào)以及該測(cè)試用例覆蓋的用戶源碼有效代碼行的行號(hào)信息記錄為用例源碼映射信息,所述用戶源碼有效代碼指的是所述用戶源碼中符合預(yù)定義的有效代碼行規(guī)則的代碼行。
9.根據(jù)權(quán)利要求8所述的測(cè)試用例覆蓋度自動(dòng)識(shí)別裝置,其特征在于,所述未覆蓋有效源碼獲取模塊包括比對(duì)單元,將當(dāng)前的用戶源碼與舊用戶源碼進(jìn)行比對(duì),根據(jù)所述有效代碼行規(guī)則對(duì)比對(duì)所得的差異代碼行進(jìn)行有效代碼行判斷,以獲取有效差異代碼行信息;查詢單元,根據(jù)所述有效差異代碼行信息查詢所述用例源碼映射信息,若未查詢到與所述有效差異代碼行信息對(duì)應(yīng)的用例號(hào),則輸出該有效代碼行信息。
10.根據(jù)權(quán)利要求6至9中任一項(xiàng)所述的測(cè)試用例覆蓋度自動(dòng)識(shí)別裝置,其特征在于, 所述有效覆蓋率包括有效語句覆蓋率、有效函數(shù)覆蓋率和有效分支覆蓋率,所述有效覆蓋率不小于所述預(yù)設(shè)的覆蓋率閾值指的是所述有效語句覆蓋率不小于預(yù)設(shè)的語句覆蓋率閾值、所述有效函數(shù)覆蓋率不小于預(yù)設(shè)的函數(shù)覆蓋率閾值并且所述有效分支覆蓋率不小于預(yù)設(shè)的分值覆蓋率閾值。
全文摘要
本發(fā)明提供了一種測(cè)試用例覆蓋度自動(dòng)識(shí)別方法及裝置,該方法包括將混合源碼分離為系統(tǒng)源碼和用戶源碼;根據(jù)原始的覆蓋率信息,針對(duì)所述用戶源碼進(jìn)行統(tǒng)計(jì)分析,重新計(jì)算所述用戶源碼的有效覆蓋率;將所述有效覆蓋率與預(yù)設(shè)的覆蓋率閾值進(jìn)行比較,若所述有效覆蓋率不小于所述預(yù)設(shè)的覆蓋率閾值,則測(cè)試結(jié)束,否則給出告警信息。本發(fā)明能夠提高測(cè)試用例的覆蓋度、識(shí)別準(zhǔn)確度,并能夠快速定位沒有被測(cè)試用例覆蓋的源碼位置。
文檔編號(hào)G06F11/36GK103019933SQ201210492170
公開日2013年4月3日 申請(qǐng)日期2012年11月27日 優(yōu)先權(quán)日2012年11月27日
發(fā)明者洪珂, 陳明師, 呂士表 申請(qǐng)人:網(wǎng)宿科技股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
泗水县| 靖江市| 三门峡市| 岐山县| 繁昌县| 丰县| 沛县| 平南县| 南开区| 长岛县| 鄂尔多斯市| 曲阜市| 格尔木市| 大丰市| 电白县| 寿宁县| 常德市| 珠海市| 辛集市| 馆陶县| 巴中市| 新津县| 札达县| 台前县| 泾源县| 辛集市| 武城县| 同心县| 时尚| 红安县| 澄江县| 沧州市| 卢龙县| 土默特左旗| 泸州市| 通河县| 宿松县| 永清县| 青川县| 宝应县| 云梦县|