CN107807881A - 代码覆盖率的测试方法、装置和计算机设备 - Google Patents

代码覆盖率的测试方法、装置和计算机设备 Download PDF

Info

Publication number
CN107807881A
CN107807881A CN201710898392.1A CN201710898392A CN107807881A CN 107807881 A CN107807881 A CN 107807881A CN 201710898392 A CN201710898392 A CN 201710898392A CN 107807881 A CN107807881 A CN 107807881A
Authority
CN
China
Prior art keywords
test
tested software
code coverage
interface
mentioned
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.)
Granted
Application number
CN201710898392.1A
Other languages
English (en)
Other versions
CN107807881B (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.)
Beijing Electric Vehicle Co Ltd
Original Assignee
Beijing Electric Vehicle 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 Beijing Electric Vehicle Co Ltd filed Critical Beijing Electric Vehicle Co Ltd
Priority to CN201710898392.1A priority Critical patent/CN107807881B/zh
Publication of CN107807881A publication Critical patent/CN107807881A/zh
Application granted granted Critical
Publication of CN107807881B publication Critical patent/CN107807881B/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
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Landscapes

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

Abstract

本申请提出一种代码覆盖率的测试方法、装置和计算机设备,其中,上述代码覆盖率的测试方法包括:将被测软件与所述被测软件控制的被控对象模型分别进行编译,组成所述被测软件和所述被控对象模型的闭环虚拟集成环境;对所述闭环虚拟集成环境进行编译生成测试所述代码覆盖率的集成工程;将所述测试用例导入到所述集成工程中进行自动化测试,按照所述代码覆盖率的测试报告的生成风格生成所述代码覆盖率的测试报告;根据所述代码覆盖率的测试报告确定所述测试用例对所述被测软件的功能的覆盖情况,根据所述覆盖情况调整所述测试用例。本申请可以实现对被测软件的代码覆盖率进行测试,为完善和补充测试用例提供帮助,快速提升测试质量。

Description

代码覆盖率的测试方法、装置和计算机设备
技术领域
本申请涉及整车控制技术领域,尤其涉及一种代码覆盖率的测试方法、装置和计算机设备。
背景技术
控制软件集成测试作为流程中重要的一个环节,可有效发现被测软件中的接口和策略问题,有效提高软件开发的效率。传统的软件测试无法对测试用例的工作情况进行评估,测试工作的优劣无法得到评估,测试工作者的价值无法得到体现。代码覆盖率是反映测试用例对被测软件覆盖程度的重要指标,也是衡量测试工作进展情况的重要指标,是对测试工作进行量化的重要指标之一。根据其覆盖内容的不同,又可以细分为:路径覆盖、语句覆盖、判定覆盖、条件覆盖和修正条件/判断覆盖(Modified Condition/DecisionCoverage;以下简称:MC/DC)等。
但是,现有相关技术中,并未提供用于代码覆盖率的测试的技术方案。
发明内容
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本申请的第一个目的在于提出一种代码覆盖率的测试方法,以实现对被测软件的代码覆盖率进行测试,为完善和补充测试用例提供帮助,快速提升测试质量。
本申请的第二个目的在于提出一种代码覆盖率的测试装置。
本申请的第三个目的在于提出一种计算机设备。
本申请的第四个目的在于提出一种非临时性计算机可读存储介质。
为达上述目的,本申请第一方面实施例提出了一种代码覆盖率的测试方法,包括:将被测软件与所述被测软件控制的被控对象模型分别进行编译,并将所述被测软件与所述被控对象模型的输入输出接口进行关联,组成所述被测软件和所述被控对象模型的闭环虚拟集成环境;根据所述被测软件的测试出口准则,配置代码覆盖率的测试报告的生成风格,以及对所述闭环虚拟集成环境进行编译生成测试所述代码覆盖率的集成工程;根据所述被测软件的测试需求编写测试用例,将所述测试用例导入到所述集成工程中进行自动化测试,按照所述代码覆盖率的测试报告的生成风格生成所述代码覆盖率的测试报告;根据所述代码覆盖率的测试报告确定所述测试用例对所述被测软件的功能的覆盖情况,根据所述覆盖情况调整所述测试用例。
本申请实施例的代码覆盖率的测试方法中,将被测软件与上述被测软件控制的被控对象模型分别进行编译,并将上述被测软件与上述被控对象模型的输入输出接口进行关联,组成上述被测软件和上述被控对象模型的闭环虚拟集成环境,根据上述被测软件的测试出口准则,配置代码覆盖率的测试报告的生成风格,以及对上述闭环虚拟集成环境进行编译生成测试上述代码覆盖率的集成工程,然后根据上述被测软件的测试需求编写测试用例,将上述测试用例导入到上述集成工程中进行自动化测试,按照上述代码覆盖率的测试报告的生成风格生成上述代码覆盖率的测试报告,最后根据上述代码覆盖率的测试报告确定上述测试用例对上述被测软件的功能的覆盖情况,根据上述覆盖情况调整上述测试用例,从而可以实现对被测软件的代码覆盖率进行测试,为完善和补充测试用例提供帮助,快速提升测试质量,并且将被测软件与被控对象模型进行虚拟化集成,测试平台和测试环境的复用性较好,软件开发人员和软件测试人员可以共用测试平台,在软件开发前期就可以对被测软件进行测试,软件测试和软件开发可以并行,弥补了现有相关技术中软件测试滞后于软件开发的缺陷。
为达上述目的,本申请第二方面实施例提出了一种代码覆盖率的测试装置,包括:编译模块,用于将被测软件与所述被测软件控制的被控对象模型分别进行编译,并将所述被测软件与所述被控对象模型的输入输出接口进行关联,组成所述被测软件和所述被控对象模型的闭环虚拟集成环境;生成模块,用于根据所述被测软件的测试出口准则,配置代码覆盖率的测试报告的生成风格,以及对所述闭环虚拟集成环境进行编译生成测试所述代码覆盖率的集成工程;测试模块,用于根据所述被测软件的测试需求编写测试用例,将所述测试用例导入到所述生成模块生成的集成工程中进行自动化测试,按照所述代码覆盖率的测试报告的生成风格生成所述代码覆盖率的测试报告;确定模块,用于根据所述测试模块生成的代码覆盖率的测试报告确定所述测试用例对所述被测软件的功能的覆盖情况;调整模块,用于根据所述确定模块确定的覆盖情况调整所述测试用例。
本申请实施例的代码覆盖率的测试装置中,编译模块将被测软件与上述被测软件控制的被控对象模型分别进行编译,并将上述被测软件与上述被控对象模型的输入输出接口进行关联,组成上述被测软件和上述被控对象模型的闭环虚拟集成环境,生成模块根据上述被测软件的测试出口准则,配置代码覆盖率的测试报告的生成风格,以及对上述闭环虚拟集成环境进行编译生成测试上述代码覆盖率的集成工程,然后测试模块根据上述被测软件的测试需求编写测试用例,将上述测试用例导入到上述集成工程中进行自动化测试,按照上述代码覆盖率的测试报告的生成风格生成上述代码覆盖率的测试报告,最后确定模块根据上述代码覆盖率的测试报告确定上述测试用例对上述被测软件的功能的覆盖情况,调整模块根据上述覆盖情况调整上述测试用例,从而可以实现对被测软件的代码覆盖率进行测试,为完善和补充测试用例提供帮助,快速提升测试质量,并且将被测软件与被控对象模型进行虚拟化集成,测试平台和测试环境的复用性较好,软件开发人员和软件测试人员可以共用测试平台,在软件开发前期就可以对被测软件进行测试,软件测试和软件开发可以并行,弥补了现有相关技术中软件测试滞后于软件开发的缺陷。
为达上述目的,本申请第三方面实施例提出了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上所述的方法。
为了实现上述目的,本申请第四方面实施例提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请代码覆盖率的测试方法一个实施例的流程图;
图2为本申请代码覆盖率的测试方法另一个实施例的流程图;
图3为本申请代码覆盖率的测试方法再一个实施例的流程图;
图4为本申请代码覆盖率的测试装置一个实施例的结构示意图;
图5为本申请计算机设备一个实施例的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
图1为本申请代码覆盖率的测试方法一个实施例的流程图,如图1所示,上述代码覆盖率的测试方法可以包括:
步骤101,将被测软件与上述被测软件控制的被控对象模型分别进行编译,并将上述被测软件与上述被控对象模型的输入输出接口进行关联,组成上述被测软件和上述被控对象模型的闭环虚拟集成环境。
具体地,可以根据上述被测软件的测试需求配置被控对象模型,需要仿真被测软件控制的被控对象,例如需要测试整车控制器,则需要仿真整车上除整车控制器外的其他部件。还需要配置上述被控对象模型的输入输出接口,确保被测软件和被控对象模型的输入输出接口进行匹配,并组成闭环虚拟集成环境。
步骤102,根据上述被测软件的测试出口准则,配置代码覆盖率的测试报告的生成风格,以及对上述闭环虚拟集成环境进行编译生成测试上述代码覆盖率的集成工程。
具体地,可以利用上述被测软件的测试出口准则,例如路径覆盖、条件覆盖或者MC/DC等,配置代码覆盖率的测试报告的生成风格。
由于需要对代码覆盖率进行测试,因此需要对上述闭环虚拟集成环境重新进行编译,生成能够进行代码覆盖率测试的集成工程。
步骤103,根据上述被测软件的测试需求编写测试用例,将上述测试用例导入到上述集成工程中进行自动化测试,按照上述代码覆盖率的测试报告的生成风格生成上述代码覆盖率的测试报告。
步骤104,根据上述代码覆盖率的测试报告确定上述测试用例对上述被测软件的功能的覆盖情况,根据上述覆盖情况调整上述测试用例。
具体地,根据上述代码覆盖率的测试报告确定上述测试用例对上述被测软件的功能的覆盖情况可以为:根据上述代码覆盖率的测试报告中包括的语句覆盖或判定覆盖的内容,确定上述测试用例对上述被测软件的功能的覆盖情况。
如果上述测试用例未覆盖到上述被测软件的全部功能,则需要根据上述测试报告针对性地增加测试用例并重新进行回归测试,保证上述测试用例能够覆盖上述被测软件的全部功能,提升软件测试的质量。
如果上述测试用例未覆盖的代码是死代码或该项目没有的功能,则需要专门填写代码覆盖率分析报告用于归档。
上述代码覆盖率的测试方法中,将被测软件与上述被测软件控制的被控对象模型分别进行编译,并将上述被测软件与上述被控对象模型的输入输出接口进行关联,组成上述被测软件和上述被控对象模型的闭环虚拟集成环境,根据上述被测软件的测试出口准则,配置代码覆盖率的测试报告的生成风格,以及对上述闭环虚拟集成环境进行编译生成测试上述代码覆盖率的集成工程,然后根据上述被测软件的测试需求编写测试用例,将上述测试用例导入到上述集成工程中进行自动化测试,按照上述代码覆盖率的测试报告的生成风格生成上述代码覆盖率的测试报告,最后根据上述代码覆盖率的测试报告确定上述测试用例对上述被测软件的功能的覆盖情况,根据上述覆盖情况调整上述测试用例,从而可以实现对被测软件的代码覆盖率进行测试,为完善和补充测试用例提供帮助,快速提升测试质量,并且将被测软件与被控对象模型进行虚拟化集成,测试平台和测试环境的复用性较好,软件开发人员和软件测试人员可以共用测试平台,在软件开发前期就可以对被测软件进行测试,软件测试和软件开发可以并行,弥补了现有相关技术中软件测试滞后于软件开发的缺陷。
图2为本申请代码覆盖率的测试方法另一个实施例的流程图,如图2所示,本申请图1所示实施例中,步骤101可以包括:
步骤201,根据上述被测软件的功能配置表确定所述被测软件的测试内容、被测软件的输入输出接口和测试出口准则。
其中,上述被测软件的输入输出接口包括控制器局域网络(Controller AreaNetwork;以下简称:CAN)接口、输入输出(Input Output;以下简称:IO)接口、电可擦可编程读写存储器(Electrically Erasable Programmable Read and Write Memory;以下简称:EEPROM)接口和故障诊断接口。
本实施例中,上述被测软件的测试内容包括本次测试包含的模块和功能,可以根据上述被测软件的功能配置表确定;上述被测软件的测试出口准则是检验被测软件是否符合预先定义的一组测试目标,需要根据上述被测软件的功能配置表进行制定。
步骤202,配置上述被控对象模型的CAN接口和输入输出接口,将上述被控对象模型的输入接口与上述被测软件的输出接口进行关联,将上述被控对象模型的输出接口与上述被测软件的输入接口进行关联。
进一步地,步骤202之后,还可以包括:
步骤203,通过上述被控对象模型对上述被测软件的EEPROM接口、故障诊断接口和统一诊断服务(Unified Diagnostic Services;以下简称:UDS)接口进行仿真。
本实施例中,被测软件中包含的与硬件相关的部分无法直接进行集成,需要通过被控对象模型进行仿真,主要包括EEPROM接口、故障诊断接口和UDS接口等。EEPROM接口需要专门配置上下电功能进行调整,保证EEPROM的数据能够在上下电过程中正常调用。
步骤204,配置上述被测软件的时间调度和初始化文件。
具体地,需要配置被测软件的时间调度和初始化文件等,并导入和生成A2L文件,方便后续调试和标定被测软件的内部数据。
步骤205,对上述闭环虚拟集成环境进行调试,完成上述被测软件基本功能的调试。
图3为本申请代码覆盖率的测试方法再一个实施例的流程图,如图3所示,本申请图1所示实施例中,步骤103可以包括:
步骤301,根据上述被测软件的测试需求编写测试用例,从上述测试用例中挑选冒烟测试用例对上述集成工程的基本功能进行验证。
步骤302,在上述集成工程的基本功能验证无误之后,执行上述测试用例。
步骤303,根据上述测试用例的执行结果,按照上述代码覆盖率的测试报告的生成风格生成上述代码覆盖率的测试报告。
上述代码覆盖率的测试方法可以实现对被测软件的代码覆盖率进行测试,为完善和补充测试用例提供帮助,快速提升测试质量,并且将被测软件与被控对象模型进行虚拟化集成,测试平台和测试环境的复用性较好,软件开发人员和软件测试人员可以共用测试平台,在软件开发前期就可以对被测软件进行测试,软件测试和软件开发可以并行,弥补了现有相关技术中软件测试滞后于软件开发的缺陷。
图4为本申请代码覆盖率的测试装置一个实施例的结构示意图,本实施例中的代码覆盖率的测试装置可以作为计算机设备,或者计算机设备的一部分实现本申请实施例提供的代码覆盖率的测试方法。
本实施例中,上述计算机设备可以为个人计算机(Personal Computer;以下简称:PC)、笔记本电脑或者服务器等,本实施例对上述计算机设备不作限定。
如图4所示,上述代码覆盖率的测试装置可以包括:编译模块41、生成模块42、测试模块43、确定模块44和调整模块45;
编译模块41,用于将被测软件与上述被测软件控制的被控对象模型分别进行编译,并将上述被测软件与上述被控对象模型的输入输出接口进行关联,组成上述被测软件和上述被控对象模型的闭环虚拟集成环境;具体地,编译模块41可以根据上述被测软件的测试需求配置被控对象模型,需要仿真被测软件控制的被控对象,例如需要测试整车控制器,则需要仿真整车上除整车控制器外的其他部件。编译模块41还需要配置上述被控对象模型的输入输出接口,确保被测软件和被控对象模型的输入输出接口进行匹配,并组成闭环虚拟集成环境。
生成模块42,用于根据上述被测软件的测试出口准则,配置代码覆盖率的测试报告的生成风格,以及对上述闭环虚拟集成环境进行编译生成测试上述代码覆盖率的集成工程;具体地,生成模块42可以利用上述被测软件的测试出口准则,例如路径覆盖、条件覆盖或者MC/DC等,配置代码覆盖率的测试报告的生成风格。
由于需要对代码覆盖率进行测试,因此生成模块42需要对上述闭环虚拟集成环境重新进行编译,生成能够进行代码覆盖率测试的集成工程。
测试模块43,用于根据上述被测软件的测试需求编写测试用例,将上述测试用例导入到生成模块42生成的集成工程中进行自动化测试,按照上述代码覆盖率的测试报告的生成风格生成上述代码覆盖率的测试报告;
确定模块44,用于根据测试模块43生成的代码覆盖率的测试报告确定上述测试用例对上述被测软件的功能的覆盖情况;本实施例中,确定模块44,具体用于根据上述代码覆盖率的测试报告中包括的语句覆盖或判定覆盖的内容,确定上述测试用例对上述被测软件的功能的覆盖情况。
如果上述测试用例未覆盖到上述被测软件的全部功能,则需要根据上述测试报告针对性地增加测试用例并重新进行回归测试,保证上述测试用例能够覆盖上述被测软件的全部功能,提升软件测试的质量。
如果上述测试用例未覆盖的代码是死代码或该项目没有的功能,则需要专门填写代码覆盖率分析报告用于归档。
调整模块45,用于根据确定模块44确定的覆盖情况调整上述测试用例。
本实施例中,编译模块41,具体用于根据上述被测软件的功能配置表确定上述被测软件的测试内容、被测软件的输入输出接口和测试出口准则,上述被测软件的输入输出接口包括CAN接口、IO接口、EEPROM接口和故障诊断接口;配置上述被控对象模型的CAN接口和输入输出接口,将上述被控对象模型的输入接口与上述被测软件的输出接口进行关联,将上述被控对象模型的输出接口与上述被测软件的输入接口进行关联。
其中,上述被测软件的测试内容包括本次测试包含的模块和功能,可以根据上述被测软件的功能配置表确定;上述被测软件的测试出口准则是检验被测软件是否符合预先定义的一组测试目标,需要根据上述被测软件的功能配置表进行制定。
进一步地,编译模块41,还用于通过上述被控对象模型对上述被测软件的EEPROM接口、故障诊断接口和UDS接口进行仿真;配置上述被测软件的时间调度和初始化文件;以及对上述闭环虚拟集成环境进行调试,完成上述被测软件基本功能的调试。
本实施例中,被测软件中包含的与硬件相关的部分无法直接进行集成,编译模块41需要通过被控对象模型进行仿真,主要包括EEPROM接口、故障诊断接口和UDS接口等。EEPROM接口需要专门配置上下电功能进行调整,保证EEPROM的数据能够在上下电过程中正常调用。另外,编译模块41需要配置被测软件的时间调度和初始化文件等,并导入和生成A2L文件,方便后续调试和标定被测软件的内部数据。
本实施例中,测试模块43,具体用于根据上述被测软件的测试需求编写测试用例,从上述测试用例中挑选冒烟测试用例对上述集成工程的基本功能进行验证;在上述集成工程的基本功能验证无误之后,执行上述测试用例;以及根据上述测试用例的执行结果,按照上述代码覆盖率的测试报告的生成风格生成上述代码覆盖率的测试报告。
上述代码覆盖率的测试装置中,编译模块41将被测软件与上述被测软件控制的被控对象模型分别进行编译,并将上述被测软件与上述被控对象模型的输入输出接口进行关联,组成上述被测软件和上述被控对象模型的闭环虚拟集成环境,生成模块42根据上述被测软件的测试出口准则,配置代码覆盖率的测试报告的生成风格,以及对上述闭环虚拟集成环境进行编译生成测试上述代码覆盖率的集成工程,然后测试模块43根据上述被测软件的测试需求编写测试用例,将上述测试用例导入到上述集成工程中进行自动化测试,按照上述代码覆盖率的测试报告的生成风格生成上述代码覆盖率的测试报告,最后确定模块44根据上述代码覆盖率的测试报告确定上述测试用例对上述被测软件的功能的覆盖情况,调整模块45根据上述覆盖情况调整上述测试用例,从而可以实现对被测软件的代码覆盖率进行测试,为完善和补充测试用例提供帮助,快速提升测试质量,并且将被测软件与被控对象模型进行虚拟化集成,测试平台和测试环境的复用性较好,软件开发人员和软件测试人员可以共用测试平台,在软件开发前期就可以对被测软件进行测试,软件测试和软件开发可以并行,弥补了现有相关技术中软件测试滞后于软件开发的缺陷。
图5为本申请计算机设备一个实施例的结构示意图,上述计算机设备12可以包括存储器、处理器及存储在上述存储器上并可在上述处理器上运行的计算机程序,上述处理器执行上述计算机程序时,实现本申请实施例提供的代码覆盖率的测试方法。
本实施例中,上述计算机设备可以为PC、笔记本电脑或者服务器等,本实施例对上述计算机设备不作限定。
图5示出了适于用来实现本申请实施方式的示例性计算机设备12的框图。图5显示的计算机设备12仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图5所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture;以下简称:ISA)总线,微通道体系结构(Micro Channel Architecture;以下简称:MAC)总线,增强型ISA总线、视频电子标准协会(Video Electronics StandardsAssociation;以下简称:VESA)局域总线以及外围组件互连(Peripheral ComponentInterconnection;以下简称:PCI)总线。
计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory;以下简称:RAM)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如:光盘只读存储器(Compact Disc Read OnlyMemory;以下简称:CD-ROM)、数字多功能只读光盘(Digital Video Disc Read OnlyMemory;以下简称:DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本申请各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本申请所描述的实施例中的功能和/或方法。
计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(Local Area Network;以下简称:LAN),广域网(Wide Area Network;以下简称:WAN)和/或公共网络,例如因特网)通信。如图5所示,网络适配器20通过总线18与计算机设备12的其它模块通信。应当明白,尽管图5中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本申请实施例提供的代码覆盖率的测试方法。
本申请还提供一种非临时性计算机可读存储介质,其上存储有计算机程序,上述计算机程序被处理器执行时实现本申请实施例提供的代码覆盖率的测试方法。
上述非临时性计算机可读存储介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(Read Only Memory;以下简称:ROM)、可擦式可编程只读存储器(ErasableProgrammable Read Only Memory;以下简称:EPROM)或闪存、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LocalArea Network;以下简称:LAN)或广域网(Wide Area Network;以下简称:WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(Random AccessMemory;以下简称:RAM),只读存储器(Read Only Memory;以下简称:ROM),可擦除可编辑只读存储器(Erasable Programmable Read Only Memory;以下简称:EPROM)或闪速存储器,光纤装置,以及便携式光盘只读存储器(Compact Disc Read Only Memory;以下简称:CD-ROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(ProgrammableGate Array;以下简称:PGA),现场可编程门阵列(Field Programmable Gate Array;以下简称:FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (12)

1.一种代码覆盖率的测试方法,其特征在于,包括:
将被测软件与所述被测软件控制的被控对象模型分别进行编译,并将所述被测软件与所述被控对象模型的输入输出接口进行关联,组成所述被测软件和所述被控对象模型的闭环虚拟集成环境;
根据所述被测软件的测试出口准则,配置代码覆盖率的测试报告的生成风格,以及对所述闭环虚拟集成环境进行编译生成测试所述代码覆盖率的集成工程;
根据所述被测软件的测试需求编写测试用例,将所述测试用例导入到所述集成工程中进行自动化测试,按照所述代码覆盖率的测试报告的生成风格生成所述代码覆盖率的测试报告;
根据所述代码覆盖率的测试报告确定所述测试用例对所述被测软件的功能的覆盖情况,根据所述覆盖情况调整所述测试用例。
2.根据权利要求1所述的方法,其特征在于,所述将所述被测软件与所述被控对象模型的输入输出接口进行关联,组成所述被测软件和所述被控对象模型的闭环虚拟集成环境包括:
根据所述被测软件的功能配置表确定所述被测软件的测试内容、被测软件的输入输出接口和测试出口准则,所述被测软件的输入输出接口包括控制器局域网络接口、输入输出接口、电可擦可编程读写存储器接口和故障诊断接口;
配置所述被控对象模型的控制器局域网络接口和输入输出接口,将所述被控对象模型的输入接口与所述被测软件的输出接口进行关联,将所述被控对象模型的输出接口与所述被测软件的输入接口进行关联。
3.根据权利要求2所述的方法,其特征在于,所述将所述被控对象模型的输入接口与所述被测软件的输出接口进行关联,将所述被控对象模型的输出接口与所述被测软件的输入接口进行关联之后,还包括:
通过所述被控对象模型对所述被测软件的电可擦可编程读写存储器接口、故障诊断接口和统一诊断服务接口进行仿真;
配置所述被测软件的时间调度和初始化文件;
对所述闭环虚拟集成环境进行调试,完成所述被测软件基本功能的调试。
4.根据权利要求1所述的方法,其特征在于,所述根据所述被测软件的测试需求编写测试用例,将所述测试用例导入到所述集成工程中进行自动化测试,按照所述代码覆盖率的测试报告的生成风格生成所述代码覆盖率的测试报告包括:
根据所述被测软件的测试需求编写测试用例,从所述测试用例中挑选冒烟测试用例对所述集成工程的基本功能进行验证;
在所述集成工程的基本功能验证无误之后,执行所述测试用例;
根据所述测试用例的执行结果,按照所述代码覆盖率的测试报告的生成风格生成所述代码覆盖率的测试报告。
5.根据权利要求1所述的方法,其特征在于,所述根据所述代码覆盖率的测试报告确定所述测试用例对所述被测软件的功能的覆盖情况包括:
根据所述代码覆盖率的测试报告中包括的语句覆盖或判定覆盖的内容,确定所述测试用例对所述被测软件的功能的覆盖情况。
6.一种代码覆盖率的测试装置,其特征在于,包括:
编译模块,用于将被测软件与所述被测软件控制的被控对象模型分别进行编译,并将所述被测软件与所述被控对象模型的输入输出接口进行关联,组成所述被测软件和所述被控对象模型的闭环虚拟集成环境;
生成模块,用于根据所述被测软件的测试出口准则,配置代码覆盖率的测试报告的生成风格,以及对所述闭环虚拟集成环境进行编译生成测试所述代码覆盖率的集成工程;
测试模块,用于根据所述被测软件的测试需求编写测试用例,将所述测试用例导入到所述生成模块生成的集成工程中进行自动化测试,按照所述代码覆盖率的测试报告的生成风格生成所述代码覆盖率的测试报告;
确定模块,用于根据所述测试模块生成的代码覆盖率的测试报告确定所述测试用例对所述被测软件的功能的覆盖情况;
调整模块,用于根据所述确定模块确定的覆盖情况调整所述测试用例。
7.根据权利要求6所述的装置,其特征在于,
所述编译模块,具体用于根据所述被测软件的功能配置表确定所述被测软件的测试内容、被测软件的输入输出接口和测试出口准则,所述被测软件的输入输出接口包括控制器局域网络接口、输入输出接口、电可擦可编程读写存储器接口和故障诊断接口;配置所述被控对象模型的控制器局域网络接口和输入输出接口,将所述被控对象模型的输入接口与所述被测软件的输出接口进行关联,将所述被控对象模型的输出接口与所述被测软件的输入接口进行关联。
8.根据权利要求7所述的装置,其特征在于,
所述编译模块,还用于通过所述被控对象模型对所述被测软件的电可擦可编程读写存储器接口、故障诊断接口和统一诊断服务接口进行仿真;配置所述被测软件的时间调度和初始化文件;以及对所述闭环虚拟集成环境进行调试,完成所述被测软件基本功能的调试。
9.根据权利要求6所述的装置,其特征在于,
所述测试模块,具体用于根据所述被测软件的测试需求编写测试用例,从所述测试用例中挑选冒烟测试用例对所述集成工程的基本功能进行验证;在所述集成工程的基本功能验证无误之后,执行所述测试用例;以及根据所述测试用例的执行结果,按照所述代码覆盖率的测试报告的生成风格生成所述代码覆盖率的测试报告。
10.根据权利要求6所述的装置,其特征在于,
所述确定模块,具体用于根据所述代码覆盖率的测试报告中包括的语句覆盖或判定覆盖的内容,确定所述测试用例对所述被测软件的功能的覆盖情况。
11.一种计算机设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1-5中任一所述的方法。
12.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-5中任一所述的方法。
CN201710898392.1A 2017-09-28 2017-09-28 代码覆盖率的测试方法、装置和计算机设备 Active CN107807881B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710898392.1A CN107807881B (zh) 2017-09-28 2017-09-28 代码覆盖率的测试方法、装置和计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710898392.1A CN107807881B (zh) 2017-09-28 2017-09-28 代码覆盖率的测试方法、装置和计算机设备

Publications (2)

Publication Number Publication Date
CN107807881A true CN107807881A (zh) 2018-03-16
CN107807881B CN107807881B (zh) 2020-09-11

Family

ID=61591896

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710898392.1A Active CN107807881B (zh) 2017-09-28 2017-09-28 代码覆盖率的测试方法、装置和计算机设备

Country Status (1)

Country Link
CN (1) CN107807881B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109002397A (zh) * 2018-07-25 2018-12-14 北京新能源汽车股份有限公司 一种控制器冒烟测试系统及测试方法
CN109344081A (zh) * 2018-10-31 2019-02-15 杭州安恒信息技术股份有限公司 基于标签脚本实现自动化覆盖率统计的方法及装置
CN109460357A (zh) * 2018-10-19 2019-03-12 北京新能源汽车股份有限公司 一种代码覆盖率的测试方法、装置和设备
CN109634865A (zh) * 2018-12-13 2019-04-16 平安科技(深圳)有限公司 一种代码转测方法、装置及转测终端
CN110221981A (zh) * 2019-06-17 2019-09-10 北京车和家信息技术有限公司 嵌入式软件的测试方法及装置
CN110471829A (zh) * 2018-05-09 2019-11-19 阿里巴巴集团控股有限公司 软件代码测试覆盖率的检查方法及装置
CN112771505A (zh) * 2018-09-28 2021-05-07 微软技术许可有限责任公司 通过不一致处置检测的软件测试保证
CN113010424A (zh) * 2021-03-17 2021-06-22 平安壹钱包电子商务有限公司 接口自动化测试处理方法、系统、计算机设备与存储介质
CN113094258A (zh) * 2021-03-16 2021-07-09 平安普惠企业管理有限公司 精准测试方法、装置、计算机设备及介质
CN113254328A (zh) * 2021-04-29 2021-08-13 厦门国际银行股份有限公司 白盒测试方法、系统、移动终端及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150161026A1 (en) * 2013-12-09 2015-06-11 International Business Machines Corporation System and method for determining test coverage
CN104866419A (zh) * 2014-10-17 2015-08-26 北汽福田汽车股份有限公司 一种虚拟平台以及应用层软件测试方法及系统
CN106776338A (zh) * 2016-12-30 2017-05-31 北京金山安全软件有限公司 一种测试方法、装置及服务器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150161026A1 (en) * 2013-12-09 2015-06-11 International Business Machines Corporation System and method for determining test coverage
CN104866419A (zh) * 2014-10-17 2015-08-26 北汽福田汽车股份有限公司 一种虚拟平台以及应用层软件测试方法及系统
CN106776338A (zh) * 2016-12-30 2017-05-31 北京金山安全软件有限公司 一种测试方法、装置及服务器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
吕峰等: "整车电控系统硬件在环测试技术研究", 《汽车电器》 *

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110471829A (zh) * 2018-05-09 2019-11-19 阿里巴巴集团控股有限公司 软件代码测试覆盖率的检查方法及装置
CN110471829B (zh) * 2018-05-09 2023-07-18 阿里巴巴集团控股有限公司 软件代码测试覆盖率的检查方法及装置
CN109002397B (zh) * 2018-07-25 2022-07-22 北京新能源汽车股份有限公司 一种控制器冒烟测试系统及测试方法
CN109002397A (zh) * 2018-07-25 2018-12-14 北京新能源汽车股份有限公司 一种控制器冒烟测试系统及测试方法
CN112771505A (zh) * 2018-09-28 2021-05-07 微软技术许可有限责任公司 通过不一致处置检测的软件测试保证
CN109460357A (zh) * 2018-10-19 2019-03-12 北京新能源汽车股份有限公司 一种代码覆盖率的测试方法、装置和设备
CN109344081A (zh) * 2018-10-31 2019-02-15 杭州安恒信息技术股份有限公司 基于标签脚本实现自动化覆盖率统计的方法及装置
CN109344081B (zh) * 2018-10-31 2022-03-11 杭州安恒信息技术股份有限公司 基于标签脚本实现自动化覆盖率统计的方法及装置
CN109634865A (zh) * 2018-12-13 2019-04-16 平安科技(深圳)有限公司 一种代码转测方法、装置及转测终端
CN109634865B (zh) * 2018-12-13 2024-03-22 平安科技(深圳)有限公司 一种代码转测方法、装置及转测终端
CN110221981A (zh) * 2019-06-17 2019-09-10 北京车和家信息技术有限公司 嵌入式软件的测试方法及装置
CN113094258A (zh) * 2021-03-16 2021-07-09 平安普惠企业管理有限公司 精准测试方法、装置、计算机设备及介质
CN113010424A (zh) * 2021-03-17 2021-06-22 平安壹钱包电子商务有限公司 接口自动化测试处理方法、系统、计算机设备与存储介质
CN113010424B (zh) * 2021-03-17 2024-04-02 平安壹钱包电子商务有限公司 接口自动化测试处理方法、系统、计算机设备与存储介质
CN113254328B (zh) * 2021-04-29 2022-08-09 厦门国际银行股份有限公司 白盒测试方法、系统、移动终端及存储介质
CN113254328A (zh) * 2021-04-29 2021-08-13 厦门国际银行股份有限公司 白盒测试方法、系统、移动终端及存储介质

Also Published As

Publication number Publication date
CN107807881B (zh) 2020-09-11

Similar Documents

Publication Publication Date Title
CN107807881A (zh) 代码覆盖率的测试方法、装置和计算机设备
CN103064299B (zh) 一种风力发电机组在环仿真测控系统及其测试方法
US5801958A (en) Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, including interactive system for hierarchical display of control and dataflow information
CN106547678B (zh) 用于白盒测试的方法和装置
US7340693B2 (en) System for designing re-programmable digital hardware platforms
CN105572573B (zh) 用于存储器时序测试的扫描链、扫描链构建方法和相应装置
CN108572312A (zh) SoC芯片测试方法、装置、系统和SoC芯片测试验证板
US20140236527A1 (en) Cloud based infrastructure for supporting protocol reconfigurations in protocol independent device testing systems
CN107506300A (zh) 一种用户界面测试方法、装置、服务器和存储介质
WO2010099124A1 (en) Netlist synthesis using multiple synthesis configurations
CN105068927A (zh) 基于关键字驱动的城轨传动控制单元自动化测试方法
JP2002526908A (ja) ブロックをベースとする設計方法
EP2850529A2 (en) System and methods for generating and managing a virtual device
JPH10232890A (ja) プログラマブル論理回路のための組み込み式論理アナライザー
US11568232B2 (en) Deep learning FPGA converter
US20070050166A1 (en) Method and system for simulating test instruments and instrument functions
CN109409533A (zh) 一种机器学习模型的生成方法、装置、设备及存储介质
CN107562969A (zh) 航空发动机控制系统软件的集成方法和装置
CN109101228A (zh) 应用程序的执行方法和装置
CN107678958A (zh) 一种用于综合参数显示系统软件的测试方法
EP4004794B1 (en) Performance based system configuration as preprocessing for system peformance simulation
Zietsch et al. Enabling smart manufacturing through a systematic planning framework for edge computing
CN109885781A (zh) 混合页面统一浏览方法、装置、设备和存储介质
CN104360946B (zh) 一种测试缺陷的计算机实现的方法及计算机
CN109032947A (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