[發明專利]一種基于lcov實現增量代碼覆蓋率的檢測方法、裝置及設備在審
| 申請號: | 201911125848.6 | 申請日: | 2019-11-15 |
| 公開(公告)號: | CN110928776A | 公開(公告)日: | 2020-03-27 |
| 發明(設計)人: | 劉練;陳國慶;謝強 | 申請(專利權)人: | 武漢極意網絡科技有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36;G06F8/77;G06F8/41;G06F8/61 |
| 代理公司: | 武漢知產時代知識產權代理有限公司 42238 | 代理人: | 易濱 |
| 地址: | 430000 湖北省武漢市東湖開發區大學*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 lcov 實現 增量 代碼 覆蓋率 檢測 方法 裝置 設備 | ||
本發明公開了一種基于lcov來實現增量代碼覆蓋率的檢測方法、裝置及設備,其中,通過分別將編譯過程中生成的“.gcno”文件、在應用程序的運行過程中,調用覆蓋率分發函數,生成對應的“.gcda”文件進行打包壓縮后上傳到服務端;在服務端對接收到的“.gcno”文件和“.gcda”文件進行整合后,通過lcov工具,生成“.info”文件;將生成“.info”文件與基線版本的“.info”文件進行比較,通過得到增量“.info”文件,進一步利用genhtml工具,生成覆蓋率報告;根據所述覆蓋率報告,得到增量代碼覆蓋率的檢測結果。本發明將覆蓋率檢測與整個開發流程緊密結合在一起,生成極具可讀性的覆蓋率報告,通過覆蓋率閾值控制Git push,以確保項目質量。
技術領域
本發明涉及軟件開發代碼質量監控領域,更具體地說,涉及一種基于lcov來實現增量代碼覆蓋率的檢測方法、裝置及設備。
背景技術
在軟件開發的過程中,代碼覆蓋率是度量開發完整性的一個手段,為了進一步提高軟件的交付質量,監測開發過程中的遺漏,降低線上事故,目前對代碼覆蓋率的檢測有了新的要求,如何精準衡量覆蓋度也是眾多開發人員遇到的技術瓶頸。
現有的增量代碼覆蓋率檢測方案:先獲取全量代碼覆蓋率信息,然后通過Gitdiff獲取增量代碼信息,再將增量代碼變更行映射至抽象語法樹的行對象,遍歷抽象語法樹的行對象,從抽象語法樹的行對象中確定增量代碼的特征信息總數和增量代碼的被覆蓋特征信息數量,采用增量代碼的被覆蓋特征信息數量除以增量代碼的特征信息總數,得到增量代碼的覆蓋率信息。
現有的檢測技術一般是通過使用Xcode,通過Xcode自帶工具即可檢測代碼覆蓋率,但是由于其只能檢測全量代碼的覆蓋率,在大的工程中,代碼量巨大,在每次迭代之后,再去重新關注全量代碼的覆蓋率的情況下,會大大降低開發者的工作效率,且Xcode也不能自動生成覆蓋率報告,并不能與整個開發測試流程結合。
發明內容
本發明要解決的技術問題在于,針對現有技術的不能自動生成覆蓋率報告,并不能與整個開發測試流程結合缺陷,提供一種基于lcov來實現增量代碼覆蓋率的檢測方法、裝置及設備。
本發明解決其技術問題所采用的技術方案是:構造一種基于lcov來實現增量代碼覆蓋率的檢測方法,包括以下步驟:
S1、通過Xcode工具來配置編譯選項,進入到編譯進程中,生成應用程序安裝包;其中,將生成的應用程序安裝包推送給前端進行安裝和運行;
S2、將編譯過程中生成的“.gcno”文件進行打包壓縮后上傳到服務端;
S3、基于步驟S1,在應用程序的運行過程中,調用覆蓋率分發函數,生成對應的“.gcda”文件,在運行結束后,從應用程序的沙盒中獲取最終生成的“.gcda”文件,在對其進行壓縮后,上傳到服務端;
S4、在服務端對接收到的“.gcno”文件和“.gcda”文件進行整合后,通過lcov工具,基于整合后的文件生成“.info”文件;其中,生成的“.info”文件將上傳至Git-開源的分布式版本控制系統;
S5、調用Git diff命令,將步驟S4生成“.info”文件與基線版本的“.info”文件進行比較,得到增量“.info”文件;
S6、通過genhtml工具,基于所述增量“.info”文件生成覆蓋率報告;根據所述覆蓋率報告,得到增量代碼覆蓋率的檢測結果。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于武漢極意網絡科技有限公司,未經武漢極意網絡科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201911125848.6/2.html,轉載請聲明來源鉆瓜專利網。





