CN111090586B - 代码覆盖率数据文件的上报方法、装置和计算机设备 - Google Patents

代码覆盖率数据文件的上报方法、装置和计算机设备 Download PDF

Info

Publication number
CN111090586B
CN111090586B CN201911252432.0A CN201911252432A CN111090586B CN 111090586 B CN111090586 B CN 111090586B CN 201911252432 A CN201911252432 A CN 201911252432A CN 111090586 B CN111090586 B CN 111090586B
Authority
CN
China
Prior art keywords
application program
test
code coverage
data
coverage rate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911252432.0A
Other languages
English (en)
Other versions
CN111090586A (zh
Inventor
陈策
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Pinwei Software Co Ltd
Original Assignee
Guangzhou Pinwei Software Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Pinwei Software Co Ltd filed Critical Guangzhou Pinwei Software Co Ltd
Priority to CN201911252432.0A priority Critical patent/CN111090586B/zh
Publication of CN111090586A publication Critical patent/CN111090586A/zh
Application granted granted Critical
Publication of CN111090586B publication Critical patent/CN111090586B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3676Test management for coverage analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请涉及一种代码覆盖率数据文件的上报方法、装置、计算机设备和存储介质,所述方法包括:当检测到第一应用程序的测试过程发生中断时,收集测试中断之前测试第一应用程序得到的测试数据;根据测试数据获取第一应用程序的代码覆盖率数据;根据代码覆盖率数据生成代码覆盖率数据文件;将代码覆盖率数据文件上报到服务器。上述方法能够避免应用程序测试时得到的代码覆盖率数据遗漏上报。

Description

代码覆盖率数据文件的上报方法、装置和计算机设备
技术领域
本申请涉及软件测试技术领域,特别是涉及一种代码覆盖率数据文件的上报方法、装置、计算机设备和存储介质。
背景技术
在应用程序的软件测试中,通常需要对应用程序的测试过程进行代码覆盖率的统计。代码覆盖率表征了应用程序的代码在测试中能够被覆盖的程度。测试终端在执行完应用程序的软件测试之后,需要统计代码覆盖率,并将代码覆盖率的代码覆盖率数据文件上报到后台服务器。在此过程中,需要人工对测试终端执行特定的操作才能够将代码覆盖率数据文件上报到后台服务器。当测试人员在软件测试完成后忘记执行特定的操作时或者当测试终端发生异常事件时,将导致应用程序测试时代码覆盖率数据的漏报,从而给应用程序的软件测试带来不必要的测试工作量。
发明内容
基于此,有必要针对上述技术问题,提供一种能够避免应用程序测试得到的代码覆盖率数据的遗漏上报的代码覆盖率数据文件的上报方法、装置、计算机设备和存储介质。
一种代码覆盖率数据文件的上报方法,该方法包括:当检测到第一应用程序的测试过程发生中断时,收集测试中断之前测试第一应用程序得到的测试数据;根据测试数据获取第一应用程序的代码覆盖率数据;根据代码覆盖率数据生成代码覆盖率数据文件;将代码覆盖率数据文件上报到服务器。
在其中一个实施例中,代码覆盖率数据文件的上报方法还包括:当检测到测试过程中测试第一应用程序的页面发生页面切换时,确定第一应用程序的测试过程发生中断;和/或,当检测到测试过程中用于测试第一应用程序的前端与前端对应的后台发生切换时,确定第一应用程序的测试过程发生中断。
在其中一个实施例中,代码覆盖率数据文件的上报方法还包括:当检测到测试过程中用于测试第一应用程序的第二应用程序发生退出测试时,确定第一应用程序的测试过程发生中断。
在其中一个实施例中,将代码覆盖率数据文件上报到服务器,包括:通过调用第二应用程序的activity组件中的onStop方法将代码覆盖率数据文件上报到服务器。
在其中一个实施例中,根据测试数据获取第一应用程序的代码覆盖率数据,包括:根据测试数据获取测试中断之前第一应用程序的已被测试覆盖代码和未被测试覆盖代码;根据已被测试覆盖代码和未被测试覆盖代码获得代码覆盖率数据。
在其中一个实施例中,根据代码覆盖率数据生成代码覆盖率数据文件,包括:获取测试过程发生中断时的时间信息;将时间信息与代码覆盖率数据进行关联,根据关联后的代码覆盖率数据生成代码覆盖率数据文件。
在其中一个实施例中,将代码覆盖率数据文件上报到服务器,包括:当检测到与服务器无无线网络连接时,通过通用串行总线USB数据线与中间设备进行通信连接后将代码覆盖率数据文件传输到中间设备,以通过中间设备将代码覆盖率数据文件上报到服务器。
一种代码覆盖率数据文件的上报装置,该装置包括:收集模块,用于当检测到第一应用程序的测试过程发生中断时,收集测试中断之前测试第一应用程序得到的测试数据;获取模块,用于根据测试数据获取第一应用程序的代码覆盖率数据;生成模块,用于根据代码覆盖率数据生成代码覆盖率数据文件;上报模块,用于将代码覆盖率数据文件上报到服务器。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述任一实施例方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一实施例方法的步骤。
上述代码覆盖率数据文件的上报方法、装置、计算机设备和存储介质,用于对第一应用程序进行软件测试的测试终端检测到第一应用程序的测试过程发生中断时,收集测试中断之前测试第一应用程序得到的测试数据,根据测试数据获取第一应用程序的代码覆盖率数据,并根据代码覆盖率数据生成代码覆盖率数据文件,将代码覆盖率数据文件上报到服务器。因此,测试终端无需人工操作即可实现第一应用程序的代码覆盖率数据的上报。同时,测试终端能够在第一应用程序的测试过程发生中断时,将测试中断之前第一应用程序的代码覆盖率数据进行上报,避免了测试终端发生测试中断意外时代码覆盖率数据的丢失及遗漏上报到服务器。
附图说明
图1为一个实施例中一种代码覆盖率数据文件的上报方法的应用环境图;
图2为一个实施例中一种代码覆盖率数据文件的上报方法的流程示意图;
图3为一个实施例中一种代码覆盖率数据文件的上报装置的结构框图;
图4为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的一种代码覆盖率数据文件的上报方法,应用于如图1所示的应用环境中。终端16包括多个测试终端。测试终端通过网络连接从服务器12下载应用程序的测试包,测试包中包含应用程序的需要执行软件测试的源代码。测试终端从服务器12中下载应用程序的测试包之后,对应用程序的源代码进行软件测试,进而将测试过程的代码覆盖率数据文件上报到服务器12。服务器12对测试终端的软件测试进行管理。如,向各测试终端提供应用程序的测试包以及接收各测试终端上传的软件测试得到的代码覆盖率数据文件等。数据库14用于存储应用程序的测试包以及代码覆盖率数据文件等。服务器12可以从数据库14中读取应用程序的测试包以及代码覆盖率数据文件,或者将应用程序的测试包以及代码覆盖率数据文件存储到数据库14。在本申请提供的代码覆盖率数据文件的上报方法中,测试终端从服务器下载第一应用程序的测试包并根据测试包对第一应用程序进行软件测试。测试终端对第一应用程序进行软件测试,检测到第一应用程序的测试过程发生中断时,收集测试中断之前测试第一应用程序得到的测试数据,根据测试数据获取第一应用程序的代码覆盖率数据,根据代码覆盖率数据生成代码覆盖率数据文件,将代码覆盖率数据文件上报到服务器12。服务器12将代码覆盖率数据存储到数据库14中。其中,终端16的各测试终端均可以是笔记本电脑、台式电脑等计算机设备。服务器12还可以是由多个服务器构成的服务器集群实现。
本申请提供一种代码覆盖率数据文件的上报方法,以该方法应用于图1所示的终端16中任一测试终端为例。如图2所示,该代码覆盖率数据文件的上报方法包括以下步骤:
S102,当检测到第一应用程序的测试过程发生中断时,收集测试中断之前测试第一应用程序得到的测试数据。
在本实施例中,测试终端对第一应用程序执行软件测试,并对测试过程进行监控。当测试终端检测到第一应用程序的测试过程发生中断时,测试终端收集测试中断之前测试第一应用程序得到的测试数据。测试数据可以包括软件测试过程中已测试覆盖代码的数据、未测试覆盖代码的数据、部分测试覆盖代码的数据,还可以包括测试中断时的时间数据以及第一应用程序的版本数据、第一应用程序的标识号数据等。当然,测试数据中还可以包括测试中断之前统计出的代码覆盖率数据及测试第一应用程序时编译得到的类文件数据等。因此,能够在第一应用程序的测试过程发生中断时,收集测试中断之前测试第一应用程序得到的测试数据,避免测试过程中断意外时测试数据的丢失。
S104,根据测试数据获取第一应用程序的代码覆盖率数据。
在本实施例中,测试终端根据测试数据获取第一应用程序的代码覆盖率数据。具体方式可以是,测试终端直接从测试数据中筛选出代码覆盖率数据。该代码覆盖率数据为第一应用程序的测试过程发生中断时统计得到的代码覆盖率数据。或者,测试终端从测试数据中读取用于计算第一应用程序代码覆盖率的目标数据,根据目标数据计算第一应用程序代码覆盖率,得到第一应用程序的代码覆盖率数据。例如,用于计算第一应用程序代码覆盖率的目标数据包括已测试覆盖代码数据和未测试覆盖代码数据。测试终端根据已测试覆盖代码数据和未测试覆盖代码数据计算第一应用程序代码覆盖率,得到第一应用程序的代码覆盖率数据。
S106,根据代码覆盖率数据生成代码覆盖率数据文件。
在本实施例中,测试终端获得第一应用程序的代码覆盖率数据之后,根据代码覆盖率数据生成第一应用程序的代码覆盖率数据文件,也即是ec文件。其中,代码覆盖率数据文件中包含在测试中断之前第一应用程序的代码覆盖率数据,根据代码覆盖率数据文件可以获知在测试中断之前的软件测试中第一应用程序对应的源代码的测试覆盖情况。因此,可以保存测试中断之前第一应用程序的软件测试信息,避免由于测试中断问题导致第一应用程序的软件测试信息的丢失。
S108,将代码覆盖率数据文件上报到服务器。
在本实施例中,测试终端将生成的代码覆盖率数据文件上报到服务器,以便服务器能够根据第一应用程序的代码覆盖率数据文件对第一应用程序的软件测试进行管理。例如,服务器将接收到的测试终端上传的第一应用程序的代码覆盖率数据文件进行存储。针对该第一应用程序的下一次软件测试,服务器可以向测试终端发送第一应用程序的上一次软件测试中断前的代码覆盖率数据文件,以供测试终端的测试人员进行数据参考。
上述代码覆盖率数据文件的上报方法,用于对第一应用程序进行软件测试的测试终端检测到第一应用程序的测试过程发生中断时,收集测试中断之前测试第一应用程序得到的测试数据,根据测试数据获取第一应用程序的代码覆盖率数据,并根据代码覆盖率数据生成代码覆盖率数据文件,将代码覆盖率数据文件上报到服务器。因此,测试终端无需人工操作即可实现第一应用程序的代码覆盖率数据的上报。同时,测试终端能够在第一应用程序的测试过程发生中断时,将测试中断之前第一应用程序的代码覆盖率数据进行上报,避免了测试终端发生测试中断意外时代码覆盖率数据的丢失及遗漏上报到服务器。
在一个实施例中,步骤S102之前,还包括步骤:当检测到测试过程中测试第一应用程序的页面发生页面切换时,确定第一应用程序的测试过程发生中断。
在该实施例中,测试终端安装有用于对第一应用程序进行软件测试的测试app(Application,应用程序)。测试app在对第一应用程序执行软件测试时,通过测试页面展示软件测试过程数据。其中,测试页面为上述测试第一应用程序的页面。同时,测试终端对测试app进行监控。当测试app的测试页面发生页面切换时,确定第一应用程序的测试过程发生中断。测试页面发生页面切换可以是,测试页面切换到非测试页面。如切换到测试app的配置页面或切换到测试app的首页等。此时有可能是人工误操作导致的测试中断,或者测试app的应用故障。因此,通过测试第一应用程序的页面发生页面切换来判断第一应用程序的测试过程发生中断,能够准确判断测试过程的中断现象。
在一个实施例中,步骤S102之前,还包括步骤:当检测到测试过程中用于测试第一应用程序的前端与前端对应的后台发生切换时,确定第一应用程序的测试过程发生中断。
在该实施例中,测试终端安装有用于对第一应用程序进行软件测试的测试app。测试app在对第一应用程序执行软件测试时,通过测试前端进行软件测试。其中,测试前端为上述用于测试第一应用程序的前端。测试终端还设置有与测试前端对应的后台。后台用于为测试前端的软件测试提供反馈数据。具体地,测试终端对测试app进行监控。当测试app中测试前端与后台发生切换时,测试终端确定第一应用程序的测试过程发生中断。例如,当人工控制将测试终端的测试前端切换到测试终端的后台时,由于测试前端并未完成第一应用程序的软件测试,强行将测试前端切换到后台容易造成第一应用程序的测试数据的丢失,此时将根据测试前端切换到后台的现象确定第一应用程序的测试过程发生中断,能够准确判断测试过程的中断现象,进而收集测试中断前的测试数据,避免第一应用程序的测试数据的丢失。
在一个实施例中,步骤S102之前,还包括步骤:当检测到测试过程中用于测试第一应用程序的第二应用程序发生退出测试时,确定第一应用程序的测试过程发生中断。
在该实施例中,测试终端安装有用于对第一应用程序进行软件测试的测试app。测试app为上述用于测试第一应用程序的第二应用程序。测试终端对测试app进行监控。当检测到测试app发生退出测试时,确定第一应用程序的测试过程发生中断,从而避免测试app退出对第一应用程式的软件测试时测试数据的丢失。例如,当测试app发生应用程序的登录异常时,测试app在对第一应用程序执行软件测试过程被强制退出,测试终端检测到该现象时,判定为第一应用程序的测试过程发生中断。因此,能够准确判断测试过程的中断现象,进而收集测试中断前的测试数据,避免第一应用程序的测试数据的丢失。
在一个实施例中,步骤S108包括:通过调用第二应用程序的activity组件中的onStop方法将代码覆盖率数据文件上报到服务器。
在该实施例中,测试终端安装有用于对第一应用程序进行软件测试的测试app。测试app为上述第二应用程序。测试终端在第二应用程序中添加jacoco工具,并对第一应用程序的源代码添加jacoco支持,利用jacoco工具对第一应用程序的软件测试进行代码覆盖率数据统计。具体地,在jacoco工具中编写核心类,核心类中规定了代码覆盖率数据文件(ec文件)的生成以及代码覆盖率数据文件上报到服务器的逻辑,从而使得jacoco工具能够实现代码覆盖率数据文件的生成和上报。进一步地,通过调用第二应用程序的activity组件中的onStop方法将代码覆盖率数据文件上报到服务器。因此,可以实现将第一应用程序测试过程中断前的代码覆盖率数据上报到服务器。
在一个实施例中,步骤S104包括:根据测试数据获取测试中断之前第一应用程序的已被测试覆盖代码和未被测试覆盖代码;根据已被测试覆盖代码和未被测试覆盖代码获得代码覆盖率数据。
在该实施例中,测试数据中包含有测试中断之前第一应用程序的已被测试覆盖代码和未被测试覆盖代码。因此,测试终端可以根据已被测试覆盖代码和未被测试覆盖代码获得代码覆盖率数据。具体可以是,将已被测试覆盖代码的数量除以总代码数量得到代码覆盖率数据。或,将未被测试覆盖代码的数量除以总代码数量得到未被测试覆盖的比例数据,再根据该比例数据得到代码覆盖率数据。
在一个实施例中,步骤S106包括:获取测试过程发生中断时的时间信息;将时间信息与代码覆盖率数据进行关联,根据关联后的代码覆盖率数据生成代码覆盖率数据文件。
在该实施例中,测试终端获取第一应用程序测试过程发生中断时的时间信息。例如,时间信息可以是发生中断时的年月日信息。测试终端将时间信息与代码覆盖率数据进行关联,从而使得代码覆盖率数据具备时间特性,提高代码覆盖率数据的参考价值。
在一个实施例中,步骤S108还包括:当检测到与服务器无无线网络连接时,通过通用串行总线USB数据线与中间设备进行通信连接后将代码覆盖率数据文件传输到中间设备,以通过中间设备将代码覆盖率数据文件上报到服务器。
在该实施例中,测试终端与服务器通过无线网络通信方式进行数据交互。测试终端通过无线网络形式将代码覆盖率数据文件上报到服务器。当测试终端与服务器无无线网络连接时,例如测试终端与服务器无线网络连接断开时,测试终端通过通用串行总线USB数据线与中间设备进行通信连接,将代码覆盖率数据文件传输到中间设备,利用中间设备将代码覆盖率数据文件上报到服务器。此处,中间设备与服务器通信连接可以是有线通信连接或是无线通信连接。中间设备可以是终端设备。举例说明:测试终端为手机,中间设备为台式电脑或笔记本电脑。当手机与服务器无无线网络连接时,通过通用串行总线USB数据线将手机与笔记本电脑进行通信连接,将代码覆盖率数据文件传输到笔记本电脑。笔记本电脑与服务器通信连接,利用笔记本电脑将代码覆盖率数据文件上报到服务器。因此,当测试终端与服务器无无线网络连接时,也可以实现将测试终端的代码覆盖率数据文件上报到服务器,避免测试终端的代码覆盖率数据文件的丢失。
在一个实施例中,步骤S108之后,还包括:当检测到代码覆盖率数据文件上报失败时,将代码覆盖率数据文件进行本地存储;当接收到上报指令时,将本地存储的代码覆盖率数据文件上报到服务器。
在该实施例中,测试终端将代码覆盖率数据文件上报到服务器时,对上报过程进行监控。当监控到上报失败时,将代码覆盖率数据文件存储到本地。下一次进行代码覆盖率数据文件上报时,接收到上报指令,将本地存储的代码覆盖率数据文件上报到服务器。此处的上报指令用于指示将本地存储的代码覆盖率数据文件上报到服务器。此时终端可以是手机。服务器为web服务器。因此,可以避免上报失败时代码覆盖率数据文件的丢失。
应该理解的是,虽然流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,附图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
本申请还提供一种代码覆盖率数据文件的上报装置,如图3所示,该装置包括:
收集模块10,用于当检测到第一应用程序的测试过程发生中断时,收集测试中断之前测试第一应用程序得到的测试数据。
获取模块20,用于根据测试数据获取第一应用程序的代码覆盖率数据。
生成模块30,用于根据代码覆盖率数据生成代码覆盖率数据文件。
上报模块40,用于将代码覆盖率数据文件上报到服务器。
在其中一个实施例中,该代码覆盖率数据文件的上报装置还包括(图3未示):
第一检测模块,用于当检测到测试过程中测试第一应用程序的页面发生页面切换时,确定第一应用程序的测试过程发生中断。
和/或,
第二检测模块,用于当检测到测试过程中用于测试第一应用程序的前端与前端对应的后台发生切换时,确定第一应用程序的测试过程发生中断。
在其中一个实施例中,该代码覆盖率数据文件的上报装置还包括(图3未示):
第三检测模块,用于当检测到测试过程中用于测试第一应用程序的第二应用程序发生退出测试时,确定第一应用程序的测试过程发生中断。
在其中一个实施例中,上报模块40还包括(图3未示):
第一上报单元,用于通过调用第二应用程序的activity组件中的onStop方法将代码覆盖率数据文件上报到服务器。
在其中一个实施例中,获取模块20还包括(图3未示):
第一获取单元,用于根据测试数据获取测试中断之前第一应用程序的已被测试覆盖代码和未被测试覆盖代码;
第二获取单元,用于根据已被测试覆盖代码和未被测试覆盖代码获得代码覆盖率数据。
在其中一个实施例中,生成模块30还包括(图3未示):
第三获取单元,用于获取测试过程发生中断时的时间信息;
生成单元,用于将时间信息与代码覆盖率数据进行关联,根据关联后的代码覆盖率数据生成代码覆盖率数据文件。
在其中一个实施例中,上报模块40还包括(图3未示):
第二上报单元,用于当检测到与服务器无无线网络连接时,通过通用串行总线USB数据线与中间设备进行通信连接后将代码覆盖率数据文件传输到中间设备,以通过中间设备将代码覆盖率数据文件上报到服务器。
关于代码覆盖率数据文件的上报装置的具体限定可以参见上文中对于代码覆盖率数据文件的上报方法的限定,在此不再赘述。上述代码覆盖率数据文件的上报装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以为终端设备,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与服务器连接,以与服务器进行数据交互。该计算机程序被处理器执行时以实现上述任一实施例中一种代码覆盖率数据文件的上报方法。
本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:当检测到第一应用程序的测试过程发生中断时,收集测试中断之前测试第一应用程序得到的测试数据;根据测试数据获取第一应用程序的代码覆盖率数据;根据代码覆盖率数据生成代码覆盖率数据文件;将代码覆盖率数据文件上报到服务器。
在其中一个实施例中,处理器执行计算机程序实现以下步骤:当检测到测试过程中测试第一应用程序的页面发生页面切换时,确定第一应用程序的测试过程发生中断;和/或,当检测到测试过程中用于测试第一应用程序的前端与前端对应的后台发生切换时,确定第一应用程序的测试过程发生中断。
在其中一个实施例中,处理器执行计算机程序实现以下步骤:当检测到测试过程中用于测试第一应用程序的第二应用程序发生退出测试时,确定第一应用程序的测试过程发生中断。
在其中一个实施例中,处理器执行计算机程序实现上述的将代码覆盖率数据文件上报到服务器步骤时,具体实现以下步骤:通过调用第二应用程序的activity组件中的onStop方法将代码覆盖率数据文件上报到服务器。
在其中一个实施例中,处理器执行计算机程序实现上述的根据测试数据获取第一应用程序的代码覆盖率数据步骤时,具体实现以下步骤:根据测试数据获取测试中断之前第一应用程序的已被测试覆盖代码和未被测试覆盖代码;根据已被测试覆盖代码和未被测试覆盖代码获得代码覆盖率数据。
在其中一个实施例中,处理器执行计算机程序实现上述的根据代码覆盖率数据生成代码覆盖率数据文件步骤时,具体实现以下步骤:获取测试过程发生中断时的时间信息;将时间信息与代码覆盖率数据进行关联,根据关联后的代码覆盖率数据生成代码覆盖率数据文件。
在其中一个实施例中,处理器执行计算机程序实现上述的将代码覆盖率数据文件上报到服务器步骤时,具体实现以下步骤:当检测到与服务器无无线网络连接时,通过通用串行总线USB数据线与中间设备进行通信连接后将代码覆盖率数据文件传输到中间设备,以通过中间设备将代码覆盖率数据文件上报到服务器。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:当检测到第一应用程序的测试过程发生中断时,收集测试中断之前测试第一应用程序得到的测试数据;根据测试数据获取第一应用程序的代码覆盖率数据;根据代码覆盖率数据生成代码覆盖率数据文件;将代码覆盖率数据文件上报到服务器。
在其中一个实施例中,计算机程序被处理器执行实现以下步骤:当检测到测试过程中测试第一应用程序的页面发生页面切换时,确定第一应用程序的测试过程发生中断;和/或,当检测到测试过程中用于测试第一应用程序的前端与前端对应的后台发生切换时,确定第一应用程序的测试过程发生中断。
在其中一个实施例中,计算机程序被处理器执行实现以下步骤:当检测到测试过程中用于测试第一应用程序的第二应用程序发生退出测试时,确定第一应用程序的测试过程发生中断。
在其中一个实施例中,计算机程序被处理器执行实现上述的将代码覆盖率数据文件上报到服务器步骤时,具体实现以下步骤:通过调用第二应用程序的activity组件中的onStop方法将代码覆盖率数据文件上报到服务器。
在其中一个实施例中,计算机程序被处理器执行实现上述的根据测试数据获取第一应用程序的代码覆盖率数据步骤时,具体实现以下步骤:根据测试数据获取测试中断之前第一应用程序的已被测试覆盖代码和未被测试覆盖代码;根据已被测试覆盖代码和未被测试覆盖代码获得代码覆盖率数据。
在其中一个实施例中,计算机程序被处理器执行实现上述的根据代码覆盖率数据生成代码覆盖率数据文件步骤时,具体实现以下步骤:获取测试过程发生中断时的时间信息;将时间信息与代码覆盖率数据进行关联,根据关联后的代码覆盖率数据生成代码覆盖率数据文件。
在其中一个实施例中,计算机程序被处理器执行实现上述的将代码覆盖率数据文件上报到服务器步骤时,具体实现以下步骤:当检测到与服务器无无线网络连接时,通过通用串行总线USB数据线与中间设备进行通信连接后将代码覆盖率数据文件传输到中间设备,以通过中间设备将代码覆盖率数据文件上报到服务器。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (8)

1.一种代码覆盖率数据文件的上报方法,所述方法包括:
当检测到第一应用程序的测试过程发生中断时,收集测试中断之前测试所述第一应用程序得到的测试数据,所述测试数据包括软件测试过程中已测试覆盖代码的数据、未测试覆盖代码的数据、部分测试覆盖代码的数据、测试中断时的时间数据以及第一应用程序的版本数据、第一应用程序的标识号数据;
根据所述测试数据获取所述第一应用程序的代码覆盖率数据;
根据所述代码覆盖率数据生成代码覆盖率数据文件;
将所述代码覆盖率数据文件上报到服务器;
其中,所述收集测试中断之前测试所述第一应用程序得到的测试数据的步骤之前,还包括:
当检测到所述测试过程中测试所述第一应用程序的页面发生页面切换时,确定所述第一应用程序的测试过程发生中断;
和/或,
当检测到所述测试过程中用于测试所述第一应用程序的前端与所述前端对应的后台发生切换时,确定所述第一应用程序的测试过程发生中断;
和/或,
当检测到所述测试过程中用于测试所述第一应用程序的第二应用程序发生退出测试时,确定所述第一应用程序的测试过程发生中断。
2.根据权利要求1所述的方法,其特征在于,所述将所述代码覆盖率数据文件上报到服务器,包括:
通过调用所述第二应用程序的activity组件中的onStop方法将所述代码覆盖率数据文件上报到服务器。
3.根据权利要求1所述的方法,其特征在于,所述根据所述测试数据获取所述第一应用程序的代码覆盖率数据,包括:
根据所述测试数据获取测试中断之前所述第一应用程序的已被测试覆盖代码和未被测试覆盖代码;
根据所述已被测试覆盖代码和所述未被测试覆盖代码获得所述代码覆盖率数据。
4.根据权利要求1所述的方法,其特征在于,所述根据所述代码覆盖率数据生成代码覆盖率数据文件,包括:
获取所述测试过程发生中断时的时间信息;
将所述时间信息与所述代码覆盖率数据进行关联,根据关联后的所述代码覆盖率数据生成代码覆盖率数据文件。
5.根据权利要求1所述的方法,其特征在于,所述将所述代码覆盖率数据文件上报到服务器,包括:
当检测到与所述服务器无无线网络连接时,通过通用串行总线USB数据线与中间设备进行通信连接后将所述代码覆盖率数据文件传输到所述中间设备,以通过所述中间设备将所述代码覆盖率数据文件上报到所述服务器。
6.一种代码覆盖率数据文件的上报装置,其特征在于,所述装置包括:
收集模块,用于当检测到第一应用程序的测试过程发生中断时,收集测试中断之前测试所述第一应用程序得到的测试数据,所述测试数据包括软件测试过程中已测试覆盖代码的数据、未测试覆盖代码的数据、部分测试覆盖代码的数据、测试中断时的时间数据以及第一应用程序的版本数据、第一应用程序的标识号数据;
获取模块,用于根据所述测试数据获取所述第一应用程序的代码覆盖率数据;
生成模块,用于根据所述代码覆盖率数据生成代码覆盖率数据文件;
上报模块,用于将所述代码覆盖率数据文件上报到服务器;
其中,所述收集测试中断之前测试所述第一应用程序得到的测试数据的步骤之前,还包括:
当检测到所述测试过程中测试所述第一应用程序的页面发生页面切换时,确定所述第一应用程序的测试过程发生中断;
和/或,
当检测到所述测试过程中用于测试所述第一应用程序的前端与所述前端对应的后台发生切换时,确定所述第一应用程序的测试过程发生中断;
和/或,
当检测到所述测试过程中用于测试所述第一应用程序的第二应用程序发生退出测试时,确定所述第一应用程序的测试过程发生中断。
7.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述方法的步骤。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
CN201911252432.0A 2019-12-09 2019-12-09 代码覆盖率数据文件的上报方法、装置和计算机设备 Active CN111090586B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911252432.0A CN111090586B (zh) 2019-12-09 2019-12-09 代码覆盖率数据文件的上报方法、装置和计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911252432.0A CN111090586B (zh) 2019-12-09 2019-12-09 代码覆盖率数据文件的上报方法、装置和计算机设备

Publications (2)

Publication Number Publication Date
CN111090586A CN111090586A (zh) 2020-05-01
CN111090586B true CN111090586B (zh) 2024-02-09

Family

ID=70394826

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911252432.0A Active CN111090586B (zh) 2019-12-09 2019-12-09 代码覆盖率数据文件的上报方法、装置和计算机设备

Country Status (1)

Country Link
CN (1) CN111090586B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101464829A (zh) * 2007-12-18 2009-06-24 珠海金山软件股份有限公司 确定代码覆盖率的方法、测试装置
CN102508780A (zh) * 2011-11-21 2012-06-20 电子科技大学 一种用于软件测试的交叉式动态法和装置
CN103699476A (zh) * 2012-09-27 2014-04-02 腾讯科技(深圳)有限公司 覆盖率测试方法及系统
CN105608000A (zh) * 2015-12-16 2016-05-25 北京奇虎科技有限公司 获取代码覆盖率数据的方法及装置
CN106155900A (zh) * 2015-04-17 2016-11-23 腾讯科技(深圳)有限公司 一种代码测试监测方法、装置及设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9454467B2 (en) * 2013-12-12 2016-09-27 Tencent Technology (Shenzhen) Company Limited Method and apparatus for mining test coverage data

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101464829A (zh) * 2007-12-18 2009-06-24 珠海金山软件股份有限公司 确定代码覆盖率的方法、测试装置
CN102508780A (zh) * 2011-11-21 2012-06-20 电子科技大学 一种用于软件测试的交叉式动态法和装置
CN103699476A (zh) * 2012-09-27 2014-04-02 腾讯科技(深圳)有限公司 覆盖率测试方法及系统
CN106155900A (zh) * 2015-04-17 2016-11-23 腾讯科技(深圳)有限公司 一种代码测试监测方法、装置及设备
CN105608000A (zh) * 2015-12-16 2016-05-25 北京奇虎科技有限公司 获取代码覆盖率数据的方法及装置

Also Published As

Publication number Publication date
CN111090586A (zh) 2020-05-01

Similar Documents

Publication Publication Date Title
CN110113224B (zh) 容量监控方法、装置、计算机设备及存储介质
CN110995468B (zh) 待分析系统的系统故障处理方法、装置、设备和存储介质
CN111143163B (zh) 数据监控方法、装置、计算机设备和存储介质
CN108710673B (zh) 实现数据库高可用方法、系统、计算机设备和存储介质
CN111881014B (zh) 一种系统测试方法、装置、存储介质及电子设备
CN108491321B (zh) 测试用例范围确定方法、装置及存储介质
CN112115005B (zh) 测试数据采集方法、装置、计算机设备和存储介质
CN112486749B (zh) 基于5g通信终端的测试方法、装置和可读存储介质
CN110704312A (zh) 压力测试的方法、装置、计算机设备和存储介质
CN110618853B (zh) 一种僵尸容器的检测方法、装置及设备
CN108650134B (zh) 网络故障定位的方法、装置及电子设备
CN113608908B (zh) 服务器故障处理方法、系统、设备及可读存储介质
CN111198921A (zh) 数据库的切换方法、装置、计算机设备和存储介质
CN111090586B (zh) 代码覆盖率数据文件的上报方法、装置和计算机设备
CN113064772A (zh) 一种车载终端及其远程自检及故障预警的方法及服务器
CN108064054B (zh) 一种lte系统中的ftp文件传输监控方法及系统
CN111177488B (zh) 计量设备检修处理方法、装置、计算机设备和存储介质
CN116230067A (zh) 一种固态硬盘自动化测试方法、系统、设备及介质
CN115391110A (zh) 存储设备的测试方法、终端设备及计算机可读存储介质
CN111061610B (zh) 集群系统性能测试报告的生成方法、装置和计算机设备
CN114385498A (zh) 性能测试方法、系统、计算机设备及可读存储介质
CN114037539A (zh) 一种保险出单链路异常检测方法及装置
CN108845932B (zh) 一种网络库的单元测试方法、装置、存储介质及终端
CN112416750A (zh) 应用程序边界测试方法及系统
CN112486824B (zh) 用例代码生成方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant