[發明專利]確定代碼覆蓋率的方法、測試裝置有效
| 申請號: | 200710032674.X | 申請日: | 2007-12-18 |
| 公開(公告)號: | CN101464829A | 公開(公告)日: | 2009-06-24 |
| 發明(設計)人: | 張康宗;王釗;戴贊洵 | 申請(專利權)人: | 珠海金山軟件股份有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 廣州華進聯合專利商標代理有限公司 | 代理人: | 李雙皓 |
| 地址: | 519015廣東省珠海市*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 確定 代碼 覆蓋率 方法 測試 裝置 | ||
1.一種確定代碼覆蓋率的方法,其特征是,包括:
確定被測試程序的總代碼量、所述被測試程序的基礎地址、各代碼行的相對虛擬地址;
根據所述基礎地址、所述各代碼行的相對虛擬地址,在所述各代碼行內設置中斷;
監測所述被測試程序執行過程中是否有中斷發生,如果是,則標記所述中斷所在的代碼行;
監測所述被測試程序是否執行完畢,如果否,則返回所述監測是否有中斷發生的步驟;如果是,則:
累計已標記的代碼行以獲取被執行的代碼總量,根據所述被執行的代碼總量、所述總代碼量獲取所述被測試程序的代碼覆蓋率。
2.根據權利要求1所述的方法,其特征是,確定所述總代碼量、所述被測試程序的基礎地址、各代碼行的相對虛擬地址,具體是:
根據所述被測試程序的PE頭信息,獲取所述被測試程序的基礎地址;
根據所述被測試程序的程序數據庫文件,獲取所述被測試程序的總代碼量、所述各代碼行的相對虛擬地址。
3.根據權利要求1所述的方法,其特征是,在所述各代碼行內設置中斷,具體是:在所述各代碼行內寫入中斷標識。
4.根據權利要求1、2或3所述的方法,其特征是,在所述各代碼行內設置中斷,具體是:在所述各代碼行的入口點設置所述中斷。
5.根據權利要求4所述的方法,其特征是,在所述各代碼行的入口點設置所述中斷,包括:
根據程序數據庫文件路徑初始化符號句柄,使用所述符號句柄定位所述各代碼行的虛擬地址,在所述各代碼行的虛擬地址處設置所述各代碼行的中斷,其中所述各代碼行的虛擬地址由所述基礎地址、所述代碼行的相對虛擬地址確定。
6.根據權利要求1、2或3所述的方法,其特征是,標記所述中斷所在的代碼行,具體包括:記錄所述中斷的相對虛擬地址。
7.根據權利要求1所述的方法,其特征是,所述方法進一步包括:
如果監測到有中斷發生,則還記錄所述中斷所在的代碼行的序號、和/或所述代碼行的代碼內容。
8.一種測試裝置,其特征是,包括:
參數確定單元,用于確定被測試程序的總代碼量、所述被測試程序的基礎地址、各代碼行的相對虛擬地址;
中斷設置單元,用于根據所述基礎地址、各代碼行的相對虛擬地址,在所述各代碼行內設置中斷;
中斷監測單元,用于監測所述被測試程序執行過程中是否有中斷發生;
標記中斷操作單元,用于當所述中斷監測單元監測到當前有中斷發生時,標記所述中斷所在的代碼行;
結束監測單元,用于監測所述被測試程序是否執行完畢;
計算單元,用于當所述結束監測單元監測到所述被測試程序執行完畢時,累計已標記的各代碼行以獲取被執行的代碼總量,并根據所述被執行的代碼總量、以及所述總代碼量,獲取所述被測試程序的代碼覆蓋率。
9.根據權利要求8所述的測試裝置,其特征是,所述裝置還包括:
PE文件存儲單元,用于存儲所述被測試程序的PE頭信息;
程序數據庫文件存儲單元,用于存儲所述被測試程序的程序數據庫文件;
所述參數確定單元根據所述PE頭信息,獲取所述被測試程序的基礎地址,根據所述被測試程序的程序數據庫文件,獲取所述被測試程序的總代碼量、所述各代碼行的相對虛擬地址。
10.根據權利要求8或9所述的測試裝置,其特征是,所述裝置還包括:
代碼信息存儲單元,用于當所述中斷監測單元監測到當前有中斷發生時,記錄所述中斷所在的代碼行的序號、和/或代碼行的代碼內容。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于珠海金山軟件股份有限公司,未經珠海金山軟件股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200710032674.X/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:立體光刻造型用樹脂組合物
- 下一篇:一種用于照明節電的無級可調式電抗器





