專利名稱:測試用例覆蓋度自動識別方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及代碼測試技術(shù),尤其涉及一種測試用例覆蓋度自動識別方法及裝置。
背景技術(shù):
測試人員對軟件產(chǎn)品進行測試時,往往不能量化判斷測試用例設計是否全面,測試是否完全,因此會出現(xiàn)軟件上線后才發(fā)現(xiàn)漏測的問題,導致需要重新開發(fā),再次測試。如此不斷循環(huán),既影響到軟件質(zhì)量、浪費測試資源,又導致軟件發(fā)布周期延長。圖1示出了現(xiàn)有技術(shù)中的一種測試覆蓋率統(tǒng)計方法,包括在步驟11處,增加編譯選項,例如可以對源碼編譯信息進行配置,該源碼編譯信息可以包括編譯時產(chǎn)生的源碼文件名、代碼行信息以及程序流信息;在步驟12處,產(chǎn)生源碼信息;在步驟13處,執(zhí)行測試用例;在步驟14處,產(chǎn)生語句覆蓋信息,該語句覆蓋信息例如可以包括用例運行結(jié)束后記錄的語句所在文件名、語句行號信息、語句執(zhí)行次數(shù)以及每個基本塊執(zhí)行次數(shù)等信息;在步驟15處,產(chǎn)生覆蓋率報告。該方法使用簡便,在用例運行一遍后,可以給出所有源碼的覆蓋率情況,可以給出已經(jīng)覆蓋到的源碼行和未覆蓋到的源碼行信息。現(xiàn)有技術(shù)中的覆蓋率工具通常都采用圖1所示的方法?,F(xiàn)有技術(shù)的覆蓋率統(tǒng)計方法具有覆蓋率不準確、無法自動識別測試用例設計是否全面等問題。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種測試用例覆蓋度自動識別方法及裝置,能夠提高測試用例的覆蓋度、識別準確度,并能夠快速定位沒有被測試用例覆蓋的源碼位置。為解決上述技術(shù)問題,本發(fā)明提供了一種測試用例覆蓋度自動識別方法,包括將混合源碼分離為系統(tǒng)源碼和用戶源碼;根據(jù)原始的覆蓋率信息,針對所述用戶源碼進行統(tǒng)計分析,重新計算所述用戶源碼的有效覆蓋率;將所述有效覆蓋率與預設的覆蓋率閾值進行比較,若所述有效覆蓋率不小于所述預設的覆蓋率閾值,則測試結(jié)束,否則給出告警信息。根據(jù)本發(fā)明的一個實施例,在給出告警信息時,還一并獲取所述用戶源碼中的未覆蓋有效源碼。根據(jù)本發(fā)明的一個實施例,所述原始的覆蓋率信息是通過執(zhí)行測試用例獲得的,在執(zhí)行每一測試用例后還一并記錄該測試用例的用例號,并將該測試用例的用例號以及該測試用例覆蓋的用戶源碼有效代碼行的行號信息記錄為用例源碼映射信息,所述用戶源碼有效代碼指的是所述用戶源碼中符合預定義的有效代碼行規(guī)則的代碼行。根據(jù)本發(fā)明的一個實施例,獲取所述用戶源碼中的未覆蓋有效源碼包括將當前的用戶源碼與舊用戶源碼進行比對,根據(jù)所述有效代碼行規(guī)則對比對所得的差異代碼行進行有效代碼行判斷,以獲取有效差異代碼行信息;
根據(jù)所述有效差異代碼行信息查詢所述用例源碼映射信息,若未查詢到與所述有效差異代碼行信息對應的用例號,則輸出該有效代碼行信息。根據(jù)本發(fā)明的一個實施例,所述有效覆蓋率包括有效語句覆蓋率、有效函數(shù)覆蓋率和有效分支覆蓋率,所述有效覆蓋率不小于所述預設的覆蓋率閾值指的是所述有效語句覆蓋率不小于預設的語句覆蓋率閾值、所述有效函數(shù)覆蓋率不小于預設的函數(shù)覆蓋率閾值并且所述有效分支覆蓋率不小于預設的分值覆蓋率閾值。本發(fā)明還提供了一種測試用例覆蓋度自動識別裝置,包括源碼分離模塊,將混合源碼分離為系統(tǒng)源碼和用戶源碼;有效覆蓋率重新計算模塊,根據(jù)原始的覆蓋率信息,針對所述用戶源碼進行統(tǒng)計分析,重新計算所述用戶源碼的有效覆蓋率;測試告警模塊,將所述有效覆蓋率與預設的覆蓋率閾值進行比較,若所述有效覆蓋率不小于所述預設的覆蓋率閾值,則測試結(jié)束,否則給出告警信息。根據(jù)本發(fā)明的一個實施例,所述裝置還包括未覆蓋有效源碼獲取模塊,在所述有效覆蓋率小于所述預設的覆蓋率閾值時,獲取所述用戶源碼中的未覆蓋有效源碼。根據(jù)本發(fā)明的一個實施例,所述原始的覆蓋率信息是通過執(zhí)行測試用例獲得的,所述裝置還包括用例源碼映射信息生成模塊,在執(zhí)行每一測試用例后還一并記錄該測試用例的用例號,并將該測試用例的用例號以及該測試用例覆蓋的用戶源碼有效代碼行的行號信息記錄為用例源碼映射信息,所述用戶源碼有效代碼指的是所述用戶源碼中符合預定義的有效代碼行規(guī)則的代碼行。根據(jù)本發(fā)明的一個實施例,所述未覆蓋有效源碼獲取模塊包括比對單元,將當前的用戶源碼與舊用戶源碼進行比對,根據(jù)所述有效代碼行規(guī)則對比對所得的差異代碼行進行有效代碼行判斷,以獲取有效差異代碼行信息;查詢單元,根據(jù)所述有效差異代碼行信息查詢所述用例源碼映射信息,若未查詢到與所述有效差異代碼行信息對應的用例號,則輸出該有效代碼行信息。根據(jù)本發(fā)明的一個實施例,所述有效覆蓋率包括有效語句覆蓋率、有效函數(shù)覆蓋率和有效分支覆蓋率,所述有效覆蓋率不小于所述預設的覆蓋率閾值指的是所述有效語句覆蓋率不小于預設的語句覆蓋率閾值、所述有效函數(shù)覆蓋率不小于預設的函數(shù)覆蓋率閾值并且所述有效分支覆蓋率不小于預設的分值覆蓋率閾值。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點本發(fā)明實施例的測試用例覆蓋度自動識別方法對混合源碼進行分析和分離,根據(jù)預定義的用戶源碼規(guī)則進行篩選,得到用戶源碼,并根據(jù)原始的覆蓋率信息僅針對分離得到的用戶源碼進行統(tǒng)計分析,重新計算得到用戶源碼的有效覆蓋率,之后與預設的覆蓋率閾值比較,判斷測試是否完全。由于本發(fā)明實施例針對分離得到的用戶源碼進行統(tǒng)計分析,因而覆蓋率更加準確,也有利于降低測試成本。進一步地,在測試不完全時,本發(fā)明實施例還能夠準確展示變更的代碼中有哪些有效代碼行沒有被覆蓋,從而能夠有的放矢地設計測試用例,有利于提高測試效率。
圖1示出了現(xiàn)有技術(shù)中的一種測試覆蓋率統(tǒng)計方法;圖2示出了現(xiàn)有技術(shù)中的覆蓋率統(tǒng)計方法;圖3示出了本發(fā)明實施例的覆蓋度自動識別方法;圖4和圖5示出了本發(fā)明實施例對于無測試用例的新增用戶源碼的處理方法;圖6示出了本發(fā)明實施例的覆蓋度自動識別方法的詳細流程圖;圖7示出了本發(fā)明實施例的覆蓋度自動識別裝置的結(jié)構(gòu)框圖。
具體實施方式
下面結(jié)合具體實施例和附圖對本發(fā)明作進一步說明,但不應以此限制本發(fā)明的保護范圍。參考圖2,現(xiàn)有技術(shù)中,覆蓋率22是根據(jù)混合源碼信息21得到的,該混合源碼通常包括系統(tǒng)源碼和用戶源碼,其中系統(tǒng)源碼是系統(tǒng)中固有的源代碼,其內(nèi)容相對固定;而用戶源碼是用戶自定義的源代碼,在開發(fā)過程中經(jīng)常需要變更,系統(tǒng)源碼和用戶源碼二者是相對的概念。而現(xiàn)有技術(shù)中,語句覆蓋率統(tǒng)計方法是把系統(tǒng)源碼與用戶源碼混合在一起計算的。發(fā)明人發(fā)現(xiàn),現(xiàn)有技術(shù)由于用戶定義的源碼與系統(tǒng)文件混合,因此在需要只統(tǒng)計用戶定義的源碼覆蓋率時,會導致覆蓋率不準確,降低了覆蓋率工具的指導意義;另外,采用現(xiàn)有技術(shù)的方法無法自動識別測試用例的設計是否全面,而且當增加注釋行等無效代碼時,無法實現(xiàn)自動化過濾,需要人工判斷哪些代碼行是無效代碼,效率低下。下面對本發(fā)明實施例的測試用例覆蓋度自動識別方法進行詳細說明,該方法包括將混合源碼分離為系統(tǒng)源碼和用戶源碼;根據(jù)原始的覆蓋率信息,針對所述用戶源碼進行統(tǒng)計分析,重新計算所述用戶源碼的有效覆蓋率;將所述有效覆蓋率與預設的覆蓋率閾值進行比較,若所述有效覆蓋率不小于所述預設的覆蓋率閾值,則測試結(jié)束,否則給出告
自
目 I R ο參考圖3,在32處,對混合源碼31進行分離處理,得到系統(tǒng)源碼33和用戶源碼34。分離過程例如可以根據(jù)設定的用戶源碼規(guī)則進行,比如測試人員可以輸入用戶自定義的源碼模塊的名稱,將其與系統(tǒng)源碼區(qū)分開,或者測試人員也可以輸入用戶源碼的目錄名稱,將其與系統(tǒng)源碼分離。分離之后,后續(xù)將僅對用戶源碼進行操作處理,使得后續(xù)的覆蓋率統(tǒng)計更加具有針對性和可讀性。在分離得到用戶源碼之后,還可以根據(jù)預先定義的有效代碼行規(guī)則進行篩選,將其中的有效代碼行篩選出來。其中,有效代碼行指的是應當被識別的、具有實質(zhì)功能的代碼行,例如注釋行、空行和頭文件的加載行是無效代碼行,不應當被覆蓋率工具識別,而能夠被覆蓋率工具識別的代碼行稱為有效代碼行。有效代碼行規(guī)則所定義的就是符合何種規(guī)則的代碼行可以被認定為是有效代碼行。在36處,根據(jù)用戶源碼覆蓋信息35,針對用戶源碼34重新計算用戶源碼34的有效覆蓋率。由于測試往往只關(guān)心用戶自定義的源碼,因此只計算用戶源碼的有效覆蓋率,可以提高測試判斷的準確度,也有利于提高測試效率。其中,用戶源碼覆蓋信息35是原始的覆蓋信息,例如是前一次執(zhí)行測試用例生成的覆蓋信息。有效覆蓋率可以包括語句覆蓋率、函數(shù)覆蓋率、分支覆蓋率中的一項或多項,或者還可以包括本領(lǐng)域技術(shù)人員公知的其他覆蓋率的衡量方式。作為一個非限制性的例子,本實施例中的有效覆蓋率包括語句覆蓋率、函數(shù)覆蓋率、分支覆蓋率三項。其中,有效語句覆蓋率的含義如下測試用例執(zhí)行后,至少被執(zhí)行一次的語句數(shù)量占有效代碼總行數(shù)的比例,可以用effLineCov表示,即effLineCov=(至少被執(zhí)行一次的語句數(shù)量/有效代碼行數(shù))*100% ;有效函數(shù)覆蓋率的含義如下測試用例執(zhí)行后,至少被執(zhí)行一次的函數(shù)數(shù)·量占有效函數(shù)總個數(shù)的比例,可以用effFunCov表示,即effFunCov=(覆蓋到的函數(shù)個數(shù)/有效函數(shù)總個數(shù))*100% ;有效分支覆蓋率的含義如下測試用例執(zhí)行后,會產(chǎn)生相應的分支覆蓋信息,至少被執(zhí)行一次的分支數(shù)量占有效分支總個數(shù)的比例,可以用effBranCov表示,即effBranCov=(覆蓋到的分支個數(shù)/有效分支總個數(shù))*100%。在37處,將重新計算所得的有效覆蓋率與預設的覆蓋率閾值進行比較,如果計算所得的有效覆蓋率不小于覆蓋率閾值,則測試結(jié)束,否則給出告警信息。其中,覆蓋率閾值是預先設定的,用戶可以根據(jù)項目的不斷進行對該閾值的經(jīng)驗值進行調(diào)整。作為一個非限制性的例子,在本實施例中,需要同時滿足以下三個條件才結(jié)束測試有效語句覆蓋率不小于語句覆蓋率閾值;有效函數(shù)覆蓋率不小于函數(shù)覆蓋率閾值;有效分支覆蓋率不小于分支覆蓋率閾值。其中任一條件不滿足,則給出告警信息,提示用戶當前的測試用例還不夠完善,測試并不完全。作為一個優(yōu)選的實施例,在用戶源碼的有效覆蓋率小于預設的覆蓋率閾值時,還可以獲取用戶源碼中的未覆蓋有效源碼,向用戶提示用戶源碼中測試不全面的有效代碼行。其中,獲取的未覆蓋有效源碼的相關(guān)信息可以包括相關(guān)的文件名、代碼行號等信息。參考圖4,在有效覆蓋率小于閾值時,提示測試不完全,并給出未覆蓋到的用戶源碼信息(即未覆蓋有效源碼)。在實際測試過程中,這部分往往是用戶新增的源碼,準確地給出未覆蓋有效源碼的位置,能夠減少人工閱讀代碼時間,提高測試效率。例如,對于用戶源碼新增第m行至第η行41,可以分別設計用例I至用例η對其進行測試,以對其進行覆蓋。參考圖5,圖5在圖4基礎上示出了更加詳細的處理過程。在52處,對于用戶源碼新增第m行至η行51,根據(jù)有效代碼行規(guī)則對其進行篩選,獲取其中的有效代碼行,得到新增有效代碼第m至P行,……,新增有效代碼第z至η行。之后對于每一部分的新增有效代碼,分別設計測試用例,例如用例I至用例η,以實現(xiàn)對新增代碼的覆蓋。參考圖6,圖6示出了覆蓋度自動識別方法的一個具體實例,該實例中,在602處,對混合源碼601進行分離處理,得到系統(tǒng)源碼603和用戶源碼604。分離操作可以根據(jù)預定義的用戶源碼規(guī)則進行,例如用戶可以輸入用戶源碼目錄名,將系統(tǒng)源碼與用戶自定義的用戶源碼分離開來,將混合源碼601分離為系統(tǒng)源碼603和用戶源碼604,后續(xù)將只對用戶源碼進行操作。在605處,重新計算有效覆蓋率。進一步而言,可以在612處獲取原始的覆蓋率信息,之后僅針對用戶源碼604進行統(tǒng)計分析,重新計算得到用戶源碼604的有效覆蓋率。其中,原始的覆蓋率信息的獲得方式如下在610處,修改覆蓋率編譯選項;在611處,執(zhí)行用例,從而在612處獲得原始覆蓋率信息。有效覆蓋率可以包括有效語句覆蓋率、有效函數(shù)覆蓋率和有效分支覆蓋率。在重新計算有效覆蓋率之后,在606處,將計算所得的有效覆蓋率與預設的覆蓋率閾值進行比較,如果有效覆蓋率不小于預設的覆蓋率閾值,則轉(zhuǎn)至607處,測試結(jié)束。在本實例中,需要以下三個條件同時滿足測試才結(jié)束有效語句覆蓋率不小于語句覆蓋率閾值;有效函數(shù)覆蓋率不小于函數(shù)覆蓋率閾值;有效分支覆蓋率不小于分支覆蓋率閾值。其中任一條件不滿足,則給出告警信息。在本實例中,如果重新計算的有效覆蓋率小于預設的覆蓋率閾值,還跳轉(zhuǎn)至608處,獲取有效源碼變更信息。進一步而言,在609處進行新舊源碼比對,更加具體而言,將當前的用戶源碼604與舊用戶源碼進行比對,對于比對所得的差異代碼行,根據(jù)預設的有效代碼行規(guī)則進行篩選,從而獲取有效差異代碼行信息,該有效差異代碼行信息例如可以包括行號。在獲取有效源碼變更信息之后,前進至步驟615,按照行號查詢相關(guān)用例號。具體而言,在611處執(zhí)行用例(可以是手工用例也可以是自動化用例)之后,還在613處一并記錄執(zhí)行的用例號,將測試用例的用例號以及該測試用例覆蓋的用戶源碼有效代碼行的行號信息集成記錄在用例源碼映射信息中,也就是得到用例源碼映射關(guān)系614。用例源碼映射信息中可以包括用例號信息、用戶源碼的文件名、有效代碼行的行號信息、內(nèi)部的流程信息等,其可以采用映射關(guān)系表的形式來保存,按照用例號來索引區(qū)分。在615處,按照有效差異代碼行信息的行號在用例源碼映射關(guān)系614中查詢與該行號對應的用例號,并在616處對查詢結(jié)果進行判斷,若查詢不到則表明該有效差異代碼行并未設計用例,則轉(zhuǎn)向步驟617,給出無用例的有效代碼行位置,可以和告警信息一并輸出至用戶。如果查詢到有相關(guān)的用例,則轉(zhuǎn)向步驟618,判斷是否有變更信息,如果無變更信息則前進至步驟607,結(jié)束測試;如果有變更信息,則返回至步驟608。更加具體而言,查詢相關(guān)用例的步驟可以包括1)根據(jù)獲得的有效差異代碼行信息,在用例源碼映射關(guān)系614中查詢,如果查詢到相應的用例,則表明該差異的有效代碼行已經(jīng)被覆蓋到,進入步驟2),如果查詢不到相應的用例,則進入步驟3) ;2)進入下一個有效差異代碼行信息查詢,如果沒有有效差異代碼行信息,則結(jié)束,若還有有效差異代碼行信息,則返回步驟I)繼續(xù)查詢;3)存儲沒有相應用例的有效差異代碼行信息;4)輸出沒有測試用例的有效差異代碼行信息,結(jié)束測試。參考圖7,本實施例還提供了一種測試用例覆蓋度自動識別裝置,包括源碼分離模塊71,將混合源碼分離為系統(tǒng)源碼和用戶源碼;有效覆蓋率重新計算模塊72,根據(jù)原始的覆蓋率信息,針對所述用戶源碼進行統(tǒng)計分析,重新計算所述用戶源碼的有效覆蓋率;測試告警模塊73,將所述有效覆蓋率與預設的覆蓋率閾值進行比較,若所述有效覆蓋率不小于所述預設的覆蓋率閾值,則測試結(jié)束,否則給出告警信息;未覆蓋有效源碼獲取模塊75,在所述有效覆蓋率小于所述預設的覆蓋率閾值時,獲取所述用戶源碼中的未覆蓋有效源碼;用例源碼映射信息生成模塊74,在執(zhí)行每一測試用例后還一并記錄該測試用例的用例號,并將該測試用例的用例號以及該測試用例覆蓋的用戶源碼有效代碼行的行號信息記錄為用例源碼映射信息。其中,未覆蓋有效源碼獲取模塊75可以包括比對單元,將當前的用戶源碼與舊用戶源碼進行比對,根據(jù)所述有效代碼行規(guī)則對比對所得的差異代碼行進行有效代碼行判斷,以獲取有效差異代碼行信息;查詢單元,根據(jù)所述有效差異代碼行信息查詢所述用例源碼映射信息,若未查詢到與所述有效差異代碼行信息對應的用例號,則輸出該有效代碼行信息。關(guān)于該測試用例覆蓋度自動識別裝置的工作原理和工作過程請參考以上實施例中測試用例覆蓋度自動識別方法的描述,這里不再贅述。綜上,本實施例的技術(shù)方案首先可以根據(jù)預設的覆蓋率閾值來判斷測試是否完全;其次,當測試不完全時,還可以準確展示有效變更的代碼行位置,從而可以多個角度量化判斷測試是否完全,給測試人員提供測試判斷的依據(jù)。當測試不完全時,可以準確給出變更的代碼中哪些代碼行還沒有覆蓋到,從而有的放矢地設計測試用例,提高測試效率。此外,本實施例的技術(shù)方案通過分離系統(tǒng)源碼和用戶源碼,能夠提高代碼覆蓋率的判斷準確度,從覆蓋率的各個維度來提高測試完全的準確率,并能夠準確定位到未覆蓋到的差異代碼位置。本發(fā)明雖然以較佳實施例公開如上,但其并不是用來限定本發(fā)明,任何本領(lǐng)域技術(shù)人員在不脫離本發(fā)明的精神和范圍內(nèi),都可以做出可能的變動和修改,因此本發(fā)明的保護范圍應當以本發(fā)明權(quán)利要求所界定的范圍為準。
權(quán)利要求
1.一種測試用例覆蓋度自動識別方法,其特征在于,包括 將混合源碼分離為系統(tǒng)源碼和用戶源碼; 根據(jù)原始的覆蓋率信息,針對所述用戶源碼進行統(tǒng)計分析,重新計算所述用戶源碼的有效覆蓋率; 將所述有效覆蓋率與預設的覆蓋率閾值進行比較,若所述有效覆蓋率不小于所述預設的覆蓋率閾值,則測試結(jié)束,否則給出告警信息。
2.根據(jù)權(quán)利要求2所述的測試用例覆蓋度自動識別方法,其特征在于,在給出告警信息時,還一并獲取所述用戶源碼中的未覆蓋有效源碼。
3.根據(jù)權(quán)利要求2所述的測試用例覆蓋度自動識別方法,其特征在于,所述原始的覆蓋率信息是通過執(zhí)行測試用例獲得的,在執(zhí)行每一測試用例后還一并記錄該測試用例的用例號,并將該測試用例的用例號以及該測試用例覆蓋的用戶源碼有效代碼行的行號信息記錄為用例源碼映射信息,所述用戶源碼有效代碼指的是所述用戶源碼中符合預定義的有效代碼行規(guī)則的代碼行。
4.根據(jù)權(quán)利要求3所述的測試用例覆蓋度自動識別方法,其特征在于,獲取所述用戶源碼中的未覆蓋有效源碼包括 將當前的用戶源碼與舊用戶源碼進行比對,根據(jù)所述有效代碼行規(guī)則對比對所得的差異代碼行進行有效代碼行判斷,以獲取有效差異代碼行信息; 根據(jù)所述有效差異代碼行信息查詢所述用例源碼映射信息,若未查詢到與所述有效差異代碼行信息對應的用例號,則輸出該有效代碼行信息。
5.根據(jù)權(quán)利要求1至4中任一項所述的測試用例覆蓋度自動識別方法,其特征在于,所述有效覆蓋率包括有效語句覆蓋率、有效函數(shù)覆蓋率和有效分支覆蓋率,所述有效覆蓋率不小于所述預設的覆蓋率閾值指的是所述有效語句覆蓋率不小于預設的語句覆蓋率閾值、所述有效函數(shù)覆蓋率不小于預設的函數(shù)覆蓋率閾值并且所述有效分支覆蓋率不小于預設的分值覆蓋率閾值。
6.一種測試用例覆蓋度自動識別裝置,其特征在于,包括 源碼分離模塊,將混合源碼分離為系統(tǒng)源碼和用戶源碼; 有效覆蓋率重新計算模塊,根據(jù)原始的覆蓋率信息,針對所述用戶源碼進行統(tǒng)計分析,重新計算所述用戶源碼的有效覆蓋率; 測試告警模塊,將所述有效覆蓋率與預設的覆蓋率閾值進行比較,若所述有效覆蓋率不小于所述預設的覆蓋率閾值,則測試結(jié)束,否則給出告警信息。
7.根據(jù)權(quán)利要求6所述的測試用例覆蓋度自動識別裝置,其特征在于,還包括 未覆蓋有效源碼獲取模塊,在所述有效覆蓋率小于所述預設的覆蓋率閾值時,獲取所述用戶源碼中的未覆蓋有效源碼。
8.根據(jù)權(quán)利要求7所述的測試用例覆蓋度自動識別裝置,其特征在于,所述原始的覆蓋率信息是通過執(zhí)行測試用例獲得的,所述裝置還包括 用例源碼映射信息生成模塊,在執(zhí)行每一測試用例后還一并記錄該測試用例的用例號,并將該測試用例的用例號以及該測試用例覆蓋的用戶源碼有效代碼行的行號信息記錄為用例源碼映射信息,所述用戶源碼有效代碼指的是所述用戶源碼中符合預定義的有效代碼行規(guī)則的代碼行。
9.根據(jù)權(quán)利要求8所述的測試用例覆蓋度自動識別裝置,其特征在于,所述未覆蓋有效源碼獲取模塊包括比對單元,將當前的用戶源碼與舊用戶源碼進行比對,根據(jù)所述有效代碼行規(guī)則對比對所得的差異代碼行進行有效代碼行判斷,以獲取有效差異代碼行信息;查詢單元,根據(jù)所述有效差異代碼行信息查詢所述用例源碼映射信息,若未查詢到與所述有效差異代碼行信息對應的用例號,則輸出該有效代碼行信息。
10.根據(jù)權(quán)利要求6至9中任一項所述的測試用例覆蓋度自動識別裝置,其特征在于, 所述有效覆蓋率包括有效語句覆蓋率、有效函數(shù)覆蓋率和有效分支覆蓋率,所述有效覆蓋率不小于所述預設的覆蓋率閾值指的是所述有效語句覆蓋率不小于預設的語句覆蓋率閾值、所述有效函數(shù)覆蓋率不小于預設的函數(shù)覆蓋率閾值并且所述有效分支覆蓋率不小于預設的分值覆蓋率閾值。
全文摘要
本發(fā)明提供了一種測試用例覆蓋度自動識別方法及裝置,該方法包括將混合源碼分離為系統(tǒng)源碼和用戶源碼;根據(jù)原始的覆蓋率信息,針對所述用戶源碼進行統(tǒng)計分析,重新計算所述用戶源碼的有效覆蓋率;將所述有效覆蓋率與預設的覆蓋率閾值進行比較,若所述有效覆蓋率不小于所述預設的覆蓋率閾值,則測試結(jié)束,否則給出告警信息。本發(fā)明能夠提高測試用例的覆蓋度、識別準確度,并能夠快速定位沒有被測試用例覆蓋的源碼位置。
文檔編號G06F11/36GK103019933SQ201210492170
公開日2013年4月3日 申請日期2012年11月27日 優(yōu)先權(quán)日2012年11月27日
發(fā)明者洪珂, 陳明師, 呂士表 申請人:網(wǎng)宿科技股份有限公司