【技術實現步驟摘要】
本專利技術涉及計算機領域,尤其涉及計算機程序測試中一種確定代碼覆蓋率的方法、測試裝置。
技術介紹
在計算機程序的測試過程中,代碼覆蓋率是評價測試活動覆蓋產品代碼的指標。代碼覆蓋率測試的目的是確認產品代碼是否按預期工作。代碼覆蓋率可以看作是產品代碼工作方式的說明文檔,是產品代碼質量的間接指標,其用于確定測試的有效性。代碼覆蓋率用于評價測試代碼是否已經覆蓋了產品代碼所有的路徑。不同的測試案例對代碼覆蓋率的要求不同,因此,在測試程序過程中一般需要檢查程序的代碼覆蓋率。為了確定代碼覆蓋率,現有技術主要使用以下兩種技術方案:第一種具體是:在程序運行的過程中,高頻采樣程序的運行狀態,在測試結束后,根據采樣結果統計代碼覆蓋率。由于使用該技術方案對程序運行狀態的采樣會必然會忽略掉相當多的執行細節,采樣不能反映程序執行的真實情況,因而采用該技術方案所獲取的代碼覆蓋率只能是一個粗略統計,而不是真實的代碼覆蓋率。第二種具體是,在測試之前,首先需要獲取被測試程序的源代碼,并對源代碼和工程配置進行修改:在需要進行代碼覆蓋率統計的源代碼上增加調試信息輸出設置,在修改后,將經修改后的源代碼重新編譯生成被測試程序。測試過程中,程序內部根據在源代碼內增加的調試信息,記錄有哪些代碼被執行過,從而在測試結束時根據記錄統計被執行過的代碼總量,從而獲取代碼覆蓋率。-->然而該技術方案的應用需要測試人員對被測試程序的源代碼作修改,因此該技術方案不利于保持被測試程序的穩定性和安全性。
技術實現思路
本專利技術實施例提供了一種確定代碼覆蓋率的方法,采用該方法能夠準確獲取被測試程序的代碼覆蓋率,并且有利于保 ...
【技術保護點】
一種確定代碼覆蓋率的方法,其特征是,包括: 確定被測試程序的總代碼量、所述被測試程序的基礎地址、各代碼行的相對虛擬地址; 根據所述基礎地址、所述各代碼行的虛擬地址,在所述各代碼行內設置中斷; 監測所述被測試程序過程中是否有中斷發生,如果是,則標記所述中斷所在的代碼行; 監測所述測試是否執行完畢,如果否,則返回所述監測是否有中斷發生的步驟;如果是,則: 累計已標記的代碼行的總代碼獲取被執行的代碼總量,根據所述被執行的代碼總量、所述總代碼量獲取所述被測試程序的代碼覆蓋率。
【技術特征摘要】
1、一種確定代碼覆蓋率的方法,其特征是,包括:確定被測試程序的總代碼量、所述被測試程序的基礎地址、各代碼行的相對虛擬地址;根據所述基礎地址、所述各代碼行的虛擬地址,在所述各代碼行內設置中斷;監測所述被測試程序過程中是否有中斷發生,如果是,則標記所述中斷所在的代碼行;監測所述測試是否執行完畢,如果否,則返回所述監測是否有中斷發生的步驟;如果是,則:累計已標記的代碼行的總代碼獲取被執行的代碼總量,根據所述被執行的代碼總量、所述總代碼量獲取所述被測試程序的代碼覆蓋率。2、根據權利要求1所述的方法,其特征是,確定所述總代碼量、所述被測試程序的基礎地址、各代碼行的相對虛擬地址,具體是:根據所述被測試程序的PE頭信息,獲取所述被測試程序的基礎地址;根據所述被測試程序的程序數據庫文件,獲取所述被測試程序的總代碼量、所述各代碼行的相對虛擬地址。3、根據權利要求1所述的方法,其特征是,在所述各代碼行內設置中斷,具體是:在所述各代碼行內寫入中斷標識。4、根據權利要求1、2或3所述的方法,其特征是,在所述各代碼行內設置中斷,具體是:在所述各代碼行的入口點設置所述中斷。5、根據權利要求4所述的方法,其特征是,在所述各代碼行的入口點設置所述中斷,包括:根據程序數據庫文件路徑初始化符號句柄,使用所述符號句柄定位所述各代碼行的虛擬地址,在所述各代碼行的虛擬地址處設置所述各代碼行的中斷,其中所述各代碼行的虛擬地址由所述基礎地址、所述代碼行的相對虛擬地址確定。6、根據權利要求1、2或3所述的方法,其特征是,標記所述中斷所在的代碼行...
【專利技術屬性】
技術研發人員:張康宗,王釗,戴贊洵,
申請(專利權)人:珠海金山軟件有限公司,
類型:發明
國別省市:44[中國|廣東]
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。