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

代碼覆蓋率的獲取方法、裝置和電子設備與流程

文檔序號:40571369發(fā)布日期:2025-01-03 11:31閱讀:16來源:國知局
代碼覆蓋率的獲取方法、裝置和電子設備與流程

本公開涉及數(shù)據(jù)處理領域,尤其涉及一種代碼覆蓋率的獲取方法、裝置和電子設備。


背景技術:

1、實現(xiàn)中,代碼覆蓋率的統(tǒng)計對于代碼的測試用例的測試以及完善具備著重要的參考性,相關技術中,可以在設定型號的測試終端上進行代碼測試并進行代碼覆蓋率的統(tǒng)計。

2、在該場景下,進行測試的代碼文件中可能會存在該設定型號的測試終端無法支持的代碼片段,進而導致在該場景下統(tǒng)計得到的代碼覆蓋率的準確性以及代碼覆蓋率的指導性受到一定程度的影響。


技術實現(xiàn)思路

1、本公開旨在至少在一定程度上解決相關技術中的技術問題之一。

2、為此,本公開第一方面提出一種代碼覆蓋率的獲取方法。

3、本公開第二方面提出一種代碼覆蓋率的獲取裝置。

4、本公開第三方面提出一種電子設備。

5、本公開第四方面提出一種計算機可讀存儲介質。

6、本公開第一方面提出一種代碼覆蓋率的獲取方法,方法包括:獲取測試代碼文件和所述測試代碼文件所屬的代碼覆蓋率統(tǒng)計場景;基于所述代碼覆蓋率統(tǒng)計場景,確定所述測試代碼文件中參與代碼覆蓋率統(tǒng)計的目標代碼片段,其中,所述目標代碼片段包括運行所述測試代碼文件的測試終端可支持的所述測試代碼文件中的代碼片段和所述測試代碼文件中的增量代碼片段中的一種;運行所述測試代碼文件,得到所述測試代碼文件在所述測試終端上運行的運行代碼片段;基于所述目標代碼片段和所述運行代碼片段,獲取所述測試代碼文件的目標代碼覆蓋率。

7、另外,本公開第一方面提出的代碼覆蓋率的獲取方法,還可以具有如下附加的技術特征:

8、根據(jù)本公開一個實施例,所述基于所述代碼覆蓋率統(tǒng)計場景,確定所述測試代碼文件中參與代碼覆蓋率統(tǒng)計的目標代碼片段,包括:響應于所述代碼覆蓋率統(tǒng)計場景為第一覆蓋率統(tǒng)計場景,獲取所述測試代碼文件的源代碼文件并對所述源代碼文件進行掃描,得到所述測試代碼文件包括的測試代碼塊的關聯(lián)終端配置參數(shù),其中,所述第一覆蓋率統(tǒng)計場景為對所述測試代碼文件中所述測試終端可支持的代碼片段的覆蓋率進行統(tǒng)計的場景;獲取所述測試終端的測試終端配置參數(shù),并獲取全部的關聯(lián)終端配置參數(shù)中與所述測試終端配置參數(shù)不匹配的冗余配置參數(shù),以獲取所述冗余配置參數(shù)對應的冗余代碼塊;獲取全部的測試代碼塊中除所述冗余代碼塊之外的剩余代碼塊,并將所述剩余代碼塊中的代碼片段確定為所述第一覆蓋率統(tǒng)計場景下所述測試代碼文件中參與代碼覆蓋率統(tǒng)計的所述目標代碼片段。

9、根據(jù)本公開一個實施例,所述基于所述代碼覆蓋率統(tǒng)計場景,確定所述測試代碼文件中參與代碼覆蓋率統(tǒng)計的目標代碼片段,包括:響應于所述代碼覆蓋率統(tǒng)計場景為第二覆蓋率統(tǒng)計場景,獲取所述測試代碼文件的對比代碼文件,其中,所述第二覆蓋率統(tǒng)計場景為對所述測試代碼文件基于所述對比代碼文件的增量代碼片段的覆蓋率進行統(tǒng)計的場景;對所述測試代碼文件和所述對比代碼文件分別進行語法樹解析,以獲取所述測試代碼文件基于所述對比代碼文件的增量代碼片段作為所述目標代碼片段。

10、根據(jù)本公開一個實施例,所述對所述測試代碼文件和所述對比代碼文件分別進行語法樹解析,以獲取所述測試代碼文件基于所述對比代碼文件的增量代碼片段作為所述目標代碼片段,包括:對所述測試代碼文件和所述對比代碼文件分別進行語法樹解析,獲取所述測試代碼文件的第一語法樹解析結果,以及所述對比代碼文件的第二語法樹解析結果;基于所述第一語法樹解析結果和所述第二語法樹解析結果,獲取所述測試代碼文件基于所述對比代碼文件的增量代碼片段;將所述增量代碼片段確定為所述測試代碼文件中參與代碼覆蓋率統(tǒng)計的所述目標代碼片段。

11、根據(jù)本公開一個實施例,所述基于所述第一語法樹解析結果和所述第二語法樹解析結果,獲取所述測試代碼文件基于所述對比代碼文件的增量代碼片段,包括:對所述第一語法樹解析結果和所述第二語法樹解析結果進行校驗,獲取所述第一語法樹解析結果和所述第二語法樹解析結果的校驗結果;響應于所述校驗結果指示所述第一語法樹解析結果和所述第二語法樹解析結果不匹配,獲取所述第一語法樹解析結果和所述第二語法樹解析結果之間的差異信息,并基于所述差異信息確定所述測試代碼文件基于所述對比代碼文件的增量代碼分支;基于所述增量代碼分支,得到所述測試代碼文件基于所述對比代碼文件的所述增量代碼片段。

12、根據(jù)本公開一個實施例,所述響應于所述校驗結果不匹配,獲取所述第一語法樹解析結果和所述第二語法樹解析結果之間的差異信息,并基于所述差異信息確定所述測試代碼文件基于所述對比代碼文件的增量代碼分支,包括:獲取所述第一語法樹解析結果基于所述第二語法樹解析結果的代碼差異類型,并將全部的測試代碼塊中屬于所述代碼差異類型的代碼分支,確定為所述測試代碼文件基于所述對比代碼文件的所述增量代碼分支。

13、根據(jù)本公開一個實施例,所述基于所述目標代碼片段和所述運行代碼片段,獲取所述測試代碼文件的目標代碼覆蓋率,包括:獲取所述目標代碼片段的第一代碼參數(shù),以及所述運行代碼片段的第二代碼參數(shù),并基于所述第一代碼參數(shù)和所述第二代碼參數(shù)得到所述測試代碼文件的所述目標代碼覆蓋率,其中,所述第一代碼參數(shù)和/或所述第二代碼參數(shù)至少包括指令覆蓋率計算所需的代碼參數(shù)、圈覆蓋率計算所需的代碼參數(shù)、分支覆蓋率計算所需的代碼參數(shù)、行覆蓋率計算所需的代碼參數(shù)和條件覆蓋率計算所需的代碼參數(shù)中的至少一種。

14、為達上述目的,本公開第二方面提出一種代碼覆蓋率的獲取裝置,裝置包括:第一獲取模塊,用途獲取測試代碼文件和所述測試代碼文件所屬的代碼覆蓋率統(tǒng)計場景;確定模塊,用于基于所述代碼覆蓋率統(tǒng)計場景,確定所述測試代碼文件中參與代碼覆蓋率統(tǒng)計的目標代碼片段,其中,所述目標代碼片段包括運行所述測試代碼文件的測試終端可支持的所述測試代碼文件中的代碼片段和所述測試代碼文件中的增量代碼片段中的一種;運行模塊,用于運行所述測試代碼文件,得到所述測試代碼文件在所述測試終端上運行的運行代碼片段;第二獲取模塊,用于基于所述目標代碼片段和所述運行代碼片段,獲取所述測試代碼文件的目標代碼覆蓋率。

15、另外,本公開第二方面提出的代碼覆蓋率的獲取裝置,還可以具有如下附加的技術特征:

16、根據(jù)本公開一個實施例,所述確定模塊,還用于:響應于所述代碼覆蓋率統(tǒng)計場景為第一覆蓋率統(tǒng)計場景,獲取所述測試代碼文件的源代碼文件并對所述源代碼文件進行掃描,得到所述測試代碼文件包括的測試代碼塊的關聯(lián)終端配置參數(shù),其中,所述第一覆蓋率統(tǒng)計場景為對所述測試代碼文件中所述測試終端可支持的代碼片段的覆蓋率進行統(tǒng)計的場景;獲取所述測試終端的測試終端配置參數(shù),并獲取全部的關聯(lián)終端配置參數(shù)中與所述測試終端配置參數(shù)不匹配的冗余配置參數(shù),以獲取所述冗余配置參數(shù)對應的冗余代碼塊;獲取全部的測試代碼塊中除所述冗余代碼塊之外的剩余代碼塊,并將所述剩余代碼塊中的代碼片段確定為所述第一覆蓋率統(tǒng)計場景下所述測試代碼文件中參與代碼覆蓋率統(tǒng)計的所述目標代碼片段。

17、根據(jù)本公開一個實施例,所述確定模塊,還用于:響應于所述代碼覆蓋率統(tǒng)計場景為第二覆蓋率統(tǒng)計場景,獲取所述測試代碼文件的對比代碼文件,其中,所述第二覆蓋率統(tǒng)計場景為對所述測試代碼文件基于所述對比代碼文件的增量代碼片段的覆蓋率進行統(tǒng)計的場景;對所述測試代碼文件和所述對比代碼文件分別進行語法樹解析,以獲取所述測試代碼文件基于所述對比代碼文件的增量代碼片段作為所述目標代碼片段。

18、根據(jù)本公開一個實施例,所述確定模塊,還用于:對所述測試代碼文件和所述對比代碼文件分別進行語法樹解析,獲取所述測試代碼文件的第一語法樹解析結果,以及所述對比代碼文件的第二語法樹解析結果;基于所述第一語法樹解析結果和所述第二語法樹解析結果,獲取所述測試代碼文件基于所述對比代碼文件的增量代碼片段;將所述增量代碼片段確定為所述測試代碼文件中參與代碼覆蓋率統(tǒng)計的所述目標代碼片段。

19、根據(jù)本公開一個實施例,所述確定模塊,還用于:對所述第一語法樹解析結果和所述第二語法樹解析結果進行校驗,獲取所述第一語法樹解析結果和所述第二語法樹解析結果的校驗結果;響應于所述校驗結果指示所述第一語法樹解析結果和所述第二語法樹解析結果不匹配,獲取所述第一語法樹解析結果和所述第二語法樹解析結果之間的差異信息,并基于所述差異信息確定所述測試代碼文件基于所述對比代碼文件的增量代碼分支;基于所述增量代碼分支,得到所述測試代碼文件基于所述對比代碼文件的所述增量代碼片段。

20、根據(jù)本公開一個實施例,所述確定模塊,還用于:獲取所述第一語法樹解析結果基于所述第二語法樹解析結果的代碼差異類型,并將全部的測試代碼塊中屬于所述代碼差異類型的代碼分支,確定為所述測試代碼文件基于所述對比代碼文件的所述增量代碼分支。

21、根據(jù)本公開一個實施例,所述第二獲取模塊,還用于:獲取所述目標代碼片段的第一代碼參數(shù),以及所述運行代碼片段的第二代碼參數(shù),并基于所述第一代碼參數(shù)和所述第二代碼參數(shù)得到所述測試代碼文件的所述目標代碼覆蓋率,其中,所述第一代碼參數(shù)和/或所述第二代碼參數(shù)至少包括指令覆蓋率計算所需的代碼參數(shù)、圈覆蓋率計算所需的代碼參數(shù)、分支覆蓋率計算所需的代碼參數(shù)、行覆蓋率計算所需的代碼參數(shù)和條件覆蓋率計算所需的代碼參數(shù)中的至少一種。

22、本公開第三方面提出一種電子設備,包括:處理器;用于存儲處理器的可執(zhí)行指令的存儲器;其中,處理器被配置為執(zhí)行指令,以實現(xiàn)如上述第一方面提出的代碼覆蓋率的獲取方法。

23、本公開第四方面提出一種計算機可讀存儲介質,當計算機可讀存儲介質中的指令由電子設備的處理器執(zhí)行時,使得電子設備能夠執(zhí)行如上述第一方面提出的代碼覆蓋率的獲取方法。

24、本公開提出的代碼覆蓋率的獲取方法及裝置,獲取測試代碼文件和測試代碼文件所屬的代碼覆蓋率統(tǒng)計場景,基于代碼覆蓋率統(tǒng)計場景,確定測試代碼文件中參與代碼覆蓋率統(tǒng)計的目標代碼片段,運行測試代碼文件獲取測試代碼文件在測試終端上運行的運行代碼片段,并基于目標代碼片段以及運行代碼片段,得到測試代碼文件的目標代碼覆蓋率。本公開中,根據(jù)代碼覆蓋率統(tǒng)計場景的需求,獲取測試代碼文件在測試終端上可支持的代碼片段或者測試代碼文件的增量代碼片段作為目標代碼片段,避免了測試代碼文件中的冗余代碼片段被納入代碼覆蓋率統(tǒng)計范圍的異常情況的發(fā)生,優(yōu)化了代碼覆蓋率獲取方法,提高了代碼覆蓋率的準確程度,優(yōu)化了代碼覆蓋率的指導性和參考性。

25、應當理解,本公開所描述的內容并非旨在標識本公開的實施例的關鍵或重要特征,也不用于限制本公開的范圍。本公開的其它特征將通過以下的說明書而變得容易理解。

當前第1頁1 2 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
如东县| 新泰市| 新乡市| 泾川县| 兴宁市| 拜泉县| 平潭县| 虹口区| 任丘市| 沙坪坝区| 巩留县| 武夷山市| 元朗区| 莲花县| 福州市| 班玛县| 宝应县| 米林县| 聂荣县| 宜兴市| 佛学| 宁都县| 石柱| 柞水县| 绥宁县| 泗阳县| 京山县| 万全县| 浮梁县| 卫辉市| 长垣县| 云霄县| 宜城市| 乳山市| 扎鲁特旗| 陇川县| 四子王旗| 宝鸡市| 若尔盖县| 陇西县| 梅州市|