掌桥专利:专业的专利平台
掌桥专利
首页

一种软件实物测试覆盖率收集方法及装置、电子设备

文献发布时间:2023-06-19 11:57:35


一种软件实物测试覆盖率收集方法及装置、电子设备

技术领域

本发明涉及软件测试验证技术领域,尤其涉及一种软件实物测试覆盖率收集方法及装置。

背景技术

近年来,可编程逻辑器件软件在航空、航天、船舶、铁路等产品中的应用与日俱增。可编程逻辑器件可以由用户通过软件进行配置和编程,从而完成某种特定的功能,且可以反复擦写。在修改和升级时,不需额外地改变硬件设计,只是在计算机上修改和更新程序,使硬件设计工作成为软件开发工作,缩短了系统设计的周期,提高了实现的灵活性并降低了成本。

随着可编程逻辑器件软件产品设计的功能复杂度越来越高,可编程逻辑器件软件的测试验证成为关注焦点。可编程逻辑器件软件的动态测试一般通过仿真测试和实物测试两种方式来进行。而随着可编程逻辑器件软件规模越来越大,测试需要覆盖的语句、分支、条件、表达式、状态机、翻转等呈规模增长,导致全覆盖越加困难,仿真测试的效率呈几何下降,测试验证质量和进度计划难以保证。实物测试虽然测试速度快,但由于可编程逻辑器件软件具有很强的硬件特性,而代码和实物之间的一一对应关系很难追溯,导致实物测试可测性差、且无法收集语句、分支、条件、表达式、状态机、翻转等的覆盖率,难以说明测试验证的充分性。

发明内容

本发明的目的在于提供一种软件实物测试覆盖率收集方法及装置,可以利用实物测试波形反演收集测试覆盖率,可以提高测试效率,并验证测试充分性。

为实现上述目的,本发明提供了一种软件实物测试覆盖率收集方法,包括如下步骤:为被测软件设置多个实物测试用例;在每一实物测试用例执行时,采样和存储被测软件对应的实物波形;将所述实物波形转换成可驱动所述被测软件的驱动波形;在仿真环境中运行所述驱动波形和所述被测软件,并获取每一所述驱动波形运行完毕后的用例覆盖率;收集所有所述用例覆盖率,获取所述被测软件的实物测试覆盖率。

进一步的实施例中,在每一实物测试用例执行时,采集所述被测软件对应的输入管脚信号的波形,得到对应的实物波形。

进一步的实施例中,所述实物波形被存储为自定义格式的数据文件。

进一步的实施例中,将每一所述实物波形转换成IEEE标准定义的VCD标准波形,得到对应的驱动波形。

进一步的实施例中,在单个计算机上采用串行的方式,运行所述驱动波形和所述被测软件;或在多个计算机上采用并行的方式,运行所述驱动波形和所述被测软件。

进一步的实施例中,获取所有所述用例覆盖率的并集作为所述被测软件的实物测试覆盖率。

为实现上述目的,本发明还提供了一种软件实物测试覆盖率收集装置,包括:用例设置单元,用于为被测软件设置多个实物测试用例;波形采样存储单元,用于在每一实物测试用例执行时,采样和存储被测软件对应的实物波形;波形转换单元,用于将所述实物波形转换成可驱动所述被测软件的驱动波形;用例覆盖率获取单元,用于在仿真环境中运行所述驱动波形和所述被测软件,并用例每一所述驱动波形运行完毕后的用例覆盖率;覆盖率收集单元,用于收集所有所述用例覆盖率,获取所述被测软件的实物测试覆盖率。

进一步的实施例中,所述波形采样存储单元进一步用于在每一实物测试用例执行时,采集所述被测软件对应的输入管脚信号的波形,得到对应的实物波形,并将所述实物波形存储为自定义格式的数据文件。

进一步的实施例中,所述用例覆盖率获取单元进一步用于:在单个计算机上采用串行的方式,运行所述驱动波形和所述被测软件;或在多个计算机上采用并行的方式,运行所述驱动波形和所述被测软件。

为实现上述目的,本发明还提供了一种电子设备,所述电子设备包括:处理器;以及存储器,所述存储器中存储有计算机可执行指令,在所述计算机可执行指令被所述处理器执行时,使得本发明所述方法的步骤被执行。

本发明的有益效果在于:本发明通过采样和存储实物测试用例执行时的实物波形,然后对实物波形数据进行加工,转换成能够驱动被测软件的驱动波形数据,并在仿真环境中用驱动波形数据去驱动被测软件运行,然后统计单个用例覆盖率,合并得到被测软件的实物测试覆盖率。由于在仿真环境中收集覆盖率,因此可以充分利用自动化技术和并行技术,同时运行多个实物测试用例,提高测试效率,并验证测试充分性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面结合附图,通过对本发明的具体实施方式详细描述,将使本发明的技术方案及其它有益效果显而易见。显而易见地,下面描述中的附图仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本发明第一实施例提供的软件实物测试覆盖率收集方法的流程图;

图2为本发明第二实施例提供的软件实物测试覆盖率收集方法的流程图;

图3为本发明第三实施例提供的软件实物测试覆盖率收集装置架构示意图;

图4为本发明第四实施例提供的电子设备的架构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的组件或具有相同或类似功能的组件。本发明的说明书和权利要求书以及附图中的术语“第一”“第二”“第三”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。此外,术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排它的包含。

在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“相连”“连接”应做广义理解。例如,可以是电连接或相互通讯,可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。应当理解,当称元件“耦接”另一元件时,存在中间元件。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

请参阅图1,其为本发明第一实施例提供的软件实物测试覆盖率收集方法的流程图。如图1所示,本实施例所述的软件实物测试覆盖率收集方法包括如下步骤:步骤S11、为被测软件设置多个实物测试用例;步骤S12、在每一实物测试用例执行时,采样和存储被测软件对应的实物波形;步骤S13、将所述实物波形转换成可驱动所述被测软件的驱动波形;步骤S14、在仿真环境中运行所述驱动波形和所述被测软件,并获取每一所述驱动波形运行完毕后的用例覆盖率;以及步骤S15、收集所有所述用例覆盖率,获取所述被测软件的实物测试覆盖率。以下给出详细说明。

关于步骤S11、为被测软件设置多个实物测试用例。

具体地,在本步骤中,被测软件为可编程逻辑器件软件。可以采用因果图来设计测试用例,也可以采用正交试验设计测试用例。例如,可以针对被测软件设计N个实物测试用例,用例1,用例2,…,用例N(N≥2)。通过为被测软件设置多个实物测试用例,可以通过同时运行多个实物测试用例,提高测试效率,并验证测试充分性。

关于步骤S12、在每一实物测试用例执行时,采样和存储被测软件对应的实物波形。

进一步的实施例中,可以在每一实物测试用例执行时,采集所述被测软件对应的输入管脚信号的波形,得到对应的实物波形。具体地,由于被测软件(可编程逻辑器件软件)运行在目标芯片(可编程逻辑器件上),因此采集目标芯片上的输入管脚信号的波形。例如,采集用例1执行时对应的波形得到实物波形1,采集用例2执行时对应的波形得到实物波形2,…,采集用例N执行时对应的波形得到实物波形N。

进一步的实施例中,所述实物波形被存储为自定义格式的数据文件。

关于步骤S13、将所述实物波形转换成可驱动所述被测软件的驱动波形。

进一步的实施例中,可以将每一所述实物波形转换成IEEE标准定义的VCD标准波形,得到对应的驱动波形。VCD(Value Change Dump)文件是IEEE1364标准(Verilog HDL语言标准)中定义的一种ASCII文件,是通用的文件格式。VCD文件主要包含了头信息、变量的预定义和变量值的变化信息。由于它包含了信号的变化信息,就相当于记录了整个仿真的信息,因此可以用这个文件来再现仿真,也就能够显示波形。因为VCD是Verilog HDL语言标准的一部分,因此所有的Verilog的仿真器都能够查看该文件,允许用户Verilog代码中通过系统函数来转储(dump)VCD文件。

进一步的实施例中,可以通过编写程序将自定义格式的实物波形转换成IEEE标准定义的VCD标准波形,从而将每个实物波形单独转换成一个驱动波形。例如,对实物波形1进行转换得到驱动波形1,对实物波形2进行转换得到驱动波形2,…,对实物波形N进行转换得到驱动波形N。

关于步骤S14、在仿真环境中运行所述驱动波形和所述被测软件,并获取每一所述驱动波形运行完毕后的用例覆盖率。

具体地,在本步骤中,在仿真软件中运行驱动波形和被测软件,并获取每一所述驱动波形运行完毕后的用例覆盖率,直到所有驱动波形结束。例如,根据运行的驱动波形1获取用例覆盖率1,根据运行的驱动波形2获取用例覆盖率2,…,根据运行的驱动波形N获取用例覆盖率N。

进一步的实施例中,可以在单个计算机上采用串行的方式,运行所述驱动波形和所述被测软件;也可以在多个计算机上采用并行的方式,运行所述驱动波形和所述被测软件。通过采用并行的方式,可以加快运行速度,提高测试效率。

关于步骤S15、收集所有所述用例覆盖率,获取所述被测软件的实物测试覆盖率。

进一步的实施例中,获取所有所述用例覆盖率的并集作为所述被测软件的实物测试覆盖率。可以通过编写程序合并所有用例覆盖率,取所有用例覆盖率的并集,得到所述被测软件的实物测试覆盖率。由于针对被测软件设计了多个实物测试用例,因此多个实物测试用例对应的用例覆盖率的并集即为所述被测软件的实物测试覆盖率。例如,合并用例1对应的用例覆盖率1、用例2对应的用例覆盖率2、…、用例N对应的用例覆盖率N,得到所述被测软件的实物测试覆盖率。

本实施例软件实物测试覆盖率收集方法,通过采样和存储实物测试用例执行时的实物波形,然后对实物波形数据进行加工,转换成能够驱动被测软件的驱动波形数据,并在仿真环境中用驱动波形数据去驱动被测软件运行,然后统计单个用例覆盖率,合并得到被测软件的实物测试覆盖率。由于在仿真环境中收集覆盖率,因此可以充分利用自动化技术和并行技术,同时运行多个实物测试用例,提高测试效率,并验证测试充分性。

请参阅图2,其为本发明第二实施例提供的软件实物测试覆盖率收集方法的流程图。

如图2所示,本实施例所述的软件实物测试覆盖率收集方法的工作流程为:(1)针对被测软件设计N个实物测试用例,用例1,用例2,…,用例N(N≥2);(2)采集用例1执行时对应的波形得到实物波形1,采集用例2执行时对应的波形得到实物波形2,…,采集用例N执行时对应的波形得到实物波形N;(3)对实物波形1进行转换得到驱动波形1,对实物波形2进行转换得到驱动波形2,…,对实物波形N进行转换得到驱动波形N;(4)在N个计算机上采用并行的方式运行所述驱动波形和所述被测软件;根据运行的驱动波形1获取用例覆盖率1,根据运行的驱动波形2获取用例覆盖率2,…,根据运行的驱动波形N获取用例覆盖率N;(5)合并所有用例覆盖率,取所有用例覆盖率的并集,得到所述被测软件的实物测试覆盖率。

本实施例软件实物测试覆盖率收集方法,由于在仿真环境中收集覆盖率,通过在多个计算机上采用并行的方式运行驱动波形和被测软件,可以充分利用自动化技术和并行技术,同时运行多个实物测试用例,可以加快运行速度,提高测试效率,并验证测试充分性。

基于同一发明构思,本发明还提供一种软件实物测试覆盖率收集装置。

请参阅图3,其为本发明第三实施例提供的软件实物测试覆盖率收集装置架构示意图。如图3所示,本实施例所述的软件实物测试覆盖率收集装置30的包括:用例设置单元31、波形采样存储单元32、波形转换单元33、用例覆盖率获取单元34以及覆盖率收集单元35。

具体地,用例设置单元31用于为被测软件设置多个实物测试用例;波形采样存储单元32用于在每一实物测试用例执行时,采样和存储被测软件对应的实物波形;波形转换单元33用于将所述实物波形转换成可驱动所述被测软件的驱动波形;用例覆盖率获取单元34用于在仿真环境中运行所述驱动波形和所述被测软件,并用例每一所述驱动波形运行完毕后的用例覆盖率;覆盖率收集单元35用于收集所有所述用例覆盖率,获取所述被测软件的实物测试覆盖率。具体地,被测软件为可编程逻辑器件软件。

进一步的实施例中,用例设置单元31可以采用因果图来设计测试用例,也可以采用正交试验设计测试用例。例如,可以针对被测软件设计N个实物测试用例,用例1,用例2,…,用例N(N≥2)。通过为被测软件设置多个实物测试用例,可以通过同时运行多个实物测试用例,提高测试效率,并验证测试充分性。

进一步的实施例中,波形采样存储单元32可以用于在每一实物测试用例执行时,采集所述被测软件对应的输入管脚信号的波形,得到对应的实物波形,并将所述实物波形存储为自定义格式的数据文件。具体地,由于被测软件(可编程逻辑器件软件)运行在目标芯片(可编程逻辑器件上),因此采集目标芯片上的输入管脚信号的波形,将其存储为自定义格式的数据文件。例如,采集用例1执行时对应的波形得到实物波形1,采集用例2执行时对应的波形得到实物波形2,…,采集用例N执行时对应的波形得到实物波形N。

进一步的实施例中,波形转换单元33可以将每一所述实物波形转换成IEEE标准定义的VCD标准波形,得到对应的驱动波形。具体地,波形转换单元33可以通过编写程序将自定义格式的实物波形转换成IEEE标准定义的VCD标准波形,从而将每个实物波形单独转换成一个驱动波形。例如,对实物波形1进行转换得到驱动波形1,对实物波形2进行转换得到驱动波形2,…,对实物波形N进行转换得到驱动波形N。

进一步的实施例中,用例覆盖率获取单元34可以在单个计算机上采用串行的方式运行所述驱动波形和所述被测软件,也可以在多个计算机上采用并行的方式运行所述驱动波形和所述被测软件。通过采用并行的方式,可以加快运行速度,提高测试效率。具体地,用例覆盖率获取单元34在仿真软件中运行驱动波形和被测软件,并获取每一所述驱动波形运行完毕后的用例覆盖率,直到所有驱动波形结束。例如,根据运行的驱动波形1获取用例覆盖率1,根据运行的驱动波形2获取用例覆盖率2,…,根据运行的驱动波形N获取用例覆盖率N。

进一步的实施例中,覆盖率收集单元35获取所有所述用例覆盖率的并集作为所述被测软件的实物测试覆盖率。覆盖率收集单元35可以通过编写程序合并所有用例覆盖率,取所有用例覆盖率的并集,得到所述被测软件的实物测试覆盖率。由于针对被测软件设计了多个实物测试用例,因此多个实物测试用例对应的用例覆盖率的并集即为所述被测软件的实物测试覆盖率。例如,合并用例1对应的用例覆盖率1、用例2对应的用例覆盖率2、…、用例N对应的用例覆盖率N,得到所述被测软件的实物测试覆盖率。

需要说明的是,附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件电路或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实。同时,未在本实施例中详述的部分内容,可参考前述实施例。

本实施例软件实物测试覆盖率收集装置,通过采样和存储实物测试用例执行时的实物波形,然后对实物波形数据进行加工,转换成能够驱动被测软件的驱动波形数据,并在仿真环境中用驱动波形数据去驱动被测软件运行,然后统计单个用例覆盖率,合并得到被测软件的实物测试覆盖率。由于在仿真环境中收集覆盖率,因此可以充分利用自动化技术和并行技术,同时运行多个实物测试用例,提高测试效率,并验证测试充分性。

基于同一发明构思,本发明还提供了一种电子设备。所述电子设备可以为PC客户端、服务器等设备。

请参阅图4,其为本发明第四实施例提供的电子设备的架构示意图。所述电子设备40包括处理器401以及存储器402。其中,所述处理器401与所述存储器402电性连接。

所述处理器401是所述电子设备40的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或加载存储在所述存储器402内的应用程序,以及调用存储在存储器402内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。

所述存储器402用于存储计算机可执行指令;在所述计算机可执行指令被所述处理器401执行时,使得如本发明前述的方法的步骤被执行。

本发明实施例所述的方法,可以使用相关领域中的技术人员所知的计算机系统或架构来实现。计算机系统,例如PDA、智能手机,掌上型电脑、服务器、客户端或任何其它类型的专用或通用电子设备,因可以适用或者适合于特定应用或者环境而可以被使用。计算机系统可以包括一个或多个处理器,其可以使用诸如微处理器、微控制器或其它控制处理模块的通用或专用处理引擎来实现的。

计算机系统还可以包括用于存储要由处理器执行的信息和指令的主存储器,例如随机存取存储器或其它动态存储器。这种主存储器也可以用于存储由处理器待执行的指令执行期间的暂时变量或其它中间信息。计算机系统同样可以包括用于处理器的存储静态信息和处理器指令的只读存储器或其它静态存储设备。

计算机系统还可以包括信息存储系统,例如,其可以包括介质驱动器和可移动存储接口。介质驱动器可以包括驱动器或其它机制以支持固定或可移动存储介质,诸如硬盘驱动器、软盘驱动器、磁带驱动器、光盘驱动器、光盘、数字视频驱动器、读或写驱动器、其它可移动或固定介质驱动器。例如,存储介质可以包括例如硬盘、软盘、磁带、光盘、CD或DVD或由介质驱动器读和写的其它固定或可移动介质。存储介质可以包括具有存储在其中的特定计算机软件或数据的计算机可读存储介质。

所述计算机系统也可以包括通信接口。这样的通信接口可以被使用以允许软件和数据在计算机系统和外部设备之间传输。本实施例中,通信接口可以包括调制解调器、网络接口(例如,以太网或其它NIC卡)、通信端口(例如,USB端口)、PCMCIA槽与卡等。通过通信接口传输的软件和数据是以信号的形式进行传输,可以是电子的,电磁的,光学的或其它能够被通信接口介质接收的信号。

在本文中,术语“计算机可执行指令”、“计算机可读介质”等可以通常用于指的有形介质,例如,存储器、存储设备或存储单元。这些形式和其它形式的计算机可读介质可以存储一个或多个指令,以由包括计算机系统的处理器使用,以使处理器执行指定操作。这些指令,通常称为“计算机程序代码”(其可以以计算机程序的形式或其它组合来组合),在被执行时,使得计算机系统执行本发明实施例的功能。注意的是,该代码可以直接使得处理器执行特定操作,被编译成这样做,和/或与其它软件、硬件和/或固件(例如,执行标准功能的库)组合以这样做。

在使用软件实现元件的实施例中,使用例如可移动存储驱动器,软件可以被存储在计算机可读介质中,以及被加载到计算机系统中。当由计算机系统中的处理器执行时,控制模块(在本示例中,为软件指令或计算机可执行程序代码)使得处理器执行如本文所述的本发明的功能。

可以理解的是,为了清楚的目的,上面已经参照单个处理逻辑描述了本发明的实施例。然而,本发明构思同样可以通过多个不同的功能单元和处理器来实现,以提供信号处理功能。因此,对特定功能单元的引用仅被视为对用于提供所描述功能的合适手段的引用,而不是指示严格的逻辑或物理结构或组织。

本发明的各方面可以以包括硬件,软件,固件及其任何组合的任何适当形式来实现。可选地,本发明可以至少部分地作为在一个或多个数据处理器和/或数字信号处理器或诸如FPGA器件的可配置模块组件上运行的计算机软件来实现。因此,本发明的实施例的元件和组件可以以任何合适的方式在物理上,功能上和逻辑上实现。实际上,功能可以以单个单元,多个单元或作为其它功能单元的一部分来实现。

以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想;本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例的技术方案的范围。

相关技术
  • 一种软件实物测试覆盖率收集方法及装置、电子设备
  • 安卓软件集成测试中的覆盖率测试方法、装置
技术分类

06120113117405