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

代碼信息處理的方法及裝置的制造方法

文檔序號(hào):8395802閱讀:301來(lái)源:國(guó)知局
代碼信息處理的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,尤其涉及一種代碼信息處理的方法及裝置。
【背景技術(shù)】
[0002]代碼覆蓋(Code coverage)是軟件測(cè)試中的一種度量,描述程式中源代碼被測(cè)試的比例和程度,所得比例稱(chēng)為代碼覆蓋率?,F(xiàn)有生成代碼覆蓋率的方法為基于GCC的覆蓋工具(多平臺(tái)編譯器(GNU Compiler Collect1n,簡(jiǎn)稱(chēng)GCC)Coverage,簡(jiǎn)稱(chēng)GC0V)結(jié)合基于LTP的覆蓋率工具(Iinux測(cè)試工程(Linux Test Project,簡(jiǎn)稱(chēng)LTP)GC0V,簡(jiǎn)稱(chēng)LC0V)的方法。其中,GCOV是一個(gè)測(cè)試代碼覆蓋率的工具,伴隨GCC發(fā)布,配合GCC共同實(shí)現(xiàn)對(duì)C/C++文件的語(yǔ)句覆蓋和分支覆蓋測(cè)試,可用于統(tǒng)計(jì)每一行代碼的執(zhí)行頻率,定位實(shí)際執(zhí)行的代碼行數(shù)。LCOV是將GCOV圖形化的前端工具,基于HTML輸出,并生成一棵完整的HTML樹(shù),可以生成三個(gè)級(jí)別的視圖:目錄視圖、文件視圖、源碼視圖。上述兩個(gè)工具的結(jié)合,可生成可視化的代碼覆蓋率文件,用于檢測(cè)實(shí)際測(cè)試對(duì)代碼的覆蓋范圍和執(zhí)行程度。
[0003]在實(shí)現(xiàn)上述代碼信息處理的過(guò)程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問(wèn)題:由于通過(guò)GCOV和LCOV統(tǒng)計(jì)和顯示代碼覆蓋率是一種全量層面的代碼覆蓋率測(cè)試方法,其是對(duì)全部代碼的代碼覆蓋率進(jìn)行測(cè)試的方法,因此不能準(zhǔn)確反映代碼更新部分的覆蓋情況,即不能準(zhǔn)確反映增量層面的代碼覆蓋率。對(duì)于每日更新迭代的數(shù)據(jù),通過(guò)全量層面的代碼覆蓋率測(cè)試無(wú)法準(zhǔn)確的對(duì)差異代碼(新增代碼)的代碼覆蓋率進(jìn)行獨(dú)立的測(cè)試,導(dǎo)致對(duì)于差異代碼的代碼覆蓋率檢測(cè)效率低。

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

[0004]本發(fā)明的實(shí)施例提供一種代碼信息處理的方法及裝置,用于解決對(duì)于差異代碼的代碼覆蓋率檢測(cè)效率低解決的問(wèn)題。
[0005]一方面,本發(fā)明提供了一種代碼信息處理的方法,所述方法包括:
[0006]從代碼信息文件中提取代碼變更信息,所述代碼變更信息用于描述發(fā)生變更的文件名稱(chēng)、文件中發(fā)生變化的代碼行數(shù)及變更的代碼內(nèi)容;
[0007]從代碼覆蓋率信息中獲取目標(biāo)代碼率覆蓋信息,所述目標(biāo)代碼覆蓋率信息用于描述所述代碼覆蓋率信息中發(fā)生變化且滿(mǎn)足預(yù)設(shè)覆蓋類(lèi)型的信息;
[0008]根據(jù)提取的代碼變更信息確定所述目標(biāo)代碼覆蓋率信息中變更的代碼的覆蓋率。
[0009]另一方面,本發(fā)明還提供了一種代碼信息處理的裝置,所述裝置包括:
[0010]提取單元,用于從代碼信息文件中提取代碼變更信息,所述代碼變更信息用于描述發(fā)生變更的文件名稱(chēng)、文件中發(fā)生變化的代碼行數(shù)及變更的代碼內(nèi)容;
[0011]獲取單元,用于從代碼覆蓋率信息中獲取目標(biāo)代碼率覆蓋信息,所述目標(biāo)代碼覆蓋率信息用于描述所述代碼覆蓋率信息中發(fā)生變化且滿(mǎn)足預(yù)設(shè)覆蓋類(lèi)型的信息;
[0012]確定單元,用于根據(jù)所述提取單元提取的代碼變更信息確定所述獲取單元獲取的所述目標(biāo)代碼覆蓋率信息中變更的代碼的覆蓋率。
[0013]本發(fā)明提供的代碼信息處理的方法及裝置,能夠從代碼信息文件中提取代碼變更信息,所述代碼變更信息用于描述發(fā)生變更的文件名稱(chēng)、文件中發(fā)生變化的代碼行數(shù)及變更的代碼內(nèi)容;從代碼覆蓋率信息中獲取目標(biāo)代碼率覆蓋信息,所述目標(biāo)代碼覆蓋率信息用于描述所述代碼覆蓋率信息中發(fā)生變化且滿(mǎn)足預(yù)設(shè)覆蓋類(lèi)型的信息;根據(jù)提取的代碼變更信息確定所述目標(biāo)代碼覆蓋率信息中變更的代碼的覆蓋率。現(xiàn)有技術(shù)針對(duì)的是全部代碼信息,包含更新的代碼和未更新的代碼,因此對(duì)于更新迭代的數(shù)據(jù),通過(guò)全量層面的代碼覆蓋率測(cè)試無(wú)法準(zhǔn)確的對(duì)差異代碼(新增代碼)的代碼覆蓋率進(jìn)行獨(dú)立的測(cè)試,導(dǎo)致對(duì)于差異代碼的代碼覆蓋率檢測(cè)效率低。本發(fā)明中能夠從全部代碼覆蓋率信息中提取更新部分的目標(biāo)代碼覆蓋率信息,并根據(jù)代碼更新信息對(duì)目標(biāo)代碼覆蓋率信息進(jìn)行調(diào)整,最終得出更新代碼的覆蓋率,提高在代碼覆蓋率的準(zhǔn)確性。
【附圖說(shuō)明】
[0014]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0015]圖1為本發(fā)明實(shí)施例中一個(gè)生成代碼覆蓋率信息文件的示意圖;
[0016]圖2為本發(fā)明實(shí)施例中第一個(gè)代碼信息處理的方法的流程圖;
[0017]圖3為本發(fā)明實(shí)施例中第二個(gè)代碼信息處理的方法的流程圖;
[0018]圖4為本發(fā)明實(shí)施例中第三個(gè)代碼信息處理的方法的流程圖;
[0019]圖5為本發(fā)明實(shí)施例中第四個(gè)代碼信息處理的方法的流程圖;
[0020]圖6為本發(fā)明實(shí)施例中第五個(gè)代碼信息處理的方法的流程圖;
[0021]圖7為本發(fā)明實(shí)施例中一個(gè)代碼信息處理的裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0022]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0023]本發(fā)明實(shí)施例提供了一種代碼信息處理的方法,所述方法應(yīng)用于服務(wù)器中,所述服務(wù)器用于統(tǒng)計(jì)代碼覆蓋率,如圖1所示,所述方法包括:
[0024]步驟101、從代碼信息文件中提取代碼變更信息,代碼變更信息用于描述發(fā)生變更的文件名稱(chēng)、文件中發(fā)生變化的代碼行數(shù)及變更的代碼內(nèi)容。
[0025]通過(guò)python語(yǔ)言的diff命令,從版本管理工具(subvers1n,簡(jiǎn)稱(chēng)SVN)拉去到對(duì)比版本的代碼信息文件,該差異代碼信息包含發(fā)生變更的代碼所在的文件名稱(chēng)、更改代碼所在行和變更的代碼內(nèi)容,以及未發(fā)生變更的代碼所在的文件名稱(chēng)、更改代碼所在行和變更的代碼內(nèi)容。通常,代碼信息文件以文本格式進(jìn)行存儲(chǔ)。本發(fā)明實(shí)施例中將代碼信息文件命名為diff0.txt,以方便后續(xù)描述。本步驟中,在diff0.txt中提取發(fā)生變更的文件名稱(chēng)以、發(fā)生變更的起始行號(hào)以及變更的行數(shù)。將提取到的代碼變更信息,逐行存儲(chǔ)到代碼變更信息文件中。本發(fā)明實(shí)施例中將保存有代碼變更信息的代碼變更信息文件命名為diff1.txt,以便后續(xù)描述。
[0026]步驟102、從代碼覆蓋率信息文件中獲取目標(biāo)代碼率覆蓋信息,目標(biāo)代碼覆蓋率信息用于描述代碼覆蓋率信息中發(fā)生變化且滿(mǎn)足預(yù)設(shè)覆蓋類(lèi)型的信息。
[0027]代碼覆蓋率信息文件的生成過(guò)程如圖2所示,服務(wù)器通過(guò)編譯生成代碼覆蓋信息的安裝包,同時(shí)在服務(wù)器中保存包含有相應(yīng)文件的代碼以及所有代碼的代碼信息的文件,如gcno文件。測(cè)試人員在對(duì)該安裝包進(jìn)行運(yùn)行后,生成gcda文件,gcda文件用于描述代碼覆蓋率情況,通過(guò)LCOV工具將服務(wù)器中保存的gcno文件和gcda文件結(jié)合,得到后綴為info的代碼覆蓋率信息文件,該代碼覆蓋率信息文件用于描述全部代碼的覆蓋率信息。本發(fā)明實(shí)施例中,將代碼覆蓋率信息文件命名為test, info以方便后續(xù)描述。
[0028]由于代碼覆蓋率信息中即包含發(fā)生變更的代碼覆蓋率信息又包含未發(fā)生變更的代碼覆蓋率信息,因此首先將發(fā)生變更的代碼覆蓋率信息進(jìn)行提取,將提取的文件保存到test2.1nfo中,再根據(jù)預(yù)設(shè)的覆
當(dāng)前第1頁(yè)1 2 3 4 
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
昌黎县| 普定县| 汝阳县| 大姚县| 东乌珠穆沁旗| 屯留县| 黑水县| 汶川县| 长乐市| 璧山县| 郁南县| 本溪市| 富平县| 肇东市| 大邑县| 玉环县| 修文县| 榆社县| 德阳市| 达孜县| 财经| 乌兰浩特市| 蒲江县| 威远县| 乡宁县| 建德市| 延吉市| 齐齐哈尔市| 樟树市| 新巴尔虎右旗| 怀宁县| 陈巴尔虎旗| 文成县| 乐都县| 桓台县| 宣恩县| 万山特区| 北川| 花莲市| 抚州市| 宾阳县|