获取代码覆盖率的方法及装置的制造方法

文档序号:9646518阅读:469来源:国知局
获取代码覆盖率的方法及装置的制造方法
【技术领域】
[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的测试用例对每个所述编译结果进行测试,成第一代码覆盖信息文件,然后向服务器发送该第一代码覆盖信息文件,服务器接收η个第一代码覆盖信息文件并获取输入条件,然后合并该η个第一代码覆盖信息文件中满足该输入条件的代码覆盖信息得到第二代码覆
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1