CN113051181B 確定增量測(cè)試覆蓋信息的方法、裝置、設(shè)備和存儲(chǔ)介質(zhì)(騰訊科技(深圳)有限公司)_第1頁
CN113051181B 確定增量測(cè)試覆蓋信息的方法、裝置、設(shè)備和存儲(chǔ)介質(zhì)(騰訊科技(深圳)有限公司)_第2頁
CN113051181B 確定增量測(cè)試覆蓋信息的方法、裝置、設(shè)備和存儲(chǔ)介質(zhì)(騰訊科技(深圳)有限公司)_第3頁
CN113051181B 確定增量測(cè)試覆蓋信息的方法、裝置、設(shè)備和存儲(chǔ)介質(zhì)(騰訊科技(深圳)有限公司)_第4頁
CN113051181B 確定增量測(cè)試覆蓋信息的方法、裝置、設(shè)備和存儲(chǔ)介質(zhì)(騰訊科技(深圳)有限公司)_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

(19)國家知識(shí)產(chǎn)權(quán)局(12)發(fā)明專利(10)授權(quán)公告號(hào)CN113051181B(65)同一申請(qǐng)的已公布的文獻(xiàn)號(hào)(73)專利權(quán)人騰訊科技(深圳)有限公司科技中一路騰訊大廈35層審查員吳銀娥(74)專利代理機(jī)構(gòu)深圳市深佳知識(shí)產(chǎn)權(quán)代理事務(wù)所(普通合伙)44285專利代理師王兆林確定增量測(cè)試覆蓋信息的方法、裝置、設(shè)備和存儲(chǔ)介質(zhì)本申請(qǐng)?zhí)峁┝艘环N確定增量測(cè)試覆蓋信息定目標(biāo)代碼版本文件相對(duì)原代碼版本文件的增量代碼信息;獲得代碼編輯編譯器測(cè)試目標(biāo)代碼版本文件所得到的至少一個(gè)測(cè)試結(jié)果文件,至少一個(gè)測(cè)試結(jié)果文件為采用設(shè)定協(xié)議格式的文件;調(diào)用并運(yùn)行文件解析程序,并通過文件解析程序從至少一個(gè)測(cè)試結(jié)果文件中解析出全量測(cè)試覆蓋信息,文件解析程序?yàn)橛糜诮馕鲈O(shè)定協(xié)議格式的文件的解析程序;通過文件解析程序依據(jù)增量代碼信息以及全量測(cè)試覆蓋信息,確定出目標(biāo)代碼版本文件中增量測(cè)試覆蓋信息。本申請(qǐng)的方案確定目標(biāo)代碼版本文件相對(duì)原代碼版本文件的增2確定待測(cè)試的目標(biāo)代碼版本文件以及原代碼版本文件,所述目標(biāo)代碼版本文件為對(duì)所述原代碼版本文件進(jìn)行代碼更新后得到的;確定所述目標(biāo)代碼版本文件相對(duì)所述原代碼版本文件的增量代碼信息,所述增量代碼信息包括:至少一條增量代碼的信息;獲得代碼編輯編譯器測(cè)試所述目標(biāo)代碼版本文件所得到的至少一個(gè)測(cè)試結(jié)果文件,所述至少一個(gè)測(cè)試結(jié)果文件為采用與所述代碼編輯編譯器自身對(duì)應(yīng)的設(shè)定協(xié)議格式的文件;所述代碼編輯編譯器中集成有編譯器,所述編譯器中包括用于解析所述設(shè)定協(xié)議格式的文件以得到全量測(cè)試覆蓋信息的原始解析程序;調(diào)用并運(yùn)行文件解析程序,并通過所述文件解析程序解析出所述至少一個(gè)測(cè)試結(jié)果文件中包含的全量測(cè)試覆蓋信息,所述全量測(cè)試覆蓋信息包括所述目標(biāo)代碼版本文件中被測(cè)試的至少一條已測(cè)試代碼的信息;所述文件解析程序?yàn)橥ㄟ^在所述原始解析程序中增設(shè)增量覆蓋子程序得到的程序;通過所述增量覆蓋子程序依據(jù)所述至少一條增量代碼的信息以及所述全量測(cè)試覆蓋信息中所述至少一條已測(cè)試代碼的信息,確定出所述目標(biāo)代碼版本文件中增量代碼的測(cè)試覆蓋信息。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述獲得代碼編輯編譯器測(cè)試所述目標(biāo)代碼版本文件所得到的至少一個(gè)測(cè)試結(jié)果文件之前,還包括:向所述代碼編輯編譯器發(fā)送測(cè)試命令,所述測(cè)試命令用于指示所述代碼編輯編譯器測(cè)試所述目標(biāo)代碼版本文件并輸出所述目標(biāo)代碼版本文件的測(cè)試結(jié)果文件。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述確定所述目標(biāo)代碼版本文件相對(duì)所述原代碼版本文件的增量代碼信息,包括:調(diào)用比較程序比對(duì)所述目標(biāo)代碼版本文件與所述原代碼版本文件,得到所述比較程序輸出的代碼變更信息,所述代碼變更信息包括所述目標(biāo)代碼版本文件相對(duì)所述原代碼版本文件存在差異的至少一條差異代碼的信息;從所述至少一條差異代碼的信息中提取出屬于增量代碼的增量代碼信息。4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述確定待測(cè)試的目標(biāo)代碼版本文件以及獲得待測(cè)試的目標(biāo)代碼版本文件的第一文件標(biāo)識(shí)以及原代碼版本文件的第二文件標(biāo)識(shí),以確定待測(cè)試的目標(biāo)代碼版本文件以及原代碼版本文件;所述調(diào)用比較程序比對(duì)所述目標(biāo)代碼版本文件與所述原代碼版本文件,包括:調(diào)用并運(yùn)行增量分析程序,所述增量分析程序配置有配置文件,所述配置文件中配置有代碼路徑信息,所述代碼路徑信息用于指示各代碼版本文件的統(tǒng)一存儲(chǔ)路徑;通過所述增量分析程序調(diào)用所述比較程序,并將所述第一文件標(biāo)識(shí)、第二文件標(biāo)識(shí)和所述代碼路徑信息,均作為輸入?yún)?shù)傳輸給所述比較程序,以使得所述比較程序基于所述代碼路徑信息,獲得并比對(duì)所述第一文件標(biāo)識(shí)對(duì)應(yīng)的目標(biāo)代碼版本文件與所述第二文件標(biāo)識(shí)對(duì)應(yīng)的原代碼版本文件,得到所述代碼變更信息;所述從所述至少一條差異代碼的信息中提取出屬于增量代碼的增量代碼信息,包括:通過所述增量分析程序從所述至少一條差異代碼的信息中提取出屬于增量代碼的增3量代碼信息。5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述增量分析程序配置的配置文件中還配置有增量代碼信息的輸出路徑;在所述通過所述增量分析程序從所述至少一條差異代碼的信息中提取出屬于增量代通過所述增量分析程序?qū)⑺鲈隽看a信息轉(zhuǎn)換為符合指定編輯語言對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)格式,并存儲(chǔ)到所述輸出路徑對(duì)應(yīng)的存儲(chǔ)空間;在所述通過所述增量覆蓋子程序依據(jù)所述至少一條增量代碼的信息以及所述全量測(cè)試覆蓋信息中所述至少一條已測(cè)試代碼的信息,確定出所述目標(biāo)代碼版本文件中增量代碼向所述文件解析程序傳輸所述增量代碼信息對(duì)應(yīng)的所述輸出路徑,通過所述文件解析程序從所述輸出路徑對(duì)應(yīng)的存儲(chǔ)空間獲得所述增量代碼信息;通過所述文件解析程序?qū)⑺鲈隽看a信息由所述符合指定編輯語言對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)格式,轉(zhuǎn)換為所述文件解析程序設(shè)定的結(jié)構(gòu)體形式的數(shù)據(jù)。6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述目標(biāo)代碼版本文件包括至少一個(gè)代碼文件,每個(gè)代碼文件包括至少一條代碼;所述增量代碼的信息包括:增量代碼所屬的代碼文件的文件名以及所述增量代碼的行所述已測(cè)試代碼的信息包括:已測(cè)試代碼所屬的代碼文件的文件名以及所述已測(cè)試代碼的行號(hào);所述通過所述增量覆蓋子程序依據(jù)所述至少一條增量代碼的信息以及所述全量測(cè)試覆蓋信息中所述至少一條已測(cè)試代碼的信息,確定出所述目標(biāo)代碼版本文件中增量代碼的基于所述增量代碼信息中各條增量代碼所屬代碼文件的文件名和各條增量代碼的行號(hào),以及全量測(cè)試覆蓋信息中各條已測(cè)試代碼所屬的代碼文件的文件名和各條已測(cè)試代碼的行號(hào),通過所述增量覆蓋子程序分別確定各代碼文件中增量代碼的總數(shù)和被測(cè)試覆蓋的增量代碼的數(shù)量;基于各代碼文件中增量代碼的總數(shù)以及被測(cè)試的增量代碼的數(shù)量,通過所述文件解析程序確定增量代碼的測(cè)試覆蓋率。文件確定裝置,用于確定待測(cè)試的目標(biāo)代碼版本文件以及原代碼版本文件,所述目標(biāo)代碼版本文件為對(duì)所述原代碼版本文件進(jìn)行代碼更新后得到的;增量代碼確定單元,用于確定所述目標(biāo)代碼版本文件相對(duì)所述原代碼版本文件的增量代碼信息,所述增量代碼信息包括:至少一條增量代碼的信息;測(cè)試結(jié)果獲得單元,用于獲得代碼編輯編譯器測(cè)試所述目標(biāo)代碼版本文件所得到的至少一個(gè)測(cè)試結(jié)果文件,所述至少一個(gè)測(cè)試結(jié)果文件為采用與所述代碼編輯編譯器自身對(duì)應(yīng)的設(shè)定協(xié)議格式的文件;所述代碼編輯編譯器中集成有編譯器,所述編譯器中包括用于解析所述設(shè)定協(xié)議格式的文件以得到全量測(cè)試覆蓋信息的原始解析程序;全量覆蓋確定單元,用于調(diào)用并運(yùn)行文件解析程序,并通過所述文件解析程序解析出4所述至少一個(gè)測(cè)試結(jié)果文件中包含的全量測(cè)試覆蓋信息,所述全量測(cè)試覆蓋信息包括所述目標(biāo)代碼版本文件中被測(cè)試的至少一條已測(cè)試代碼的信息;所述文件解析程序?yàn)橥ㄟ^在所述原始解析程序中增設(shè)增量覆蓋子程序得到的程序;增量覆蓋確定單元,用于通過所述增量覆蓋子程序依據(jù)所述至少一條增量代碼的信息以及所述全量測(cè)試覆蓋信息中所述至少一條已測(cè)試代碼的信息,確定出所述目標(biāo)代碼版本文件中增量代碼的測(cè)試覆蓋信息。測(cè)試指示單元,用于在所述獲得代碼編輯編譯器測(cè)試所述目標(biāo)代碼版本文件所得到的至少一個(gè)測(cè)試結(jié)果文件之前,向所述代碼編輯編譯器發(fā)送測(cè)試命令,所述測(cè)試命令用于指示所述代碼編輯編譯器測(cè)試所述目標(biāo)代碼版本文件并輸出所述目標(biāo)代碼版本文件的測(cè)試結(jié)果文件。文件比較單元,用于調(diào)用比較程序比對(duì)所述目標(biāo)代碼版本文件與所述原代碼版本文件,得到所述比較程序輸出的代碼變更信息,所述代碼變更信息包括所述目標(biāo)代碼版本文件相對(duì)所述原代碼版本文件存在差異的至少一條差異代碼的信息;增量提取單元,用于從所述至少一條差異代碼的信息中提取出屬于增量代碼的增量代碼信息。10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述文件確定裝置,具體用于獲得待測(cè)試的目標(biāo)代碼版本文件的第一文件標(biāo)識(shí)以及原代碼版本文件的第二文件標(biāo)識(shí),以確定待測(cè)試的目標(biāo)代碼版本文件以及原代碼版本文件;分析程序調(diào)用單元,用于調(diào)用并運(yùn)行增量分析程序,所述增量分析程序配置有配置文件,所述配置文件中配置有代碼路徑信息,所述代碼路徑信息用于指示各代碼版本文件的統(tǒng)一存儲(chǔ)路徑;比較程序執(zhí)行單元,用于通過所述增量分析程序調(diào)用所述比較程序,并將所述第一文件標(biāo)識(shí)、第二文件標(biāo)識(shí)和所述代碼路徑信息,均作為輸入?yún)?shù)傳輸給所述比較程序,以使得所述比較程序基于所述代碼路徑信息,獲得并比對(duì)所述第一文件標(biāo)識(shí)對(duì)應(yīng)的目標(biāo)代碼版本文件與所述第二文件標(biāo)識(shí)對(duì)應(yīng)的原代碼版本文件,得到所述代碼變更信息;所述增量提取單元,具體用于通過所述增量分析程序從所述至少一條差異代碼的信息中提取出屬于增量代碼的增量代碼信息。11.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述增量分析程序配置的配置文件中還配置有增量代碼信息的輸出路徑;所述裝置還包括:信息存儲(chǔ)單元,用于所述增量提取單元提取出增量代碼信息之后,通過所述增量分析程序?qū)⑺鲈隽看a信息轉(zhuǎn)換為符合指定編輯語言對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)格式,并存儲(chǔ)到所述輸出路徑對(duì)應(yīng)的存儲(chǔ)空間;信息獲取單元,用于在所述增量覆蓋確定單元確定增量代碼的測(cè)試覆蓋信息之前,向所述文件解析程序傳輸所述增量代碼信息對(duì)應(yīng)的所述輸出路徑,通過所述文件解析程序從所述輸出路徑對(duì)應(yīng)的存儲(chǔ)空間獲得所述增量代碼信息;格式轉(zhuǎn)換單元,用于通過所述文件解析程序?qū)⑺鲈隽看a信息由所述符合指定編輯5語言對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)格式,轉(zhuǎn)換為所述文件解析程序設(shè)定的結(jié)構(gòu)體形式的數(shù)據(jù)。12.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述目標(biāo)代碼版本文件包括至少一個(gè)代碼文件,每個(gè)代碼文件包括至少一條代碼;所述增量代碼的信息包括:增量代碼所屬的代碼文件的文件名以及所述增量代碼的行所述已測(cè)試代碼的信息包括:已測(cè)試代碼所屬的代碼文件的文件名以及所述已測(cè)試代碼的行號(hào);數(shù)量確定單元,用于基于所述增量代碼信息中各條增量代碼所屬代碼文件的文件名和各條增量代碼的行號(hào),以及全量測(cè)試覆蓋信息中各條已測(cè)試代碼所屬的代碼文件的文件名和各條已測(cè)試代碼的行號(hào),通過所述增量覆蓋子程序分別確定各代碼文件中增量代碼的總數(shù)和被測(cè)試覆蓋的增量代碼的數(shù)量;覆蓋率確定單元,用于基于各代碼文件中增量代碼的總數(shù)以及被測(cè)試的增量代碼的數(shù)量,通過所述文件解析程序確定增量代碼的測(cè)試覆蓋率。所述處理器用于執(zhí)行所述程序,所述程序被執(zhí)行時(shí),具體用于實(shí)現(xiàn)如權(quán)利要求1至6任意一項(xiàng)所述的確定增量測(cè)試覆蓋信息的方法。14.一種存儲(chǔ)介質(zhì),其特征在于,用于存儲(chǔ)程序,所述程序被執(zhí)行時(shí),用于實(shí)現(xiàn)如權(quán)利要求1至6任意一項(xiàng)所述的確定增量測(cè)試覆蓋信息的方法。15.一種計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述計(jì)算機(jī)程序產(chǎn)品包括計(jì)算機(jī)指令,所述計(jì)算機(jī)指令存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中;計(jì)算機(jī)設(shè)備的處理器從所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)讀取所述計(jì)算機(jī)指令,所述處理器執(zhí)行所述計(jì)算機(jī)指令,使得所述計(jì)算機(jī)設(shè)備執(zhí)行如權(quán)利要求1至6任意一項(xiàng)所述的確定增量測(cè)試覆蓋信息的方法。6技術(shù)領(lǐng)域[0001]本申請(qǐng)涉及測(cè)試技術(shù)領(lǐng)域,尤其涉及一種確定增量測(cè)試覆蓋信息的方法、裝置、設(shè)備和存儲(chǔ)介質(zhì)。背景技術(shù)[0002]為了保證開發(fā)出的軟件的軟件質(zhì)量,需要對(duì)軟件進(jìn)行單元測(cè)試。而為了對(duì)測(cè)試情況進(jìn)行評(píng)估,就需要軟件測(cè)試的代碼測(cè)試覆蓋信息。[0003]代碼測(cè)試覆蓋信息是評(píng)估代碼測(cè)試好壞的一項(xiàng)重要依據(jù)。如,代碼測(cè)試覆蓋信息可以為代碼測(cè)試覆蓋率,表示軟件的源代碼被測(cè)試的比例或者程度由于軟件版本會(huì)不斷更新,而對(duì)于更新后的軟件版本的測(cè)試,人們可能會(huì)更為關(guān)注新增代碼的測(cè)試覆蓋信息。因此,如何能夠獲得軟件版本中新增代碼的測(cè)試覆蓋信息是本領(lǐng)域技術(shù)人員需要解決的技術(shù)發(fā)明內(nèi)容[0004]有鑒于此,本申請(qǐng)?zhí)峁┝艘环N確定增量測(cè)試覆蓋信息的方法、裝置、設(shè)備和存儲(chǔ)介質(zhì),以實(shí)現(xiàn)獲得軟件版本文件中增量代碼的測(cè)試覆蓋信息。[0005]為實(shí)現(xiàn)上述目的,本申請(qǐng)?zhí)峁┝巳缦录夹g(shù)方案:[0007]確定待測(cè)試的目標(biāo)代碼版本文件以及原代碼版本文件,所述目標(biāo)代碼版本文件為對(duì)所述原代碼版本文件進(jìn)行代碼更新后得到的;[0008]確定所述目標(biāo)代碼版本文件相對(duì)所述原代碼版本文件的增量代碼信息,所述增量代碼信息包括:至少一條增量代碼的信息;[0009]獲得代碼編輯編譯器測(cè)試所述目標(biāo)代碼版本文件所得到的至少一個(gè)測(cè)試結(jié)果文件,所述至少一個(gè)測(cè)試結(jié)果文件為采用設(shè)定協(xié)議格式的文件;[0010]調(diào)用并運(yùn)行文件解析程序,并通過所述文件解析程序解析出所述至少一個(gè)測(cè)試結(jié)果文件中包含的全量測(cè)試覆蓋信息,所述全量測(cè)試覆蓋信息包括所述目標(biāo)代碼版本文件中被測(cè)試的至少一條已測(cè)試代碼的信息,所述文件解析程序?yàn)橛糜诮馕鏊鲈O(shè)定協(xié)議格式的文件的解析程序;[0011]通過所述文件解析程序依據(jù)所述至少一條增量代碼的信息以及所述全量測(cè)試覆蓋信息中所述至少一條已測(cè)試代碼的信息,確定出所述目標(biāo)代碼版本文件中增量代碼的測(cè)試覆蓋信息。[0012]在一種可能的實(shí)現(xiàn)方式中,所述代碼編輯編譯器中集成有編譯器,所述編譯器中包括用于解析所述設(shè)定協(xié)議格式的文件的原始解析程序;[0013]所述文件解析程序?yàn)橥ㄟ^在所述原始解析程序中增設(shè)增量覆蓋子程序得到的程[0014]所述通過所述文件解析程序依據(jù)所述至少一條增量代碼的信息以及所述全量測(cè)7試覆蓋信息中所述至少一條已測(cè)試代碼的信息,確定出所述目標(biāo)代碼版本文件中增量代碼[0015]通過所述增量覆蓋子程序依據(jù)所述至少一條增量代碼的信息以及所述全量測(cè)試覆蓋信息中所述至少一條已測(cè)試代碼的信息,確定出所述目標(biāo)代碼版本文件中增量代碼的測(cè)試覆蓋信息。[0016]在又一種可能的實(shí)現(xiàn)方式中,所述確定所述目標(biāo)代碼版本文件相對(duì)所述原代碼版[0017]調(diào)用比較程序比對(duì)所述目標(biāo)代碼版本文件與所述原代碼版本文件,得到所述比較程序輸出的代碼變更信息,所述代碼變更信息包括所述目標(biāo)代碼版本文件相對(duì)所述原代碼版本文件存在差異的至少一條差異代碼的信息;[0018]從所述至少一條差異代碼的信息中提取出屬于增量代碼的增量代碼信息。[0019]在又一種可能的實(shí)現(xiàn)方式中,所述確定待測(cè)試的目標(biāo)代碼版本文件以及原代碼版[0020]獲得待測(cè)試的目標(biāo)代碼版本文件的第一文件標(biāo)識(shí)以及原代碼版本文件的第二文件標(biāo)識(shí),以確定待測(cè)試的目標(biāo)代碼版本文件以及原代碼版本文件;[0021]所述調(diào)用比較程序比對(duì)所述目標(biāo)代碼版本文件與所述原代碼版本文件,包括:[0022]調(diào)用并運(yùn)行增量分析程序,所述增量分析程序配置有配置文件,所述配置文件中配置有代碼路徑信息,所述代碼路徑信息用于指示各代碼版本文件的統(tǒng)一存儲(chǔ)路徑;[0023]通過所述增量分析程序調(diào)用所述比較程序,并將所述第一文件標(biāo)識(shí)、第二文件標(biāo)識(shí)和所述代碼路徑信息,均作為輸入?yún)?shù)傳輸給所述比較程序,以使得所述比較程序基于所述代碼路徑信息,獲得并比對(duì)所述第一文件標(biāo)識(shí)對(duì)應(yīng)的目標(biāo)代碼版本文件與所述第二文件標(biāo)識(shí)對(duì)應(yīng)的原代碼版本文件,得到所述代碼變更信息;[0024]所述從所述至少一條差異代碼的信息中提取出屬于增量代碼的增量代碼信息,包[0025]通過所述增量分析程序從所述至少一條差異代碼的信息中提取出屬于增量代碼的增量代碼信息。[0026]又一方面,本申請(qǐng)還提供了一種確定增量測(cè)試覆蓋信息的裝置,包括:[0027]文件確定裝置,用于確定待測(cè)試的目標(biāo)代碼版本文件以及原代碼版本文件,所述目標(biāo)代碼版本文件為對(duì)所述原代碼版本文件進(jìn)行代碼更新后得到的;[0028]增量代碼確定單元,用于確定所述目標(biāo)代碼版本文件相對(duì)所述原代碼版本文件的增量代碼信息,所述增量代碼信息包括:至少一條增量代碼的信息;[0029]測(cè)試結(jié)果獲得單元,用于獲得代碼編輯編譯器測(cè)試所述目標(biāo)代碼版本文件所得到的至少一個(gè)測(cè)試結(jié)果文件,所述至少一個(gè)測(cè)試結(jié)果文件為采用設(shè)定協(xié)議格式的文件;[0030]全量覆蓋確定單元,用于調(diào)用并運(yùn)行文件解析程序,并通過所述文件解析程序解析出所述至少一個(gè)測(cè)試結(jié)果文件中包含的全量測(cè)試覆蓋信息,所述全量測(cè)試覆蓋信息包括所述目標(biāo)代碼版本文件中被測(cè)試的至少一條已測(cè)試代碼的信息,所述文件解析程序?yàn)橛糜诮馕鏊鲈O(shè)定協(xié)議格式的文件的解析程序;[0031]增量覆蓋確定單元,用于通過所述文件解析程序依據(jù)所述至少一條增量代碼的信息以及所述全量測(cè)試覆蓋信息中所述至少一條已測(cè)試代碼的信息,確定出所述目標(biāo)代碼版8本文件中增量代碼的測(cè)試覆蓋信息。[0032]又一方面,本申請(qǐng)還提供了一種計(jì)算機(jī)設(shè)備,包括存儲(chǔ)器和處理器;[0033]其中,所述存儲(chǔ)器用于存儲(chǔ)程序;[0034]所述處理器用于執(zhí)行所述程序,所述程序被執(zhí)行時(shí),具體用于實(shí)現(xiàn)如上任一項(xiàng)所述的確定增量測(cè)試覆蓋信息的方法。[0035]又一方面,本申請(qǐng)還提供了一種存儲(chǔ)介質(zhì),用于存儲(chǔ)程序,所述程序被執(zhí)行時(shí),用于實(shí)現(xiàn)如上任一項(xiàng)所述的確定增量測(cè)試覆蓋信息的方法。[0036]由以上內(nèi)容可知,基于代碼編輯編譯器能夠測(cè)試目標(biāo)代碼版本文件并能夠輸出包含全量測(cè)試覆蓋信息的至少一個(gè)測(cè)試結(jié)果文件這一特性,本申請(qǐng)可以獲得代碼編輯編譯器測(cè)試目標(biāo)代碼版本文件得到的至少一個(gè)測(cè)試結(jié)果文件。由于至少一個(gè)測(cè)試結(jié)果文件的文件格式為代碼編輯編譯器中設(shè)定協(xié)議格式,因此,通過調(diào)用并運(yùn)行預(yù)置的支持解析該種設(shè)定協(xié)議格式文件的文件解析程序,便可以從該至少一個(gè)測(cè)試結(jié)果文件中解析出該目標(biāo)代碼版本文件的全量測(cè)試覆蓋信息。在此基礎(chǔ)上,確定出目標(biāo)代碼版本文件相對(duì)原代碼版本文件的至少一條增量代碼的信息,便可以結(jié)合至少一條增量代碼的信息以及全量測(cè)試覆蓋信息中被測(cè)試的各條代碼的信息,確定出增量代碼的測(cè)試覆蓋信息,從而實(shí)現(xiàn)了利用代碼編輯編譯器測(cè)試得到的全量測(cè)試覆蓋信息,較為便捷的確定出增量代碼的測(cè)試覆蓋信息。附圖說明[0037]為了更清楚地說明本申請(qǐng)實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請(qǐng)的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。[0038]圖1示出了本申請(qǐng)所適用的一種系統(tǒng)架構(gòu)示意圖;[0040]圖3示出了本申請(qǐng)實(shí)施例提供的確定增量測(cè)試覆蓋信息的方法的又一種流程示意[0041]圖4示出了本申請(qǐng)實(shí)施例提供的增量分析程序確定增量代碼信息的一種原理示意[0042]圖5示出了本申請(qǐng)?zhí)峁┑拇_定增量測(cè)試覆蓋信息的方法的一種實(shí)現(xiàn)原理框架示意[0043]圖6示出了本申請(qǐng)實(shí)施例提供的確定增量測(cè)試覆蓋信息的方法應(yīng)用于一具體應(yīng)用場(chǎng)景的流程示意圖;[0044]圖7示出了本申請(qǐng)實(shí)施例提供的文件解析程序在一具體應(yīng)用場(chǎng)景中的功能模塊組成示意圖;[0045]圖8示出了本申請(qǐng)實(shí)施例提供的確定增量測(cè)試覆蓋信息的裝置的一種組成結(jié)構(gòu)示意圖;[0046]圖9示出了本申請(qǐng)實(shí)施例提供的計(jì)算機(jī)設(shè)備的一種組成結(jié)構(gòu)示意圖。9具體實(shí)施方式[0047]本申請(qǐng)的方案適用于任意需要確定軟件版本中增量代碼被測(cè)試覆蓋的測(cè)試覆蓋信息的計(jì)算機(jī)設(shè)備或者多臺(tái)計(jì)算機(jī)設(shè)備組成平臺(tái)。[0048]為了便于理解,下面先對(duì)本申請(qǐng)的方案所適用的系統(tǒng)組成架構(gòu)進(jìn)行說明。[0049]在本申請(qǐng)中,確定增量測(cè)試覆蓋信息的系統(tǒng)可以包括至少一臺(tái)計(jì)算機(jī)設(shè)備,該至少一臺(tái)計(jì)算機(jī)設(shè)備中運(yùn)行有代碼編輯編譯器以及本申請(qǐng)中用于確定增量測(cè)試覆蓋信息的[0050]其中,該代碼編輯編譯器可以對(duì)軟件版本文件進(jìn)行單元測(cè)試,并得到單元測(cè)試相關(guān)的測(cè)試結(jié)果,如測(cè)試結(jié)果中至少包括軟件版本文件中代碼的全量測(cè)試覆蓋信息,全量測(cè)試覆蓋信息包括軟件版本文件中被測(cè)試執(zhí)行的各條代碼的信息,如,文件代碼在該軟件版本文件中所屬的具體文件的文件名以及行號(hào)等。[0051]在本申請(qǐng)中,代碼編輯編譯器和增量確定程序可以運(yùn)行于同一計(jì)算機(jī)設(shè)備或者平臺(tái),也可以是運(yùn)行于不同計(jì)算機(jī)設(shè)備或者平臺(tái)。[0052]下面以一種情況為例說明,如圖1所示,其示出了本申請(qǐng)的方案所適用的系統(tǒng)的一種組成結(jié)構(gòu)示意圖。[0053]在圖1所示的系統(tǒng)中包括至少一臺(tái)計(jì)算機(jī)設(shè)備101組成的測(cè)試平臺(tái)102。[0054]該測(cè)試平臺(tái)運(yùn)行有代碼編輯編譯器和主控程序。[0055]如,代碼編輯編譯器可以運(yùn)行在測(cè)試平臺(tái)的部分或者全部計(jì)算機(jī)設(shè)備中;[0056]而主控程序可以運(yùn)行在測(cè)試平臺(tái)的某一臺(tái)或者至少部分計(jì)算機(jī)設(shè)備中。[0057]在一種可選方式中,本申請(qǐng)的測(cè)試平臺(tái)還可以包括至少一臺(tái)存儲(chǔ)設(shè)備(圖1中未示出),存儲(chǔ)設(shè)備可以存儲(chǔ)代碼編輯編譯器以及主控程序運(yùn)行所產(chǎn)生的數(shù)據(jù),如,存儲(chǔ)設(shè)備可以存儲(chǔ)代碼編輯編譯器對(duì)軟件版本文件進(jìn)行單元測(cè)試所得到的測(cè)試結(jié)果信息等,還可以存儲(chǔ)主控程序確定增量覆蓋信息過程中所產(chǎn)生的中間數(shù)據(jù)等。[0058]該存儲(chǔ)設(shè)備還可以用于存儲(chǔ)測(cè)試平臺(tái)所涉及到的各個(gè)軟件版本的軟件版本文件,軟件版本文件包括至少一個(gè)代碼文件,每個(gè)代碼文件包括至少一條(或者說至少一行)代碼。[0059]本申請(qǐng)中存儲(chǔ)設(shè)備存儲(chǔ)各種數(shù)據(jù)的具體方式可以有多種可能。[0060]如,在一種可能的實(shí)現(xiàn)方式中,該至少一臺(tái)存儲(chǔ)設(shè)備可以采用區(qū)塊鏈形式來存儲(chǔ)[0061]其中,區(qū)塊鏈?zhǔn)欠植际綌?shù)據(jù)存儲(chǔ)、點(diǎn)對(duì)點(diǎn)傳輸、共識(shí)機(jī)制、加密算法等計(jì)算機(jī)技術(shù)的新型應(yīng)用模式。區(qū)塊鏈(Blockchain),本質(zhì)上是一個(gè)去中心化的數(shù)據(jù)庫,是一串使用密碼學(xué)方法相關(guān)聯(lián)產(chǎn)生的數(shù)據(jù)塊,每一個(gè)數(shù)據(jù)塊中包含了一批次網(wǎng)絡(luò)交易的信息,用于驗(yàn)證其信息的有效性(防偽)和生成下一個(gè)區(qū)塊。區(qū)塊鏈可以包括區(qū)塊鏈底層平臺(tái)、平臺(tái)產(chǎn)品服務(wù)層以及應(yīng)用服務(wù)層。[0062]區(qū)塊鏈底層平臺(tái)可以包括用戶管理、基礎(chǔ)服務(wù)、智能合約以及運(yùn)營監(jiān)管等處理模塊。其中,用戶管理模塊負(fù)責(zé)所有區(qū)塊鏈參與者的身份信息管理,包括維護(hù)公私鑰生成(賬戶管理)、密鑰管理以及用戶真實(shí)身份和區(qū)塊鏈地址對(duì)應(yīng)關(guān)系維護(hù)(權(quán)限管理)等,并且在授權(quán)的情況下,監(jiān)管和審計(jì)某些真實(shí)身份的交易情況,提供風(fēng)險(xiǎn)控制的規(guī)則配置(風(fēng)控審計(jì));基礎(chǔ)服務(wù)模塊部署在所有區(qū)塊鏈節(jié)點(diǎn)設(shè)備上,用來驗(yàn)證業(yè)務(wù)請(qǐng)求的有效性,并對(duì)有效請(qǐng)求完成共識(shí)后記錄到存儲(chǔ)上,對(duì)于一個(gè)新的業(yè)務(wù)請(qǐng)求,基礎(chǔ)服務(wù)先對(duì)接口適配解析和鑒權(quán)處理(接口適配),然后通過共識(shí)算法將業(yè)務(wù)信息加密(共識(shí)管理),在加密之后完整一致的傳輸至共享賬本上(網(wǎng)絡(luò)通信),并進(jìn)行記錄存儲(chǔ);智能合約模塊負(fù)責(zé)合約的注冊(cè)發(fā)行以及合約觸發(fā)和合約執(zhí)行,開發(fā)人員可以通過某種編程語言定義合約邏輯,發(fā)布到區(qū)塊鏈上(合約注冊(cè)),根據(jù)合約條款的邏輯,調(diào)用密鑰或者其它的事件觸發(fā)執(zhí)行,完成合約邏輯,同時(shí)還提供對(duì)合約升級(jí)注銷的功能;運(yùn)營監(jiān)管模塊主要負(fù)責(zé)產(chǎn)品發(fā)布過程中的部署、配置的修改、合節(jié)點(diǎn)設(shè)備健康狀態(tài)等。[0063]可以理解的是,圖1中代碼編輯編譯器和主控程序運(yùn)行于同一測(cè)試平臺(tái)為例說明,如果代碼編輯編譯器和主控程序運(yùn)行不同平臺(tái),但是這兩個(gè)平臺(tái)之間可以通信也同樣適用于本實(shí)施例。[0064]下面結(jié)合流程圖對(duì)本申請(qǐng)中確定增量測(cè)試覆蓋信息的方法進(jìn)行介紹。[0065]如圖2所示,其示出了本申請(qǐng)一種確定增量測(cè)試覆蓋信息的方法的一種流程示意圖,本實(shí)施例的方法可以應(yīng)用于一臺(tái)計(jì)算機(jī)設(shè)備或者多臺(tái)計(jì)算機(jī)設(shè)備組成的測(cè)試平臺(tái)。[0066]本實(shí)施例的方法可以包括:[0067]S201,確定待測(cè)試的目標(biāo)代碼版本文件以及原代碼版本文件。[0068]其中,目標(biāo)代碼版本文件為對(duì)原代碼版本文件進(jìn)行代碼更新后得到的代碼版本文件。其中,此處僅僅是為了便于區(qū)分,將需要進(jìn)行單元測(cè)試的軟件版本文件稱為目標(biāo)代碼版本文件,而將目標(biāo)代碼版本文件之前的代碼版本稱為原代碼版本文件。[0069]其中,目標(biāo)代碼版本文件可以包括多行代碼。在實(shí)際應(yīng)用中,目標(biāo)代碼版本文件可以包括至少一個(gè)代碼文件(也可以稱為子代碼文件),而每個(gè)代碼文件中又分別包括一條或者多條(或者稱為行)代碼。類似的,原版本文件可以包括至少一個(gè)代碼文件,且每個(gè)代碼文件可以包括至少一條(或者稱為行)代碼。[0070]在一種可能的情況中,測(cè)試平臺(tái)可以獲得用戶輸入的增量測(cè)試指令,該增量測(cè)試指令可以指示有待測(cè)試的目標(biāo)代碼版本文件以及該目標(biāo)代碼版本對(duì)應(yīng)的原代碼版本文件。[0071]當(dāng)然,在實(shí)際應(yīng)用中,還可以是預(yù)先配置增量測(cè)試任務(wù),該增量測(cè)試任務(wù)中配置有待測(cè)試的目標(biāo)代碼版本文件的信息以及原代碼版本文件的信息。[0072]S202,確定目標(biāo)代碼版本文件相對(duì)原代碼版本文件的增量代碼信息。[0073]可以理解的是,由于目標(biāo)代碼版本文件為原代碼版本文件經(jīng)過版本更新后得到的代碼文件,因此,目標(biāo)代碼版本文件會(huì)相對(duì)原代碼版本文件存在代碼更改以及新增,在本申請(qǐng)僅僅關(guān)注目標(biāo)代碼版本文件相對(duì)原代碼版本文件新增的增量代碼。[0075]如,增量代碼的信息可以包括用于標(biāo)識(shí)增量代碼的標(biāo)識(shí)信息。由于每條代碼可以通過其所在的代碼文件和行號(hào)進(jìn)行標(biāo)識(shí),因此,增量代碼的標(biāo)識(shí)信息可以包括增量代碼所屬的代碼文件的文件名和增量代碼的行號(hào)。[0076]在本申請(qǐng)中,確定兩個(gè)代碼版本文件之間的增量代碼的相關(guān)信息的方式可以有多[0077]S203,獲得代碼編輯編譯器測(cè)試目標(biāo)代碼版本文件所得到的至少一個(gè)測(cè)試結(jié)果文11[0078]在本申請(qǐng)中,代碼編輯編譯器至少能夠?qū)Υa版本文件進(jìn)行測(cè)試并輸出測(cè)試得到的至少一個(gè)測(cè)試結(jié)果文件。在本申請(qǐng)中,代碼編輯編譯器測(cè)試目標(biāo)代碼版本文件是指對(duì)目標(biāo)代碼版本文件進(jìn)行單元測(cè)試。[0079]在代碼編輯編譯器對(duì)目標(biāo)代碼版本文件進(jìn)行單元測(cè)試的過程中,涉及到對(duì)目標(biāo)代碼版本文件的編譯以及執(zhí)行相關(guān)的測(cè)試用例等,對(duì)此不加限制。[0080]在本申請(qǐng)中,代碼編輯編譯器輸出的至少一個(gè)測(cè)試結(jié)果文件中包含有全量測(cè)試覆蓋信息。但是,由于代碼編輯編譯器一般都支持自身對(duì)應(yīng)的設(shè)定協(xié)議格式的文件,使得該至少一個(gè)測(cè)試結(jié)果文件為采用設(shè)定協(xié)議格式的文件。[0081]在一種可選方式中,在該步驟S203之前,還可以向代碼編輯編譯器發(fā)送測(cè)試命令,該測(cè)試命令用于指示該代碼編輯編譯器測(cè)試該目標(biāo)代碼版本文件,如,該測(cè)試命令可以指示有待測(cè)試的該目標(biāo)代碼版本文件的標(biāo)識(shí)。相應(yīng)的,代碼編輯編譯器響應(yīng)該測(cè)試命令可以從基于目標(biāo)代碼版本文件的標(biāo)識(shí)從代碼目錄中查詢?cè)撃繕?biāo)代碼版本文件的存儲(chǔ)路徑,依據(jù)該存儲(chǔ)路徑獲得目標(biāo)代碼版本文件,并對(duì)目標(biāo)代碼版本文件進(jìn)行單元測(cè)試,以得到測(cè)試結(jié)[0082]可以理解的是,在一種實(shí)現(xiàn)方式中,為了使得代碼編輯編譯器輸出測(cè)試得到的測(cè)試結(jié)果文件,可以在代碼編輯編譯器提供的配置界面中預(yù)先配置用于指示輸出測(cè)試結(jié)果文件的選項(xiàng)。[0083]如,仍以代碼編輯編譯器為Xcode為例說明,Xcode具有統(tǒng)一的用戶界面設(shè)計(jì),編碼、測(cè)試、調(diào)試都在一個(gè)簡(jiǎn)單的窗口內(nèi)完成。如果在Xcode的界面中對(duì)用于指示輸出測(cè)試結(jié)果文件的選項(xiàng)“gathercoveragefor”進(jìn)行了勾選,則在利用Xcode代碼編輯編譯器對(duì)代碼文件進(jìn)行單元測(cè)試之后,則會(huì)代碼編輯編譯器會(huì)輸出測(cè)試得到的測(cè)試結(jié)果文件。[0084]在又一種實(shí)現(xiàn)方式中,還可以是通過測(cè)試命令來指示代碼編輯編譯器輸出測(cè)試結(jié)果文件。相應(yīng)的,向代碼編輯編譯器發(fā)送測(cè)試命令還可以用于指示該代碼編輯編譯器輸出該目標(biāo)代碼版本文件的測(cè)試結(jié)果文件。[0085]S204,調(diào)用并運(yùn)行文件解析程序,并通過文件解析程序解析出該至少一個(gè)測(cè)試結(jié)果文件中包含的全量測(cè)試覆蓋信息。[0086]其中,該全量測(cè)試覆蓋信息包括目標(biāo)代碼版本文件中被測(cè)試的至少一條已測(cè)試代碼的信息。為了便于區(qū)分,將目標(biāo)代碼版本文件中被測(cè)試到的代碼稱為已測(cè)試代碼?;谌繙y(cè)試覆蓋信息可以確定目標(biāo)代碼版本文件中哪些代碼被測(cè)試到,而哪些代碼沒有被測(cè)試[0087]如,全量測(cè)試覆蓋信息可以包括目標(biāo)代碼版本文件中被測(cè)試到的至少一條已測(cè)試代碼的標(biāo)識(shí)信息,如已測(cè)試代碼所在的代碼文件的文件名和已測(cè)試代碼的行號(hào)等。[0088]其中,文件解析程序?yàn)橛糜诮馕鲈O(shè)定協(xié)議格式的文件的解析程序。[0089]如,該文件解析程序?yàn)楸旧暾?qǐng)的主控程序中預(yù)置的,且支持設(shè)定協(xié)議格式文件解析的程序。可以理解的是,由于至少一個(gè)測(cè)試結(jié)果文件為采用代碼編輯編譯器中設(shè)定協(xié)議格式的文件,因此,無法直接從測(cè)試結(jié)果文件中獲得全量測(cè)試覆蓋信息。為了能夠獲得全量測(cè)試覆蓋信息,本申請(qǐng)中預(yù)置有文件解析程序,而該文件解析程序支持該種設(shè)定協(xié)議格式的文件的解析,基于此,通過調(diào)用并運(yùn)行該文件解析程序可以從至少一個(gè)測(cè)試結(jié)果文件中解析出全量測(cè)試覆蓋信息。使得文件解析程序具備解析代碼編輯編譯器得到的測(cè)試結(jié)果文件。[0091]S205,通過文件解析程序依據(jù)至少一條增量代碼的信息以及所述全量測(cè)試覆蓋信覆蓋信息,還可以結(jié)合目標(biāo)代碼版本文件中已知的至少一條增標(biāo)代碼版本文件中增量代碼的測(cè)試覆蓋信息。[0097]對(duì)比全量測(cè)試覆蓋信息和增量代碼信息可知,文件1中行號(hào)18到行號(hào)20的增量代而增量代碼的總數(shù)為6個(gè),因此,增量測(cè)試覆蓋率為2/6=33.33%。析程序。以在該原始解析程序中增設(shè)增量覆蓋子程序,從而使得文件解析程序包括增量覆蓋子程的測(cè)試覆蓋信息。其中,確定增量代碼的測(cè)試覆蓋信息可以參見前面相關(guān)介紹,在此不再贅述。[0101]舉例說明,如代碼編輯編譯器可以為Xcode,該Xcode中集成有11vm編譯器,1lvm是應(yīng)用很廣泛的一種開源編譯器。Xcode在對(duì)代碼文件進(jìn)行單元測(cè)試之后,可以得到測(cè)試結(jié)果文件。而11vm編譯器中具有原始解析程序11vm-cov,而11vm-cov能夠解析測(cè)試結(jié)果文件,得到代碼文件中被測(cè)試的全量覆蓋信息?;诖?,本申請(qǐng)可以在11vm-cov基礎(chǔ)上進(jìn)一步開發(fā),在11vm-cov原有功能的基礎(chǔ)上增加分析增量測(cè)試覆蓋信息的分析代碼,并將改進(jìn)后的llvm-cov確定為文件解析程序。[0102]在此基礎(chǔ)上,基于改進(jìn)后的11vm-cov可以對(duì)Xcode對(duì)目標(biāo)代碼版本文件單元測(cè)試后的測(cè)試結(jié)果文件進(jìn)行解析,得到全量測(cè)試覆蓋信息,并進(jìn)一步結(jié)合全量測(cè)試覆蓋信息和輸入的增量代碼信息,確定出增量測(cè)試覆蓋信息。[0103]由以上內(nèi)容可知,本申請(qǐng)基于代碼編輯編譯器能夠測(cè)試目標(biāo)代碼版本文件并能夠輸出包含全量測(cè)試覆蓋信息的至少一個(gè)測(cè)試結(jié)果文件這一特性,在獲得代碼編輯編譯器測(cè)試目標(biāo)代碼版本文件得到的至少一個(gè)測(cè)試結(jié)果文件之后,通過調(diào)用并運(yùn)行預(yù)置文件解析程序可以解析設(shè)定協(xié)議格式的至少一個(gè)測(cè)試結(jié)果文件,并從該至少一個(gè)測(cè)試結(jié)果文件中獲得該目標(biāo)代碼版本文件的全量測(cè)試覆蓋信息。[0104]在此基礎(chǔ)上,確定出目標(biāo)代碼版本文件相對(duì)原代碼版本文件的至少一條增量代碼的信息,便可以結(jié)合該至少一條增量代碼的信息以及全量測(cè)試覆蓋信息中被測(cè)試的各條代碼的信息,確定出增量代碼的測(cè)試覆蓋信息,從而實(shí)現(xiàn)了利用代碼編輯編譯器測(cè)試得到的全量測(cè)試覆蓋信息,較為便捷的確定出增量代碼的測(cè)試覆蓋信息。[0105]同時(shí),本申請(qǐng)?jiān)诶么a編輯編譯器能夠?qū)Υa文件進(jìn)行測(cè)試之后,通過預(yù)置的文件解析程序直接對(duì)代碼編輯編譯器測(cè)試得到的測(cè)試結(jié)果文件進(jìn)行解析,便可以獲得全量測(cè)試覆蓋信息,無需再依賴代碼編輯編譯器對(duì)應(yīng)的第三方庫來生成特定文件,并在特定文件基礎(chǔ)上進(jìn)行非改動(dòng)代碼的剔除操作等,從而大大降低了確定增量代碼測(cè)試覆蓋信息的復(fù)雜度。[0106]可以理解的是,確定目標(biāo)代碼版本文件與原版本代碼文件之間的增量代碼信息的實(shí)現(xiàn)方式可以有多種,為了便于理解,下面以一種可能的實(shí)現(xiàn)方式進(jìn)行說明。[0107]在一種可能的實(shí)現(xiàn)方式中,可以調(diào)用比較程序比對(duì)目標(biāo)代碼版本文件與原代碼版本文件,得到該比較程序輸出的代碼變更信息。[0108]如,該比較程序可以為代碼管理工具中的比較程序,代碼管理工具為用于管理不同版本的代碼版本文件的程序,該代碼管理工具可以運(yùn)行于測(cè)試平臺(tái)。例如,通過調(diào)用代碼管理工具中的比較命令(diff命令)可以執(zhí)行對(duì)目標(biāo)代碼版本文件與原代碼版本文件的比較。[0109]其中,代碼變更信息包括目標(biāo)代碼版本文件相對(duì)原代碼版本文件存在差異的至少一條差異代碼的信息。如,差異代碼的標(biāo)識(shí)信息,例如差異代碼所在代碼文件的文件名以及差異代碼的行號(hào)。[0110]可以理解的是,差異代碼可以是相對(duì)原代碼版本文件存在新增或者修改等的代該至少一條差異代碼的信息中提取出屬于增量代碼的增量代碼信息。[0111]在一種可選方式中,本申請(qǐng)主控程序中還可以包括增量分析程序,通過該增量分析程序可以調(diào)用該比較程序。[0112]下面以通過增量分析程序來確定增量代碼信息的情況為例,對(duì)本申請(qǐng)確定增量測(cè)試覆蓋信息的方法進(jìn)行介紹。[0113]如圖3所示,其示出了本申請(qǐng)確定增量測(cè)試覆蓋信息的方法的又一種流程示意圖,本實(shí)施例的方法可以應(yīng)用于測(cè)試平臺(tái),如,在測(cè)試平臺(tái)中運(yùn)行有主控程序,通過該主控程序可以實(shí)現(xiàn)確定增量測(cè)試覆蓋信息的方法。[0114]本實(shí)施例的方法可以包括:[0115]S301,獲得待測(cè)試的目標(biāo)代碼版本文件的第一文件標(biāo)識(shí)以及目標(biāo)代碼版本文件對(duì)應(yīng)的原代碼版本文件的第二文件標(biāo)識(shí)。[0116]如,獲得用戶輸入的增量測(cè)試指令,該增量測(cè)試指令可以指示有該目標(biāo)代碼版本文件的第一文件標(biāo)識(shí),以及目標(biāo)代碼版本文件的原代碼文本文件的第二文件標(biāo)識(shí)。[0117]其中,目標(biāo)代碼版本文件的第一文件標(biāo)識(shí)可以為文件名或者文件存儲(chǔ)路徑等能夠唯一標(biāo)識(shí)該目標(biāo)代碼版本文件的信息,類似的,第二文件標(biāo)識(shí)可以為文件名或者文件存儲(chǔ)路徑等等。[0118]相應(yīng)的,依據(jù)該第一文件標(biāo)識(shí)和第二文件標(biāo)識(shí)可以分別確定待測(cè)試的目標(biāo)代碼版本文件和該原代碼版本文件。[0119]S302,調(diào)用并運(yùn)行增量分析程序。[0120]其中,該增量分析程序配置有配置文件,該配置文件中配置有代碼路徑信息,代碼路徑信息包括各代碼版本文件的統(tǒng)一路徑信息,通過該統(tǒng)一路徑信息可以定位到存儲(chǔ)所有代碼版本文件的代碼存儲(chǔ)庫。[0121]S303,通過增量分析程序調(diào)用代碼管理工具的比較程序,并將第一文件標(biāo)識(shí)、第二文件標(biāo)識(shí)和代碼路徑信息,均作為輸入?yún)?shù)傳輸給該比較程序,以獲得比較程序得到的代碼變更信息。[0122]該代碼變更信息包括目標(biāo)代碼版本文件相對(duì)原代碼版本文件存在差異的至少一條差異代碼的信息。[0123]其中,該代碼管理工具為代碼管理工具為用于管理不同版本的代碼版本文件的程序。在該代碼管理工具中包括用于比較不同代碼版本之間差異的比較程序。需要說明的是,本實(shí)施例是以比較程序?yàn)榇a管理工具中的比較程序?yàn)槔f明。[0124]在一種可能的實(shí)現(xiàn)方式中,增量分析程序配置的配置文件中還可以配置可供調(diào)用的代碼管理工具的信息,通過該配置文件中配置的代碼管理工具的信息可以確定該增量分析程序所需調(diào)用的是哪種代碼管理工具以及調(diào)用地址等等。相應(yīng)的,基于配置文件中代碼管理工具的信息,可以調(diào)用配置文件中指示的代碼管理工具對(duì)應(yīng)的比較命令(diff命令)實(shí)現(xiàn)比較程序的調(diào)用。代碼管理工具,而Git是一種分布式的代碼管理工具。相應(yīng)的,增量分析程序的配置文件中可以配置使用SVN或者GIt代碼管理工具的信息。[0126]可以理解的是,代碼管理工具中的比較程序基于代碼路徑信息,獲得并比對(duì)第一文件標(biāo)識(shí)對(duì)應(yīng)的目標(biāo)代碼版本文件與所述第二文件標(biāo)識(shí)對(duì)應(yīng)的源版本文件,得到代碼變更信息。如,基于代碼路徑信息所指示的存儲(chǔ)路徑,獲取該第一文件標(biāo)識(shí)和第二文件標(biāo)識(shí)所指示的代碼版本文件,然后對(duì)這兩個(gè)代碼版本文件進(jìn)行比較操作。[0127]S304,通過增量分析程序從該至少一條差異代碼的信息中提取出屬于增量代碼的增量代碼信息,并將增量代碼信息存儲(chǔ)到配置的輸出路徑對(duì)應(yīng)的存儲(chǔ)空間。[0128]如,增量分析程序可以根據(jù)差異代碼的信息,確定出標(biāo)識(shí)屬于新增代碼的各條代[0129]可以理解的是,將確定出的增量代碼信息存儲(chǔ)到配置的輸出路徑對(duì)應(yīng)的存儲(chǔ)空間為一種可選方式,其目的是為了便于后續(xù)文件解析程序可以直接從該輸出路徑對(duì)應(yīng)的存儲(chǔ)空間獲取該增量代碼信息。[0130]在本申請(qǐng)中,該輸出路徑同樣可以配置到該增量分析程序的配置文件中。[0131]為了便于理解可以參見圖4。圖4示出了增量分析程序確定增量代碼信息的一種原理示意圖。[0132]由圖4可以看出,增量分析程序配置有配置文件,該配置文件中記錄有代碼路徑信[0133]其中,代碼路徑信息可以包括涉及被測(cè)試的軟件版本所屬工程的路徑,基于該代碼路徑信息可以查詢到被測(cè)試的目標(biāo)代碼軟件版本和原代碼版本文件。[0134]代碼管理工具的信息中可以配置該增量分析程序支持的代碼管理工具的信息,如,代碼管理工具可以配置為GIt或者SVN,在圖4中以配置的代碼管理工具為Git為例,所以SVN對(duì)應(yīng)分支為虛線??梢岳斫獾氖?,通過配置文件可以靈活配置所需使用的代碼管理工具,從而可以靈活切換所需使用的代碼管理工具。[0135]輸出路徑就是指需要增量代碼信息所需輸出到的地址路徑。[0136]在圖4中主函數(shù)表示增量分析程序,主函數(shù)可以在測(cè)試平臺(tái)中主控程序向其發(fā)送了目標(biāo)代碼版本文件和原代碼版本文件的標(biāo)識(shí)之后,調(diào)用Git工具中的diff命令,并將目標(biāo)代碼版本文件的標(biāo)識(shí)和原代碼版本文件的標(biāo)識(shí)以及代碼路徑信息作為diff命令的輸入?yún)?shù)。相應(yīng)的,可以通過執(zhí)行diff命令獲得目標(biāo)代碼版本文件相對(duì)原代碼版本文件的差異代碼對(duì)應(yīng)的代碼文件的文件名和行號(hào)。相應(yīng)的,在從差異代碼的信息中提取出增量代碼對(duì)應(yīng)的文件名和行號(hào)之后,可以將各個(gè)增量代碼的信息拼裝為一個(gè)文件,從而按照配置文件中的該輸出路徑輸出該文件。[0137]在一種可選方式中,為了便于閱讀和提高通用性,本申請(qǐng)還可以通過增量分析程序?qū)⒃隽看a信息轉(zhuǎn)換為符合指定編輯語言對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)格式,并存儲(chǔ)到該輸出路徑對(duì)應(yīng)的存儲(chǔ)空間。指定編輯語言也可以稱為指定編程語言,如,該指定編輯語言對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)格式可以為JSON(JavaScriptObjectNotation,JS對(duì)象簡(jiǎn)譜)格式,JSON是一種輕量級(jí)的數(shù)據(jù)交換格式。[0138]S305,向代碼編輯編譯器發(fā)送測(cè)試命令。[0139]其中,測(cè)試命令用于指示有待測(cè)試的該目標(biāo)代碼版本文件的第一文件標(biāo)識(shí)。[0140]該代碼編輯編譯器響應(yīng)于該測(cè)試命令,可以基于第一文件標(biāo)識(shí)獲得目標(biāo)代碼版本文件,然后測(cè)試該目標(biāo)代碼版本文件并輸出目標(biāo)代碼版本文件的至少一個(gè)測(cè)試結(jié)果文件。[0141]可以理解的是,以上步驟S302到S304與步驟S305的順序并不限于圖3所示,在實(shí)際應(yīng)用中,可以在執(zhí)行步驟S302到S304的同時(shí),執(zhí)行步驟S305,也可以是先執(zhí)行步驟S305再執(zhí)行步驟S302到S304。[0142]S306,獲得代碼編輯編譯器測(cè)試目標(biāo)代碼版本文件所得到的至少一個(gè)測(cè)試結(jié)果文件的文件存儲(chǔ)地址。[0143]在本實(shí)施例是以測(cè)試平臺(tái)獲得該至少一個(gè)測(cè)試結(jié)果文件的文件存儲(chǔ)地址為例說[0144]S307,調(diào)用并運(yùn)行文件解析程序,并向該文件解析程序發(fā)送增量覆蓋分析命令。[0145]該增量覆蓋分析命令可以攜帶有該至少一個(gè)測(cè)試結(jié)果文件的文件存儲(chǔ)地址和該增量代碼信息的輸出路徑。[0146]可以理解的是,本實(shí)施例以向文件解析程序發(fā)送攜帶以上輸出路徑和文件存儲(chǔ)地址的增量覆蓋命令為例說明,但是可以理解的是,通過其他方式向文件解析程序傳輸該增量代碼信息的輸出路徑以及該至少一個(gè)測(cè)試結(jié)果文件的文件存儲(chǔ)地址也同樣適用于本實(shí)施例。[0147]如圖5所示,其示出了本申請(qǐng)實(shí)施例確定增量代碼的測(cè)試覆蓋信息的一種實(shí)現(xiàn)原理框圖。[0148]由圖5可以看出,增量分析程序確定出的增量代碼信息以及代碼編輯編譯器測(cè)試目標(biāo)代碼版本文件得到的至少一個(gè)測(cè)試結(jié)果文件會(huì)被輸入給文件解析程序。[0149]文件解析程序基于增量代碼信息和該至少一個(gè)測(cè)試結(jié)果文件會(huì)確定出目標(biāo)代碼版本文件的增量測(cè)試覆蓋信息。[0150]S308,通過文件解析程序依據(jù)至少一個(gè)測(cè)試結(jié)果文件的文件存儲(chǔ)地址獲得該至少一個(gè)測(cè)試結(jié)果文件,從該至少一個(gè)測(cè)試結(jié)果文件中解析出全量測(cè)試覆蓋信息。[0151]S309,通過文件解析程序從增量代碼信息的輸出路徑對(duì)應(yīng)的存儲(chǔ)空間獲得增量代碼信息,并基于增量代碼信息和全量測(cè)試覆蓋信息,確定目標(biāo)代碼版本文件中增量代碼的測(cè)試覆蓋信息。[0152]以上步驟S308和S309可以參見前面實(shí)施例的相關(guān)介紹,在此不再贅述。[0153]在一種可選方式中,為了便于文件解析程序更為便捷的處理增量代碼信息,該文件解析程序還可以自定義有數(shù)據(jù)的結(jié)構(gòu)體形式。在此基礎(chǔ)上,在文件解析程序獲得增量代碼信息之后,還可以通過文件解析程序?qū)⒃隽看a信息轉(zhuǎn)換為該文件解析程序設(shè)定的結(jié)構(gòu)體形式的數(shù)據(jù)。[0154]如,在增量代碼信息為符合指定編輯語言對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)格式的情況下,將增量代碼信息由符合指定編輯語言對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)格式轉(zhuǎn)換為設(shè)定的結(jié)構(gòu)體形式的數(shù)據(jù)。[0155]例如,文件解析程序中轉(zhuǎn)換出的增量代碼信息可以包括如下表1中兩類結(jié)構(gòu)體形式的數(shù)據(jù)。[0156]表1類型用途變更文件名差異代碼行數(shù)組號(hào)?!皊tring”表示數(shù)據(jù)類型為字符串類型;“vector<int>”表示定義一個(gè)容器,容器內(nèi)的值為整數(shù)類型(即int類型)。[0159]類似的,增量代碼的測(cè)試覆蓋信息同樣可以是采用設(shè)定的結(jié)構(gòu)體形式表示的數(shù)據(jù)。例如增量代碼的測(cè)試覆蓋信息所涉及到的數(shù)據(jù)可以采用如下表2中提到的幾類結(jié)構(gòu)體形式的數(shù)據(jù)。[0160]表2字段類型用途變更文件名變更文件行數(shù)變更行執(zhí)行行數(shù)變更代碼覆蓋率[0162]其中,fileName為被測(cè)試覆蓋到的增量代碼對(duì)應(yīng)的文件名類型string;“diffLineCount”表示增量代碼的總行數(shù),其數(shù)據(jù)類型為整數(shù)型(int);“excecuteDiffLineCount”表示被測(cè)試覆蓋到的增量代碼的行數(shù),其數(shù)據(jù)類型為整數(shù)型;“diffCodeCoverage”表示增量代碼的測(cè)試覆蓋率,其數(shù)據(jù)類型為字符串類型。[0163]可以理解的是,在本申請(qǐng)以上任意一個(gè)實(shí)施例中,文件解析程序確定出增量代碼的測(cè)試覆蓋信息之后,還可以輸出增量代碼的測(cè)試覆蓋信息,以供用戶查看。[0164]為了便于理解本申請(qǐng)的方案,下面代碼編輯編譯器為Xcode工具為例說明,相應(yīng)的,本申請(qǐng)可以基于Xcode對(duì)目標(biāo)代碼版本文件的測(cè)試結(jié)果文件來確定目標(biāo)代碼版本文件相對(duì)原代碼版本文件的增量代碼的測(cè)試覆蓋信息。[0165]如圖6所示,其示出了本申請(qǐng)確定增量測(cè)試覆蓋信息的方法在一種應(yīng)用場(chǎng)景的一種流程交互示意圖,本實(shí)施例應(yīng)用于測(cè)試平臺(tái),測(cè)試平臺(tái)中運(yùn)行有用于確定增量測(cè)試覆蓋信息的主控程序,以及至少用于對(duì)代碼版本文件進(jìn)行單元測(cè)試的Xcode工具。[0166]本實(shí)施例的方法可以包括:[0167]S601,主控程序獲得待測(cè)試的目標(biāo)代碼版本文件的第一標(biāo)識(shí)以及原代碼版本文件的第二標(biāo)識(shí)。[0168]如,主控程序可以提供交互界面,來獲得用戶輸入的第一標(biāo)識(shí)和第二標(biāo)識(shí);或者是,用戶通過命令形式向主控程序輸入該第一標(biāo)識(shí)和第二標(biāo)識(shí)。[0169]S602,主控程序調(diào)用并運(yùn)行該主控程序內(nèi)設(shè)置的增量分析程序,并向增量分析程序發(fā)送該目標(biāo)代碼版本文件的第一標(biāo)識(shí)和原代碼版本文件的第二標(biāo)識(shí)。[0170]該增量分析程序(DiffCodeCoverage)可以為向主控程序中設(shè)置的,用于對(duì)代碼版本文件做增量合并且生成指定格式(如JSON格式)文件的工具(也可以稱為程序)。如,考慮到可維護(hù)性和可擴(kuò)展性,該增量分析程序可以為采用JS(JavaScript)編寫的程序。[0171]同時(shí),可以為該增量分析程序配置有配置文件,如,可以設(shè)置該增量分析程序使用Git或者SVN獲得差異代碼的信息等,還可以設(shè)置輸出路徑等等,具體可以如圖4及前面相關(guān)[0172]S603,增量分析程序基于配置文件中配置的代碼管理工具的信息,調(diào)用代碼管理工具中的diff命令,并向diff命令指向的diff程序傳輸?shù)谝粯?biāo)識(shí)、第二標(biāo)識(shí)以及配置文件中的代碼路徑信息,以通過執(zhí)行diff程序確定目標(biāo)代碼版本文件相對(duì)原代碼版本文件存在的差異代碼信息。[0173]Diff程序基于第一標(biāo)識(shí)、第二標(biāo)識(shí)以及配置文件中的代碼路徑信息可以獲得目標(biāo)代碼版本文件和原代碼版本文件,并比對(duì)這兩個(gè)文件,確定出差異代碼信息。[0174]該差異代碼信息可以包括目標(biāo)代碼版本文件與原代碼版本文件存在差異的至少一條差異代碼對(duì)應(yīng)的文件名和行號(hào)。[0175]S604,增量分析程序從差異代碼信息中提取出增量代碼信息,將提取到的增量代碼信息拼裝為JSON格式的文件,并基于配置文件中配置的輸出路徑存儲(chǔ)該JSON格式的文[0176]其中,該JSON格式的文件中包括至少一條增量代碼對(duì)應(yīng)的文件名和行號(hào)。[0177]S605,主控程序向Xcode工具發(fā)送測(cè)試命令,該測(cè)試命令指示有該目標(biāo)代碼版本文件的第一標(biāo)識(shí)。[0178]S606,Xcode工具響應(yīng)于測(cè)試命令,基于目標(biāo)代碼版本文件的第一標(biāo)識(shí)執(zhí)行對(duì)目標(biāo)代碼版本文件的單元測(cè)試,得到至少一個(gè)測(cè)試結(jié)果文件并存儲(chǔ)到設(shè)定的文件存儲(chǔ)路徑對(duì)應(yīng)的文件存儲(chǔ)空間。[0179]如,Xcode工具基于該第一標(biāo)識(shí)信息可以從測(cè)試平臺(tái)存儲(chǔ)的代碼文件中獲得該目標(biāo)代碼版本文件并執(zhí)行單元測(cè)試。的文件。[0181]其中,該設(shè)定文件路徑可以為通過測(cè)試命令指示的,也可以是預(yù)先配置的,因此,主控程序可以獲得該文件存儲(chǔ)路徑。[0182]S607,主控程序在確認(rèn)Xcode工具完成單元測(cè)試之后,調(diào)用主控程序中的文件解析程序,并向文件解析程序發(fā)送增量覆蓋分析命令。[0183]其中,該增量覆蓋分析命令指示有該至少一個(gè)測(cè)試結(jié)果文件的文件存儲(chǔ)路徑以及該包含有增量代碼信息的JSON文件的輸出路徑。[0184]可以理解的是,由于Xcode工具中集成有開源的11vm,1lvm為開源的編譯器,而llvm中包含有1lvm-cov程序,1lvm-cov程序可以解析出Xcode工具中輸出的測(cè)試結(jié)果文件中的代碼測(cè)試覆蓋信息(即本申請(qǐng)中的全量測(cè)試覆蓋信息),因此,本申請(qǐng)的文件解析程序可以是在該11vm-cov程序上進(jìn)一步開發(fā)得到的,經(jīng)過進(jìn)一步開發(fā)的11vm-cov程序不僅具備確定全量測(cè)試覆蓋信息的功能,還可以確定增量代碼覆蓋信息。[0185]相應(yīng)的,本申請(qǐng)可以在主控程序中配置經(jīng)過進(jìn)一步開發(fā)更改后的11vm-cov程序。[0186]舉例說明,如表3,其示出了進(jìn)一步開發(fā)更改后的1lvm-cov程序(即文件解析程序)所包含的程序或者接口的種類。[0187]表3名稱用途是否已有測(cè)試c接口是從profdata數(shù)據(jù)轉(zhuǎn)化為json格式是使用gcov形式工作是所有文件的覆蓋率信息是可視化查看所有文件覆蓋情況是查看差異代碼覆蓋率否(擴(kuò)展能力)llvm-cov程序中新增了增量覆蓋子程序diffCov,通過diffCov可以分析出增量代碼的測(cè)試覆蓋信息。[0190]S608,文件解析程序基于JSON文件的輸出路徑獲得JSON文件,并將JSON文件轉(zhuǎn)換為設(shè)定結(jié)構(gòu)體形式的增量代碼信息。[0192]S609,文件解析程序依據(jù)文件存儲(chǔ)路徑獲得至少一個(gè)測(cè)試結(jié)果文件,并解析出該至少一個(gè)測(cè)試結(jié)果文件中包含的全量測(cè)試覆蓋信息。[0193]如,由于開源的11vm-cov程序具備確定全量測(cè)試覆蓋信息,因此,本申請(qǐng)的文件解析程序?qū)嶋H上是復(fù)用了11vm-cov程序中該部分功能得到全量測(cè)試覆蓋信息。[0194]例如,如圖7所示,其示出了文件解析程序的組成架構(gòu)示意圖。更改后的11vm-cov程序可以包括同樣包括:輸出(export)、報(bào)表或者報(bào)告(report)以及顯示show三個(gè)原命令,CodeCoverageTool內(nèi)部使用run函數(shù)做參數(shù)解析分發(fā)器。在分發(fā)器解析器確定出需要調(diào)用這三個(gè)原命令之后,通過調(diào)用代碼覆蓋工具CodeCoverageTool::load()方法加載測(cè)試結(jié)[0195]對(duì)于更改后的11vm-cov程序確定全量測(cè)試覆蓋信息的過程與開源的11vm-cov程序確定全量測(cè)試覆蓋信息的過程相似,在此不再贅述。[0196]S610,文件解析程序通過增量覆蓋子程序基于全量測(cè)試覆蓋信息和增量代碼信息,確定出目標(biāo)代碼版本文件中增量代碼的測(cè)試覆蓋率并輸出。[0197]該步驟S610可以參見前面的相關(guān)介紹,在此不再贅述。[0198]由圖6可以看出,主控程序中的文件解析程序可以是對(duì)開源的更改后的11vm-cov程序做較少改動(dòng),相對(duì)整個(gè)Xcode或者llvm,llvm-cov程序更為輕量化,從而使得主控程序能夠?qū)崿F(xiàn)更為靈活接入,也更為輕量化。[0199]對(duì)應(yīng)本申請(qǐng)?zhí)峁┑拇_定增量測(cè)試覆蓋信息的方法,本申請(qǐng)還提供了一種確定增量測(cè)試覆蓋信息的裝置。[0200]如圖8所示,其示出了本申請(qǐng)一種確定增量測(cè)試覆蓋信息的裝置的一種組成架構(gòu)[0201]文件確定裝置801,用于確定待測(cè)試的目標(biāo)代碼版本文件以及原代碼版本文件,該目標(biāo)代碼版本文件為對(duì)該原代碼版本文件進(jìn)行代碼更新后得到的;[0202]增量代碼確定單元802,用于確定該目標(biāo)代碼版本文件相對(duì)該原代碼版本文件的增量代碼信息,該增量代碼信息包括:至少一條增量代碼的信息;[0203]測(cè)試結(jié)果獲得單元803,用于獲得代碼編輯編譯器測(cè)試該目標(biāo)代碼版本文件所得到的至少一個(gè)測(cè)試結(jié)果文件,該至少一個(gè)測(cè)試結(jié)果文件為采用設(shè)定協(xié)議格式的文件;[0204]全量覆蓋確定單元804,用于調(diào)用并運(yùn)行文件解析程序,并通過該文件解析程序解析出該測(cè)試結(jié)果文件中包含的全量測(cè)試覆蓋信息,該全量測(cè)試覆蓋信息包括該目標(biāo)代碼版本文件中被測(cè)試的至少一條已測(cè)試代碼的信息,該文件解析程序?yàn)橛糜诮馕鲈撛O(shè)定協(xié)議格式的文件的解析程序;[0205]增量覆蓋確定單元805,用于通過該文件解析程序依據(jù)該至少一條增量代碼的信息以及該全量測(cè)試覆蓋信息中至少一條已測(cè)試代碼的信息,確定出該目標(biāo)代碼版本文件中增量代碼的測(cè)試覆蓋信息。[0206]在一種可能的實(shí)現(xiàn)方式中,該測(cè)試結(jié)果獲得單元中的代碼編輯編譯器中集成有編譯器,該編譯器中包括用于解析該設(shè)定協(xié)議格式的文件的原始解析程序;[0207]該全量覆蓋確定單元調(diào)用的文件解析程序?yàn)橥ㄟ^在該原始解析程序中增設(shè)增量覆蓋子程序得到的程序;[0208]該增量覆蓋確定單元具體為,用于通過該增量覆蓋子程序依據(jù)該至少一條增量代碼的信息以及該至少一條已測(cè)試代碼的信息,確定出該目標(biāo)代碼版本文件中增量代碼的測(cè)試覆蓋信息。[0210]測(cè)試指示單元,用于在測(cè)試結(jié)果獲得單元獲得代碼編輯編譯器測(cè)試該目標(biāo)代碼版本文件所得到的至少一個(gè)測(cè)試結(jié)果文件之前,向該代碼編輯編譯器發(fā)送測(cè)試命令,該測(cè)試命令用于指示該代碼編輯編譯器測(cè)試該目標(biāo)代碼版本文件并輸出該目標(biāo)代碼版本文件的測(cè)試結(jié)果文件。[0212]文件比較單元,用于調(diào)用比較程序比對(duì)該目標(biāo)代碼版本文件與該原代碼版本文件,得到該比較程序輸出的代碼變更信息,該代碼變更信息包括該目標(biāo)代碼版本文件相對(duì)該原代碼版本文件存在差異的至少一條差異代碼的信息;[0213]增量提取單元,用于從該至少一條差異代碼的信息中提取出屬于增量代碼的增量代碼信息。[0214]在一種可選方式中,文件確定裝置具體為,用于獲得待測(cè)試的目標(biāo)代碼版本文件的第一文件標(biāo)識(shí)以及原代碼版本文件的第二文件標(biāo)識(shí),以確定待測(cè)試的目標(biāo)代碼版本文件以及原代碼版本文件;[0216]分析程序調(diào)用單元,用于調(diào)用并運(yùn)行增量分析程序,該增量分析程序配置有配置文件,該配置文件中配置有代碼路徑信息,代碼路徑信息用于指示有各代碼版本文件的統(tǒng)一存儲(chǔ)路徑;[0217]比較程序執(zhí)行單元,用于通過該增量分析程序調(diào)用比較程序,并將該第一文件標(biāo)識(shí)、第二文件標(biāo)識(shí)和該代碼路徑信息,均作為輸入?yún)?shù)傳輸給該比較程序,以使得該比較程序基于該代碼路徑信息,獲得并比對(duì)該第一文件標(biāo)識(shí)對(duì)應(yīng)的目標(biāo)代碼版本文件與該第二文件標(biāo)識(shí)對(duì)應(yīng)的原代碼版本文件,得到該代碼變更信息;[0218]增量提取單元,具體為用于通過該增量分析程序從該至少一條差異代碼的信息中提取出屬于增量代碼的增量代碼信息。[0219]在一種可選方式中,分析程序調(diào)用單元調(diào)用的增量分析程序配置的配置文件中還配置有增量代碼信息的輸出路徑;[0221]信息存儲(chǔ)單元,用于增量提取單元提取出增量代碼信息之后,通過該增量分析程序?qū)⒃撛隽看a信息轉(zhuǎn)換為符合指定編輯語言對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)格式,并存儲(chǔ)到該輸出路徑對(duì)應(yīng)的存儲(chǔ)空間;[0222]信息獲取單元,用于在增量覆蓋確定單元確定增量代碼的測(cè)試覆蓋信息之前,向該文件解析程序傳輸該增量代碼信息對(duì)應(yīng)的該輸出路徑,通過該文件解析程序從該輸出路徑對(duì)應(yīng)的存儲(chǔ)空間獲得該增量代碼信息;[0223]格式轉(zhuǎn)換單元,用于通過該文件解析程序?qū)⒃撛隽看a信息由該符合指定編輯語言對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)格式,轉(zhuǎn)換為該文件解析程序設(shè)定的結(jié)構(gòu)體形式的數(shù)據(jù)。[0224]在又一種可能的實(shí)現(xiàn)方式中,該目標(biāo)代碼版本文件包括至少一個(gè)代碼文件,每個(gè)代碼文件包括至少一條代碼;[0225]該增量代碼的信息包括:增量代碼所屬的代碼文件的文件名以及該增量代碼的行[0226]該已測(cè)試代碼的信息包括:已測(cè)試代碼所屬的代碼文件的文件名以及該已測(cè)試代碼的行號(hào);[0227]該增量覆蓋確定單元包括:[0228]數(shù)量確定單元,用于基于該增量代碼信息中各條增量代碼所屬代碼文件的文件名和各條增量代碼的行號(hào),以及全量測(cè)試覆蓋信息中各條已測(cè)試代碼所屬的代碼文件的文件名和各條已測(cè)試代碼的行號(hào),通過該文件解析程序分別確定各代碼文件中增量代碼的總數(shù)和被測(cè)試覆蓋的增量代碼的數(shù)量;[0229]覆蓋率確定單元,用于基于各代碼文件中增量代碼的總

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論