本發明專利技術公開一種獲取代碼覆蓋率的方法及裝置,涉及通信技術領域,可以獲取手動測試的代碼覆蓋率,并且避免耗費大量的人力物力。本發明專利技術實施例通過獲取在被測試的應用程序APP的第一代碼中添加獲取代碼覆蓋率的代碼后的第二代碼,并將編譯所述第二代碼過程中記錄的所述第一代碼的信息生成第一文件;接收到測試指令后運行測試用例,并將運行所述測試用例過程中記錄的所述第一代碼的代碼執行信息生成第二文件;根據所述第一文件和所述第二文件,以及獲取代碼覆蓋率的代碼文件,獲取所述第一代碼的代碼覆蓋率。本發明專利技術實施例適于在進行手動測試獲取代碼覆蓋率時采用。
【技術實現步驟摘要】
一種獲取代碼覆蓋率的方法及裝置
本專利技術涉及通信
,尤其涉及一種獲取代碼覆蓋率的方法及裝置。
技術介紹
代碼覆蓋率反映測試用例對被測軟件覆蓋程度的重要指標,是用來度量測試完整性的一個參考值,其值等于測試運行到的代碼除以總的代碼。通過代碼覆蓋率數據,可以評估測試是否充分。目前,在被測試的應用程序(Application,APP)的工程基礎上建立測試工程,其中在測試工程的基礎上添加EMMA或者類似的代碼覆蓋率統計工具,然后在測試工程中編寫大量自動化測試用例。當按照測試計劃運行編寫的大量測試用例后,就可以獲得當前代碼覆蓋率。專利技術人發現現有技術中至少存在如下問題:由于現有安卓android平臺的功能主要由手動測試保證,無法獲取手動測試代碼覆蓋率;另外,由于獲取代碼覆蓋率時需要寫大量的自動化測試用例,耗費大量的人力物力。
技術實現思路
本專利技術的實施例提供一種獲取代碼覆蓋率的方法及裝置,可以獲取手動測試的代碼覆蓋率,并且避免耗費大量的人力物力。一方面,本專利技術的實施例提供一種獲取代碼覆蓋率的方法,包括:獲取在被測試的應用程序APP的第一代碼中添加獲取代碼覆蓋率的代碼后的第二代碼,并將編譯所述第二代碼過程中記錄的所述第一代碼的信息生成第一文件;接收到測試指令后運行測試用例,并將運行所述測試用例過程中記錄的所述第一代碼的代碼執行信息生成第二文件;根據所述第一文件和所述第二文件,以及獲取代碼覆蓋率的代碼文件,獲取所述第一代碼的代碼覆蓋率。在本專利技術的另一實施例中,在所述獲取所述第一代碼的代碼覆蓋率之后,還包括:獲取通過分析未被覆蓋到的第一代碼后編寫的新測試用例;接收到測試指令后運行所述新測試用例,并根據獲取所述第一代碼的代碼覆蓋率的方法,獲取所述第一代碼的累積的代碼覆蓋率。在本專利技術的另一實施例中,所述獲取所述第一代碼的代碼覆蓋率包括:接收執行第一目錄中文件的命令;根據置于所述第一目錄中的所述第一文件和所述第二文件,以及獲取代碼覆蓋率的代碼文件,執行所述命令,獲取所述第一代碼的代碼覆蓋率。在本專利技術的另一實施例中,所述獲取在被測試的應用程序APP的第一代碼中添加獲取代碼覆蓋率的代碼后的第二代碼包括:接收在被測試的APP的第一代碼中注銷或者退出時調用到的函數中添加的獲取代碼覆蓋率的代碼,獲取由所述第一代碼和所述獲取代碼覆蓋率的代碼構成的第二代碼;或者,接收在被測試的APP的第一代碼中由于點擊獲取代碼覆蓋率的按鈕或者菜單觸發的函數中添加的獲取代碼覆蓋率的代碼,獲取由所述第一代碼和所述獲取代碼覆蓋率的代碼構成的第二代碼。在本專利技術的另一實施例中,所述第一代碼的信息包括代碼的版本信息、包、類方法和代碼所在行的信息。在本專利技術的另一實施例中,所述接收到測試指令后運行測試用例,并將運行所述測試用例過程中記錄的所述第一代碼的代碼執行信息生成第二文件包括:接收到測試指令后運行測試用例,并記錄運行所述測試用例過程中執行過的所述第一代碼的代碼執行信息,保存在內存中;當APP注銷或者退出時,調用所述獲取代碼覆蓋率的代碼,并將保存在內存中的所述代碼執行信息保存在第二文件中,刪除所述內存中的所述代碼執行信息。另一方面,本專利技術實施例提供一種獲取代碼覆蓋率的裝置,包括:代碼獲取單元,用于獲取在被測試的應用程序APP的第一代碼中添加獲取代碼覆蓋率的代碼后的第二代碼;生成文件單元,用于將編譯所述第二代碼過程中記錄的所述第一代碼的信息生成第一文件;執行單元,用于接收到測試指令后運行測試用例;所述生成文件單元還用于,將運行所述測試用例過程中記錄的所述第一代碼的代碼執行信息生成第二文件;代碼覆蓋率獲取單元,用于根據所述第一文件和所述第二文件,以及獲取代碼覆蓋率的代碼文件,獲取所述第一代碼的代碼覆蓋率。在本專利技術的另一實施例中,所述裝置還包括:測試用例獲取單元,用于獲取通過分析未被覆蓋到的第一代碼后編寫的新測試用例;所述執行單元,用于接收到測試指令后運行所述新測試用例,并由所述生成文件單元和所述代碼覆蓋率獲取單元操作,獲取所述第一代碼的累積的代碼覆蓋率。在本專利技術的另一實施例中,所述代碼覆蓋率獲取單元包括:接收命令模塊,用于接收執行第一目錄中文件的命令;代碼覆蓋率獲取模塊,用于根據置于所述第一目錄中的所述第一文件和所述第二文件,以及獲取代碼覆蓋率的代碼文件,執行所述命令,獲取所述第一代碼的代碼覆蓋率。在本專利技術的另一實施例中,所述代碼獲取單元用于:接收在被測試的APP的第一代碼中注銷或者退出時調用到的函數中添加的獲取代碼覆蓋率的代碼,獲取由所述第一代碼和所述獲取代碼覆蓋率的代碼構成的第二代碼;或者,接收在被測試的APP的第一代碼中由于點擊獲取代碼覆蓋率的按鈕或者菜單觸發的函數中添加的獲取代碼覆蓋率的代碼,獲取由所述第一代碼和所述獲取代碼覆蓋率的代碼構成的第二代碼。在本專利技術的另一實施例中,所述第一代碼的信息包括代碼的版本信息、包、類方法和代碼所在行的信息。在本專利技術的另一實施例中,所述生成文件單元包括:記錄保存模塊,用于記錄運行所述測試用例過程中執行過的所述第一代碼的所述第一代碼的代碼執行信息,保存在內存中;生成文件模塊,用于當APP注銷或者退出時,調用所述獲取代碼覆蓋率的代碼,并將保存在內存中的所述代碼執行信息保存在第二文件中,刪除所述內存中的所述代碼執行信息。本專利技術實施例提供一種獲取代碼覆蓋率的方法及裝置,通過獲取在被測試的應用程序APP的第一代碼中添加獲取代碼覆蓋率的代碼后的第二代碼,并將編譯所述第二代碼過程中記錄的所述第一代碼的信息生成第一文件;接收到測試指令后運行測試用例,并將運行所述測試用例過程中記錄的所述第一代碼的代碼執行信息生成第二文件;根據所述第一文件和所述第二文件,以及獲取代碼覆蓋率的代碼文件,獲取所述第一代碼的代碼覆蓋率。與采用現有技術進行代碼覆蓋率測試時,無法獲取手動測試代碼覆蓋率;另外,由于獲取代碼覆蓋率時需要寫大量的自動化測試用例,耗費大量的人力物力相比,本專利技術實施例提供的方案通過在應用程序的源代碼中添加獲取代碼覆蓋率的代碼,可以獲取手動測試代碼覆蓋率,并且避免耗費大量的人力物力。【附圖說明】為了更清楚地說明本專利技術實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本專利技術的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。圖1為本專利技術實施例1提供的一種獲取代碼覆蓋率的方法的流程圖;圖2為本專利技術實施例1提供的一種獲取代碼覆蓋率的裝置的框圖;圖3為本專利技術實施例2提供的一種獲取代碼覆蓋率的方法的流程圖;圖4為本專利技術實施例2提供的一種獲取代碼覆蓋率的裝置的框圖。【具體實施方式】下面將結合本專利技術實施例中的附圖,對本專利技術實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本專利技術一部分實施例,而不是全部的實施例。基于本專利技術中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本專利技術保護的范圍。實施例1本專利技術實施例提供一種獲取代碼覆蓋率的方法,該方法的執行主體為終端,例如安卓Android設備,如圖1所示,該方法包括以下步驟:步驟101,獲取在被測試的應用程序(Appli本文檔來自技高網...

【技術保護點】
一種獲取代碼覆蓋率的方法,其特征在于,包括:獲取在被測試的應用程序APP的第一代碼中添加獲取代碼覆蓋率的代碼后的第二代碼,并將編譯所述第二代碼過程中記錄的所述第一代碼的信息生成第一文件;接收到測試指令后運行測試用例,并將運行所述測試用例過程中記錄的所述第一代碼的代碼執行信息生成第二文件;根據所述第一文件和所述第二文件,以及獲取代碼覆蓋率的代碼文件,獲取所述第一代碼的代碼覆蓋率。
【技術特征摘要】
1.一種獲取代碼覆蓋率的方法,其特征在于,包括: 獲取在被測試的應用程序APP的第一代碼中添加獲取代碼覆蓋率的代碼后的第二代碼,并將編譯所述第二代碼過程中記錄的所述第一代碼的信息生成第一文件; 接收到測試指令后運行測試用例,并將運行所述測試用例過程中記錄的所述第一代碼的代碼執行信息生成第二文件; 根據所述第一文件和所述第二文件,以及獲取代碼覆蓋率的代碼文件,獲取所述第一代碼的代碼覆蓋率。2.根據權利要求1所述的方法,其特征在于,在所述獲取所述第一代碼的代碼覆蓋率之后,還包括: 獲取通過分析未被覆蓋到的第一代碼后編寫的新測試用例; 接收到測試指令后運行所述新測試用例,并根據獲取所述第一代碼的代碼覆蓋率的方法,獲取所述第一代碼的累積的代碼覆蓋率。3.根據權利要求1或2所述的方法,其特征在于,所述獲取所述第一代碼的代碼覆蓋率包括: 接收執行第一目錄中文件的命令; 根據置于所述第一目錄 中的所述第一文件和所述第二文件,以及獲取代碼覆蓋率的代碼文件,執行所述命令,獲取所述第一代碼的代碼覆蓋率。4.根據權利要求3所述的方法,其特征在于,所述獲取在被測試的應用程序APP的第一代碼中添加獲取代碼覆蓋率的代碼后的第二代碼包括: 接收在被測試的APP的第一代碼中注銷或者退出時調用到的函數中添加的獲取代碼覆蓋率的代碼,獲取由所述第一代碼和所述獲取代碼覆蓋率的代碼構成的第二代碼;或者, 接收在被測試的APP的第一代碼中由于點擊獲取代碼覆蓋率的按鈕或者菜單觸發的函數中添加的獲取代碼覆蓋率的代碼,獲取由所述第一代碼和所述獲取代碼覆蓋率的代碼構成的第二代碼。5.根據權利要求1或2所述的方法,其特征在于,所述第一代碼的信息包括代碼的版本信息、包、類方法和代碼所在行的信息。6.根據權利要求5所述的方法,其特征在于,所述接收到測試指令后運行測試用例,并將運行所述測試用例過程中記錄的所述第一代碼的代碼信息生成第二文件包括: 接收到測試指令后運行測試用例,并記錄運行所述測試用例過程中執行過的所述第一代碼的代碼執行信息,保存在內存中; 當APP注銷或者退出時,調用所述獲取代碼覆蓋率的代碼,并將保存在內存中的所述代碼執行信息保存在第二文件中,刪除所述內存中的所述代碼執行信息。...
【專利技術屬性】
技術研發人員:丁如敏,皮凱,
申請(專利權)人:騰訊科技深圳有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。