獲取代碼覆蓋率的方法及裝置的制造方法
【技術領域】
[0001]本發明涉及通信領域,特別涉及一種獲取代碼覆蓋率的方法及裝置。
【背景技術】
[0002]代碼覆蓋率是軟件測試中的一種度量,其描述程序中的源代碼被執行的比例和程度。目前,在軟件測試領域中,技術人員需要獲取程序的代碼覆蓋率,根據該代碼覆蓋率確定程序是否被完整有效地測試。
[0003]當前存在一種獲取代碼覆蓋率的方法,包括:用戶可以向服務器輸入需要測試的應用程序(Applicat1n,APP)的版本號,服務器根據該版本號獲取對應版本的源代碼,對該源代碼進行插粧編譯,得到編譯結果和有效行文件,有效行文件包括該源代碼中有效的代碼行;用戶再將該編譯結果安裝在測試設備上,測試設備根據測試用例對該編譯結果進行測試,并在測試結束后產生代碼覆蓋信息文件,該代碼覆蓋信息文件包括該源代碼中被執行的代碼行的行號,將該代碼覆蓋信息文件發送給服務器;服務器根據該代碼覆蓋信息文件和該有效行文件,計算代碼覆蓋率。
[0004]在實現本發明的過程中,發明人發現現有技術至少存在以下問題:
[0005]現有技術方案只限于一個用戶在一臺測試設備上對應一個版本的APP進行測試,不能實現多用戶、多臺測試設備或多個版本的APP并行交叉測試。
【發明內容】
[0006]為了解決現有技術的問題,本發明實施例提供了一種獲取代碼覆蓋率的方法及裝置。所述技術方案如下:
[0007]第一方面,提供了一種獲取代碼覆蓋率的方法,其特征在于,所述方法包括:
[0008]測試設備獲取m個APP的編譯結果和編譯號,m為大于或等于1的整數,所述APP的編譯結果和編譯號是對所述APP的源代碼進行插粧編譯得到的,所述編譯號用于標識所述APP的版本和所述源代碼的版本;
[0009]所述測試設備獲取用戶配置的所述m個APP中的每個APP的測試用例;
[0010]所述測試設備根據所述每個APP的測試用例對每個所述編譯結果分別進行測試,并生成第一代碼覆蓋信息文件,所述第一代碼覆蓋信息文件包括所述測試設備的設備標識、所述用戶的用戶標識、所述每個APP的編譯號和所述每個APP的編譯號對應的代碼行覆蓋?目息;
[0011]所述測試設備向服務器發送所述第一代碼覆蓋信息文件,使所述服務器根據所述第一代碼覆蓋信息文件計算代碼覆蓋率。
[0012]第二方面,提供了一種獲取代碼覆蓋率的方法,其特征在于,所述方法包括:
[0013]接收η個第一代碼覆蓋信息文件,第一代碼覆蓋信息文件包括設備標識、用戶標識、m個ΑΡΡ中的每個APP的編譯號和所述每個APP的編譯號對應的代碼行覆蓋信息,m和η均為大于或等于1的整數;
[0014]獲取輸入條件,所述輸入條件包括待分析的設備標識、用戶標識和APP的編譯號中的至少一個;
[0015]合并所述η個第一代碼覆蓋信息文件中滿足所述輸入條件的代碼覆蓋信息得到第二代碼覆蓋信息文件;
[0016]根據所述第二代碼覆蓋信息文件計算代碼覆蓋率。
[0017]第三方面,提供了一種獲取代碼覆蓋率的裝置,其特征在于,所述裝置包括:
[0018]第一獲取模塊,用于獲取m個APP的編譯結果和編譯號,m為大于或等于1的整數,所述APP的編譯結果和編譯號是對所述APP的源代碼進行插粧編譯得到的,所述編譯號用于標識所述APP的版本和所述源代碼的版本;
[0019]第二獲取模塊,用于獲取用戶配置的所述m個APP中的每個APP的測試用例;
[0020]測試生成模塊,用于根據所述第二獲取模塊獲取到的所述每個APP的測試用例分別對每個所述第一獲取模塊獲取到的所述編譯結果進行測試,并生成第一代碼覆蓋信息文件,所述第一代碼覆蓋信息文件包括所述測試設備的設備標識、所述用戶的用戶標識、所述每個APP的編譯號和所述每個APP的編譯號對應的代碼行覆蓋信息;
[0021]發送模塊,用于所述裝置向服務器發送所述測試生成模塊生成的所述第一代碼覆蓋信息文件,使所述服務器根據所述第一代碼覆蓋信息文件計算代碼覆蓋率。
[0022]第四方面,提供了一種獲取代碼覆蓋率的裝置,其特征在于,所述裝置包括:
[0023]接收模塊,用于接收η個第一代碼覆蓋信息文件,第一代碼覆蓋信息文件包括設備標識、用戶標識、m個ΑΡΡ中的每個APP的編譯號和所述每個APP的編譯號對應的被執行代碼行覆蓋信息,m和η均為大于或等于1的整數;
[0024]獲取模塊,用于獲取輸入條件,所述輸入條件包括待分析的設備標識、用戶標識和ΑΡΡ的編譯號中的至少一個;
[0025]合并模塊,用于合并所述接收模塊接收到的所述η個第一代碼覆蓋信息文件中滿足所述獲取模塊獲取到的所述輸入條件的代碼覆蓋信息得到第二代碼覆蓋信息文件;
[0026]計算模塊,用于根據所述合并模塊得到的所述第二代碼覆蓋信息文件計算代碼覆蓋率。
[0027]本發明實施例提供的技術方案帶來的有益效果是:
[0028]通過測試設備獲取m個ΑΡΡ的編譯結果、編譯號和測試用例,并根據每個APP的測試用例對每個所述編譯結果進行測試,并生成第一代碼覆蓋信息文件,然后向服務器發送該第一代碼覆蓋信息文件,使服務器根據該第一代碼覆蓋信息文件計算代碼覆蓋率;解決了在多用戶、多臺測試設備或多個版本APP并行交叉測試情況下不能準確獲取有效的代碼覆蓋率的問題;達到了提高獲取代碼覆蓋率方便性和提高測試人員工作效率的效果。
【附圖說明】
[0029]為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0030]圖1是本發明實施例應用的網絡架構圖;
[0031]圖2是本發明一個實施例提供的一種獲取代碼覆蓋率方法的流程圖;
[0032]圖3是本發明另一個實施例提供的一種獲取代碼覆蓋率方法的流程圖;
[0033]圖4是本發明再一個實施例提供的一種獲取代碼覆蓋率方法的流程圖;
[0034]圖5A本發明一個實施例提供的一種獲取代碼覆蓋率裝置的框圖;
[0035]圖5B本發明一個實施例提供的一種測試APP,并生成與該APP對應的第一代碼覆蓋信息文件裝置的框圖;
[0036]圖6A是本發明另一個實施例提供的一種獲取代碼覆蓋率裝置的框圖;
[0037]圖6B是本發明一個實施例提供的一種合并η個第一代碼覆蓋信息文件中滿足輸入條件的代碼覆蓋信息得到第二代碼覆蓋信息文件裝置的框圖;
[0038]圖6C本發明一個實施例提供的計算代碼覆蓋率裝置的框圖;
[0039]圖7是本發明再一個實施例提供的一種獲取代碼覆蓋率裝置的框圖;
[0040]圖8是本發明一個實施例提供的電子設備的結構示意圖;
[0041]圖9是本發明一個實施例提供的服務器的結構示意圖。
【具體實施方式】
[0042]為使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明實施方式作進一步地詳細描述。
[0043]參見圖1,圖1是本發明實施例應用的網絡架構圖,該網絡架構可以包括至少一個服務器120和終端140。
[0044]服務器120用于存儲第一代碼覆蓋信息文件,該第一代碼覆蓋信息文件可包括終端140的設備標識、執行測試的用戶的用戶標識、被測試的每個ΑΡΡ的編譯號和每個ΑΡΡ的編譯號對應的被執行代碼行覆蓋信息。
[0045]服務器120還可用于獲取上述的設備標識、用戶標識和ΑΡΡ的編譯號等信息中的至少一個。
[0046]服務器120還可用于依照服務器120獲取的至少一個信息合并第一代碼覆蓋信息得到第二代碼覆蓋信息文件,并根據該第二代碼覆蓋信息文件計算代碼覆蓋率。
[0047]終端140可用于獲取服務器對ΑΡΡ編譯后產生的編譯結果和編譯號。
[0048]終端140還可用于獲取用戶為每個ΑΡΡ配置的測試用例。
[0049]終端140還可用于根據上述每個ΑΡΡ的測試用例對每個所述編譯結果進行測試,并生成第一代碼覆蓋信息文件,并將該第一代碼覆蓋信息文件發送給服務器120。
[0050]可選的,終端140可以是智能手機、平板電腦、智能電視、電子書閱讀器、多媒體播放器、膝上型便攜計算機和臺式計算機等等。終端140與服務器120之間可以通過無線網絡或者有線網絡相連。
[0051]圖2是本發明一個實施例提供的一種獲取代碼覆蓋率方法的流程圖,該方法包括:
[0052]在步驟201中,測試設備獲取m個ΑΡΡ的編譯結果和編譯號,m為大于或等于1的整數,該APP的編譯結果和編譯號是對該APP的源代碼進行插粧編譯得到的,該編譯號用于標識該APP的版本和該源代碼的版本。
[0053]在步驟202中,該測試設備獲取用戶配置的該m個APP中的每個APP的測試用例。
[0054]在步驟203中,該測試設備根據該每個APP的測試用例對每個所述編譯結果進行測試,并生成第一代碼覆蓋信息文件,該第一代碼覆蓋信息文件包括該測試設備的設備標識、該用戶的用戶標識、該每個APP的編譯號和該每個APP的編譯號對應的代碼行覆蓋信息。
[0055]在步驟204中,該測試設備向服務器發送該第一代碼覆蓋信息文件,使該服務器根據該第一代碼覆蓋信息文件計算代碼覆蓋率。
[0056]綜上所述,本實施例提供的獲取代碼覆蓋率方法,通過測試設備獲取m個APP的編譯結果、編譯號和測試用例,并根據每個APP的測試用例對每個所述編譯結果進行測試,并生成第一代碼覆蓋信息文件,然后向服務器發送該第一代碼覆蓋信息文件,使服務器根據該第一代碼覆蓋信息文件計算代碼覆蓋率;解決了在多用戶、多臺測試設備或多個版本APP并行交叉測試情況下不能準確獲取有效的代碼覆蓋率的問題;達到了提高獲取代碼覆蓋率方便性和提高測試人員工作效率的效果。
[0057]圖3是本發明另一個實施例提供的一種獲取代碼覆蓋率方法的流程圖,該方法包括:
[0058]在步驟301中,接收η個第一代碼覆蓋信息文件,第一代碼覆蓋信息文件包括設備標識、用戶標識、m個ΑΡΡ中的每個APP的編譯號和該每個APP的編譯號對應的代碼行覆蓋信息,m和η均為大于或等于1的整數。
[0059]在步驟302中,獲取輸入條件,該輸入條件包括待分析的設備標識、用戶標識和ΑΡΡ的編譯號中的至少一個。
[0060]在步驟303中,合并該η個第一代碼覆蓋信息文件中滿足該輸入條件的代碼覆蓋in息得到第二代碼覆蓋?目息文件。
[0061]在步驟304中,根據該第二代碼覆蓋信息文件計算代碼覆蓋率。
[0062]綜上所述,本實施例提供的獲取代碼覆蓋率方法,通過服務器接收η個第一代碼覆蓋信息文件并獲取輸入條件,然后合并該η個第一代碼覆蓋信息文件中滿足該輸入條件的代碼覆蓋信息得到第二代碼覆蓋信息文件,根據該第二代碼覆蓋信息文件計算代碼覆蓋率;解決了在多用戶、多臺測試設備或多個版本ΑΡΡ并行交叉測試情況下不能準確獲取有效的代碼覆蓋率的問題;達到了提高獲取代碼覆蓋率方便性和提高測試人員工作效率的效果Ο
[0063]圖4是本發明再一個實施例提供的一種獲取代碼覆蓋率方法的流程圖,該方法通過服務器對待編譯ΑΡΡ的源代碼進行插粧編譯,得到待測試ΑΡΡ的編譯結果、有效行文件和編譯號,并存儲該編譯號與該有效行文件的對應關系,測試設備獲取m個APP的編譯結果、編譯號和測試用例,并根據每個APP的測試用例對每個所述編譯結果進行測試,成第一代碼覆蓋信息文件,然后向服務器發送該第一代碼覆蓋信息文件,服務器接收η個第一代碼覆蓋信息文件并獲取輸入條件,然后合并該η個第一代碼覆蓋信息文件中滿足該輸入條件的代碼覆蓋信息得到第二代碼覆