• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    確定代碼覆蓋率的方法、測試裝置制造方法及圖紙

    技術編號:2912278 閱讀:260 留言:0更新日期:2012-04-11 18:40
    本發明專利技術涉及計算機領域,本發明專利技術實施例公開了一種確定代碼覆蓋率的方法、測試裝置,該方法包括:確定被測試程序的總代碼量、該被測試程序的基礎地址、各代碼行的相對虛擬地址;根據該基礎地址、該各代碼行的虛擬地址,在該各代碼行內設置中斷;監測該被測試程序過程中是否有中斷發生,如果是,則標記該中斷所在的代碼行;監測該測試是否執行完畢,如果否,則返回該監測是否有中斷發生的步驟;如果是,則累計已標記的代碼行的總代碼獲取被執行的代碼總量,根據該被執行的代碼總量、該總代碼量獲取該被測試程序的代碼覆蓋率。應用本發明專利技術實施例的技術方案能夠準確獲取被測試程序的代碼覆蓋率,并且有利于保證被測試程序的穩定性。

    【技術實現步驟摘要】

    本專利技術涉及計算機領域,尤其涉及計算機程序測試中一種確定代碼覆蓋率的方法、測試裝置。
    技術介紹
    在計算機程序的測試過程中,代碼覆蓋率是評價測試活動覆蓋產品代碼的指標。代碼覆蓋率測試的目的是確認產品代碼是否按預期工作。代碼覆蓋率可以看作是產品代碼工作方式的說明文檔,是產品代碼質量的間接指標,其用于確定測試的有效性。代碼覆蓋率用于評價測試代碼是否已經覆蓋了產品代碼所有的路徑。不同的測試案例對代碼覆蓋率的要求不同,因此,在測試程序過程中一般需要檢查程序的代碼覆蓋率。為了確定代碼覆蓋率,現有技術主要使用以下兩種技術方案:第一種具體是:在程序運行的過程中,高頻采樣程序的運行狀態,在測試結束后,根據采樣結果統計代碼覆蓋率。由于使用該技術方案對程序運行狀態的采樣會必然會忽略掉相當多的執行細節,采樣不能反映程序執行的真實情況,因而采用該技術方案所獲取的代碼覆蓋率只能是一個粗略統計,而不是真實的代碼覆蓋率。第二種具體是,在測試之前,首先需要獲取被測試程序的源代碼,并對源代碼和工程配置進行修改:在需要進行代碼覆蓋率統計的源代碼上增加調試信息輸出設置,在修改后,將經修改后的源代碼重新編譯生成被測試程序。測試過程中,程序內部根據在源代碼內增加的調試信息,記錄有哪些代碼被執行過,從而在測試結束時根據記錄統計被執行過的代碼總量,從而獲取代碼覆蓋率。-->然而該技術方案的應用需要測試人員對被測試程序的源代碼作修改,因此該技術方案不利于保持被測試程序的穩定性和安全性。
    技術實現思路
    本專利技術實施例提供了一種確定代碼覆蓋率的方法,采用該方法能夠準確獲取被測試程序的代碼覆蓋率,并且有利于保證被測試程序的穩定性。本專利技術實施例還提供了一種測試裝置,采用該裝置能夠準確獲取被測試程序的代碼覆蓋率,并且有利于保證被測試程序的穩定性。本專利技術實施例提供的一種確定代碼覆蓋率的方法,包括:確定被測試程序的總代碼量、所述被測試程序的基礎地址、各代碼行的相對虛擬地址;根據所述基礎地址、所述各代碼行的虛擬地址,在所述各代碼行內設置中斷;監測所述被測試程序過程中是否有中斷發生,如果是,則標記所述中斷所在的代碼行;監測所述測試是否執行完畢,如果否,則返回所述監測是否有中斷發生的步驟;如果是,則:累計已標記的代碼行的總代碼獲取被執行的代碼總量,根據所述被執行的代碼總量、所述總代碼量獲取所述被測試程序的代碼覆蓋率。本專利技術實施例提供的一種測試裝置,包括:參數確定單元,用于確定所述被測試程序的總代碼量、所述被測試程序的基礎地址、各代碼行的相對虛擬地址;中斷設置單元,用于根據所述基礎地址、各代碼行的相對虛擬地址,在所述各代碼行內設置中斷;-->中斷監測單元,用于監測所述被測試程序過程中是否有中斷發生;標記中斷操作單元,用于當所述中斷監測單元監測到當前有中斷發生時,標記所述中斷所在的代碼行;結束監測單元,用于監測所述測試是否執行完畢;計算單元,用于當所述結束監測單元監測到所述測試執行完畢時,累計已標記的各代碼行的代碼量獲取被執行的代碼總量,并根據所述被執行的代碼總量、以及所述被執行的代碼總量,獲取所述被測試程序的代碼覆蓋率。由上看見,應用本專利技術實施例的技術方案,通過在對被測試程序進行測試時,在各代碼行內設置中斷形成斷點,使得測試執行到各代碼行的斷點處便產生中斷,如果有中斷發生,則無疑的該中斷所在的代碼行無疑被執行,反之,該代碼行被執行則肯定會有中斷發生。在每次中斷發生時均標記所述中斷所在的代碼行,在測試完畢后,根據標記可以找到真實被執行過的各代碼行,從而累計已標記的代碼行的總代碼獲取被執行的代碼總量,最后再根據被測試程序的總代碼量得到真實的代碼覆蓋率。另外的,在本專利技術實施例的技術方案中,通過在各代碼行內設置斷點從而根據斷點的發生確定具體被執行的代碼行,而中斷的設置只需要修改被測試程序的執行流程,而不需要對源程序文件本身作修改,即不需要修改被測試程序的源代碼,該技術方案的應用相對于現有技術的第二種技術方案更有利于保證被測試程序及測試目標的穩定性。另外的,應用本專利技術實施例的技術方案,測試人員還可以根據中斷的發生,實時直觀的獲知代碼執行的詳細情況。附圖說明此處所說明的附圖用來提供對本專利技術的進一步理解,構成本申請的一部分,并不構成對本專利技術的不當限定,在附圖中:-->圖1為實施例1提供的方法流程示意圖;圖2為實施例2提供的裝置結構示意圖。具體實施方式下面將結合附圖以及具體實施例來詳細說明本專利技術,在此本專利技術的示意性實施例以及說明用來解釋本專利技術,但并不作為對本專利技術的限定。實施例1:在執行本實施例的方法前可以首先將dbghelp.dll文件路徑、待被測試程序的文件路徑、程序數據庫(Program?DataBase,簡稱PDB)文件路徑傳遞至代碼覆蓋率測試工具以便初始化測試環境信息,從而可以使用代碼覆蓋率測試工具在該測試環境下進行測試,該代碼覆蓋率測試工具可以以懸掛調試方式啟動被測試模塊,以準備后續的測試:圖1為本實施例提供的確定代碼覆蓋率的方法流程示意圖,如圖示,該方法可以包括:步驟101:確定被測試程序的總代碼量、被測試程序的基礎地址、各代碼行的相對虛擬地址。分析被測試程序的PE頭信息,找到該程序基礎地址。根據該被測試程序的PDB文件,在該PDB文件內找到該程序的總代碼量、各代碼行的相對虛擬地址等信息。步驟102:根據程序的基礎地址、各代碼行的相對虛擬地址,在各代碼行內設置中斷。在本步驟中,可以在各代碼行內的任意位置設置至少一個中斷。根據程序的基礎地址、以及各代碼行的相對虛擬地址,確定各代碼行的虛擬地址:比如,第i行代碼行的虛擬地址為被測試程序的基礎地址加上第i代碼行的相對虛擬地址,文中所述的虛擬地址均指內存地址。-->在各代碼行內的任意位置設置中斷具體可以為:在各相鄰代碼行的虛擬地址之間的任何地址設置中斷,比如,第i行代碼的虛擬地址為a(i),第i+1行代碼行的虛擬地址為a(i+1),可以在虛擬地址集合{a|a(i)<=a<a(i+1)本文檔來自技高網...

    【技術保護點】
    一種確定代碼覆蓋率的方法,其特征是,包括: 確定被測試程序的總代碼量、所述被測試程序的基礎地址、各代碼行的相對虛擬地址; 根據所述基礎地址、所述各代碼行的虛擬地址,在所述各代碼行內設置中斷; 監測所述被測試程序過程中是否有中斷發生,如果是,則標記所述中斷所在的代碼行; 監測所述測試是否執行完畢,如果否,則返回所述監測是否有中斷發生的步驟;如果是,則: 累計已標記的代碼行的總代碼獲取被執行的代碼總量,根據所述被執行的代碼總量、所述總代碼量獲取所述被測試程序的代碼覆蓋率。

    【技術特征摘要】
    1、一種確定代碼覆蓋率的方法,其特征是,包括:確定被測試程序的總代碼量、所述被測試程序的基礎地址、各代碼行的相對虛擬地址;根據所述基礎地址、所述各代碼行的虛擬地址,在所述各代碼行內設置中斷;監測所述被測試程序過程中是否有中斷發生,如果是,則標記所述中斷所在的代碼行;監測所述測試是否執行完畢,如果否,則返回所述監測是否有中斷發生的步驟;如果是,則:累計已標記的代碼行的總代碼獲取被執行的代碼總量,根據所述被執行的代碼總量、所述總代碼量獲取所述被測試程序的代碼覆蓋率。2、根據權利要求1所述的方法,其特征是,確定所述總代碼量、所述被測試程序的基礎地址、各代碼行的相對虛擬地址,具體是:根據所述被測試程序的PE頭信息,獲取所述被測試程序的基礎地址;根據所述被測試程序的程序數據庫文件,獲取所述被測試程序的總代碼量、所述各代碼行的相對虛擬地址。3、根據權利要求1所述的方法,其特征是,在所述各代碼行內設置中斷,具體是:在所述各代碼行內寫入中斷標識。4、根據權利要求1、2或3所述的方法,其特征是,在所述各代碼行內設置中斷,具體是:在所述各代碼行的入口點設置所述中斷。5、根據權利要求4所述的方法,其特征是,在所述各代碼行的入口點設置所述中斷,包括:根據程序數據庫文件路徑初始化符號句柄,使用所述符號句柄定位所述各代碼行的虛擬地址,在所述各代碼行的虛擬地址處設置所述各代碼行的中斷,其中所述各代碼行的虛擬地址由所述基礎地址、所述代碼行的相對虛擬地址確定。6、根據權利要求1、2或3所述的方法,其特征是,標記所述中斷所在的代碼行...

    【專利技術屬性】
    技術研發人員:張康宗,王釗,戴贊洵
    申請(專利權)人:珠海金山軟件有限公司
    類型:發明
    國別省市:44[中國|廣東]

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 国产成人精品无码专区| 亚洲国产精品无码av| 日韩放荡少妇无码视频| 国产丰满乱子伦无码专| 国产成人无码AV一区二区在线观看| 无码人妻AⅤ一区二区三区| 久久水蜜桃亚洲AV无码精品| 国产午夜无码专区喷水| 亚洲熟妇无码八V在线播放| 久久久久成人精品无码| 性色av极品无码专区亚洲| 亚洲av无码乱码在线观看野外| 麻豆aⅴ精品无码一区二区| 无码人妻H动漫中文字幕| 国产成人麻豆亚洲综合无码精品 | 国产成人无码精品久久久性色 | 国99精品无码一区二区三区| 亚洲中文字幕久久无码| 久久久久亚洲av无码专区蜜芽| 日产无码1区2区在线观看| 亚洲Av无码国产一区二区| 蜜桃成人无码区免费视频网站| 一本色道久久HEZYO无码| 国产精品无码v在线观看| 无码免费午夜福利片在线 | 亚洲国产成人无码av在线播放| 亚洲av无码片在线播放| 久久久久久无码国产精品中文字幕 | 无码人妻丰满熟妇区BBBBXXXX | 欧洲无码一区二区三区在线观看| 精品久久久无码中文字幕天天| 国产乱子伦精品免费无码专区| 亚洲成av人无码亚洲成av人 | 亚洲国产成人精品无码区二本| 精品亚洲AV无码一区二区三区| 日韩AV无码精品人妻系列| 久久亚洲AV成人出白浆无码国产| 久久亚洲日韩看片无码| 成人无码区免费A片视频WWW| 亚洲精品中文字幕无码AV| 亚洲AV成人无码网站|