CN116775498A - 软件测试的方法、装置、电子设备及存储介质 - Google Patents

软件测试的方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN116775498A
CN116775498A CN202311048845.3A CN202311048845A CN116775498A CN 116775498 A CN116775498 A CN 116775498A CN 202311048845 A CN202311048845 A CN 202311048845A CN 116775498 A CN116775498 A CN 116775498A
Authority
CN
China
Prior art keywords
test
software
tested
task
test result
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.)
Pending
Application number
CN202311048845.3A
Other languages
English (en)
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.)
Xiaomi Automobile Technology Co Ltd
Original Assignee
Xiaomi Automobile Technology 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 Xiaomi Automobile Technology Co Ltd filed Critical Xiaomi Automobile Technology Co Ltd
Priority to CN202311048845.3A priority Critical patent/CN116775498A/zh
Publication of CN116775498A publication Critical patent/CN116775498A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本公开提出一种软件测试的方法、装置、电子设备及存储介质,涉及软件测试技术领域。包括:接收测试服务器发送的测试请求,所述测试请求中包含有待测试任务对应的测试数据;基于所述测试数据,运行待测试软件,以确定所述待测试任务对应的第一测试结果;获取所述待测试软件在运行过程中的运行信息;将所述运行信息和所述第一测试结果发送给所述测试服务器,以使所述测试服务器确定所述待测试软件的第二测试结果。由此,能够覆盖软件内部逻辑测试,覆盖的测试范围更大,可以通过软件的方式产生测试数据输入,提高了测试效率。

Description

软件测试的方法、装置、电子设备及存储介质
技术领域
本公开涉及软件测试技术领域,尤其涉及一种软件测试的方法、装置、电子设备及存储介质。
背景技术
在智能汽车时代,车载软件的迭代越来越快,功能也越来越复杂。同时,车载软件对于可靠性的要求也变得越来越高。当前为了快速发现软件中的缺陷,往往用自动化测试的方法,来提升软件测试的效率。
车载软件通常运行在汽车控制器中。相关技术中,通常是选择搭建一个硬件的测试环境,以汽车控制器为测试对象,并输入不同的测试数据或者信号,然后检测控制器的外部物理表现或者对外产生的信号输出,比较外部表现或信号输出是否符合预期,来判定测试是否合格。
然而,上述方案需要搭建硬件测试环境,测试结果的判断非常依赖硬件资源。由于设备接收外界数据输入的接口是有限的,容易导致软件内部逻辑的测试覆盖会不足,而且在缺乏测试需要的信号输入设备时,也会导致测试无法进行。
因而,如何降低软件测试对硬件资源的依赖程度,是目前亟需解决的问题。
发明内容
本公开旨在至少在一定程度上解决相关技术中的技术问题之一。
本公开第一方面提出了一种软件测试的方法,由第一设备执行,包括:
接收测试服务器发送的测试请求,所述测试请求中包含有待测试任务对应的测试数据;
基于所述测试数据,运行待测试软件,以确定所述待测试任务对应的第一测试结果;
获取所述待测试软件在运行过程中的运行信息;
将所述运行信息和所述第一测试结果发送给所述测试服务器,以使所述测试服务器确定所述待测试软件的第二测试结果。
本公开第二方面提出了一种软件测试的方法,由测试服务器执行,包括:
向第一设备发送对待测试软件的测试请求,所述测试请求中包含有与待测试任务对应的测试数据;
接收所述第一设备返回的所述待测试任务对应的第一测试结果,以及所述待测试软件在运行过程中的运行信息;
基于所述运行信息和所述第一测试结果,生成所述待测试软件对应的第二测试结果。
本公开第三方面提出了一种软件测试的装置,配置于第一设备中,包括:
第一接收模块,用于接收测试服务器发送的测试请求,所述测试请求中包含有待测试任务对应的测试数据;
运行模块,用于基于所述测试数据,运行待测试软件,以确定所述待测试任务对应的第一测试结果;
获取模块,用于获取所述待测试软件在运行过程中的运行信息;
第一发送模块,用于将所述运行信息和所述第一测试结果发送给所述测试服务器,以使所述测试服务器确定所述待测试软件的第二测试结果。
本公开第四方面提出了一种软件测试的装置,配置于测试服务器中,包括:
第二发送模块,用于向第一设备发送对待测试软件的测试请求,所述测试请求中包含有与待测试任务对应的测试数据;
第二接收模块,用于接收所述第一设备返回的所述待测试任务对应的第一测试结果,以及所述待测试软件在运行过程中的运行信息;
生成模块,用于基于所述运行信息和所述第一测试结果,生成所述待测试软件对应的第二测试结果。
本公开第五方面提出了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如本公开第一方面实施例或第二方面实施例提出的软件测试的方法。
本公开第六方面提出了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,实现如本公开第一方面实施例或第二方面实施例提出的软件测试的方法。
本公开第七方面提出了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时,实现如本公开第一方面实施例或第二方面实施例提出的软件测试的方法。
本公开提供的软件测试的方法、装置、电子设备及存储介质,存在如下有益效果:
本公开中,第一设备首先可以接收测试服务器发送的测试请求,测试请求中包含有待测试任务对应的测试数据,然后基于测试数据,运行待测试软件,以确定待测试任务对应的第一测试结果,之后获取待测试软件在运行过程中的运行信息,然后可以将运行信息和第一测试结果发送给测试服务器,以使测试服务器确定待测试软件的第二测试结果。由此,可以在不依赖硬件设设备来作为信号输入和接收信号输出的情况下,对软件进行测试,由于还考虑了软件在运行过程中的运行信息,从而能够覆盖软件内部逻辑测试,覆盖的测试范围更大,可以通过软件的方式产生测试数据输入,提高了测试效率。
本公开实施例中,测试服务器首先向第一设备发送对待测试软件的测试请求,测试请求中包含有与待测试任务对应的测试数据,然后接收第一设备返回的待测试任务对应的第一测试结果,以及待测试软件在运行过程中的运行信息,之后基于运行信息和第一测试结果,生成待测试软件对应的第二测试结果。由此,可以在不依赖硬件资源的情况下,对软件进行自动化测试,克服了在数据输入方式有限的情况下,软件内部逻辑的测试覆盖会不足的缺陷,提高了测试效率。
本公开附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本公开的实践了解到。
附图说明
本公开上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本公开第一实施例所提供的一种软件测试的方法的流程示意图;
图2为本公开第二实施例所提供的一种软件测试的方法的流程示意图;
图3为本公开实施例所提供的一种应用软件和测试服务器软件的通信交互示意图;
图4为本公开第三实施例所提供的一种软件测试的方法的流程示意图;
图5为本公开第四实施例所提供的一种软件测试的方法的流程示意图;
图6为本公开一实施例所提供的一种软件测试的装置的结构示意图;
图7为本公开一实施例所提供的又一种软件测试的装置的结构示意图;
图8示出了适于用来实现本公开实施方式的示例性电子设备的框图。
具体实施方式
下面详细描述本公开的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本公开,而不能理解为对本公开的限制。
本公开实施例以该软件测试的方法被配置于软件测试的装置中来举例说明,该软件测试的装置可以应用于任一电子设备中,以使该电子设备可以执行软件测试的方法,在此不做限定。
下面参考附图描述本公开实施例的软件测试的方法、装置、电子设备和存储介质。
图1为本公开第一实施例所提供的一种软件测试的方法的流程示意图。
需要说明的是,本公开第一实施例所提供的一种软件测试的方法可以由第一设备执行。其中,第一设备可以为车端的控制器,或者任一搭载有待测试软件的电子设备,在此不做限定。或者,第一设备也可以为测试服务器,也即可以将待测试软件安装在测试服务器中,在此不做限定。
如图1所示,该软件测试的方法可以包括以下步骤:
步骤101,接收测试服务器发送的测试请求,测试请求中包含有待测试任务对应的测试数据。
其中,测试服务器可以为用于对待测试软件进行测试的服务器,测试服务器中可以搭载有测试软件来运行自动化测试脚本,并且可以产生测试数据发送给第一设备,在此不做限定。
其中,测试请求可以为一种测试命令,第一设备在基于应用软件接收到测试命令之后,即可开始对应用软件进行测试。或者,测试请求也可以为第一设备在测试过程中接收到的,第一设备在测试过程中接收到测试请求之后,则可以根据测试请求来确定当前的测试任务,从而终止或者暂停原有的测试任务。
可选的,第一设备中可以有多个虚拟化环境,因而可以将每个虚拟化环境均作为测试环境,每个测试环境均可以运行测试任务,由此可以降低对硬件设备的依赖程度。需要说明的是,若第一设备中有多个虚拟化环境,则可以同时进行多项测试任务。
其中,待测试任务可以为待测试软件安排的测试任务,比如启动速度测试、响应速度测试、流畅度测试、性能测试、稳定性测试、可用性测试、安全性测试、业务功能测试,在此不做限定。其中,业务功能测试可以为语音识别功能测试、空调控制功能测试、导航功能测试、多媒体功能测试等等,在此不做限定。
其中,测试数据可以为用于软件测试的数据,可以测试应用软件处理待测试任务对应的任务处理能力,以及在异常情况下的处理能力,比如输入非法字符、超过范围的数据,在此不做限定。
或者,测试数据还可以包含边界数据,用于测试数据边界情况下应用软件的处理能力,例如最小值、最大值、空值、空格等。
或者,测试数据中还可以包含随机数据、重复数据、递增数据,随机数据用于测试应用软件的鲁棒性和稳定性,例如在一定范围内随机生成的数据,重复数据用于测试应用软件的兼容性和稳定性,例如在一定范围内重复生成的数据,递增数据用于测试应用软件的性能和稳定性,例如在一定范围内递增生成的数据。
需要说明的是,对于不同的待测试任务,对应的测试数据可以是相同的,也可以是不同的,在此不做限定。
步骤102,基于测试数据,运行待测试软件,以确定待测试任务对应的第一测试结果。
其中,第一测试结果可以为与待测试任务对应的测试结果。
比如,第一测试结果可以为待测试任务的执行过程数据、执行时间、执行速度、执行结果在此不做限定。
其中,待测试软件可以为当前进行软件测试的应用软件。
本公开实施例中,待测试软件可以为车端控制器中的应用软件。
可选的,待测试软件可以为预先被编译为X86版本的应用软件,第一设备可以为支持X86架构的设备,在此不进行限定。
步骤103,获取待测试软件在运行过程中的运行信息。
其中,运行信息可以为待测试软件在运行过程中产生的关键信息,可以帮助开发者了解软件的内部运行状态,判断软件的内部运行逻辑是否出现问题,从而便于进行测试和调试。
可选的,第一设备可以基于待测试软件中的预定义的第一接口,获取待测试软件在运行过程中的运行信息,其中,接口函数库包含第一接口。
其中,第一接口用于监测待测试软件运行中的过程数据,也即运行信息。
其中,运行信息可以包含以下关键信息:
接口数据,比如输入参数、输出结果、异常情况信息,在此不做限定。
数据库记录,比如数据库表、字段、记录、索引等,在此不做限定。
网络数据,比如网络流量、网络延迟、网络连接数,在此不做限定。
性能数据,比如CPU使用率、内存使用率、磁盘使用率,在此不做限定。
需要说明的是,运行信息可以有很多,在此不进行赘述。
步骤104,将运行信息和第一测试结果发送给测试服务器,以使测试服务器确定待测试软件的第二测试结果。
具体的,第一设备可以将运行信息和第一测试结果进行打包并发送给测试服务器,从而测试服务在接收到第一测试结果和运行信息之后,可以生成对待测试软件的第二测试结果。
需要说明的是,测试服务器可以首先确定与待测试任务和待测试软件对应的参考信息,然后比较第一测试结果和运行信息以及对应的参考信息,从而判断待测试软件在完成该待测试任务时是否合格,以及判断待测试软件是否出现内部逻辑问题。
本公开实施例中,第一设备首先可以接收测试服务器发送的测试请求,测试请求中包含有待测试任务对应的测试数据,然后基于测试数据,运行待测试软件,以确定待测试任务对应的第一测试结果,之后获取待测试软件在运行过程中的运行信息,最后将运行信息和第一测试结果发送给测试服务器,以使测试服务器确定待测试软件的第二测试结果。
本公开中,第一设备首先可以接收测试服务器发送的测试请求,测试请求中包含有待测试任务对应的测试数据,然后基于测试数据,运行待测试软件,以确定待测试任务对应的第一测试结果,之后获取待测试软件在运行过程中的运行信息,然后可以将运行信息和第一测试结果发送给测试服务器,以使测试服务器确定待测试软件的第二测试结果。由此,可以在不依赖硬件设设备来作为信号输入和接收信号输出的情况下,对软件进行测试,由于还考虑了软件在运行过程中的运行信息,从而能够覆盖软件内部逻辑测试,覆盖的测试范围更大,可以通过软件的方式产生测试数据输入,提高了测试效率。
图2为本公开第二实施例所提供的一种软件测试的方法的流程示意图。
需要说明的是,本公开第二实施例所提供的一种软件测试的方法可以由第一设备执行。
如图2所示,该软件测试的方法可以包括以下步骤:
步骤201,基于待测试软件中预定义的接口函数库,建立待测试软件与测试服务器之间的通信。
其中,接口函数库可以也即为API库(Application Programming InterfaceLibrary,应用程序接口库),是一组函数的集合。在预先对应用软件做架构设计时,可以将与外部交互有关的模块封装成API接口,由此,应用软件可以通过调用API接口函数来调用模块的功能。
本公开实施例中,对于不同的待测试软件,可以预先在待测试软件中建立对应的接口函数库,以满足待测试软件与测试服务器之间的通信连接。
其中,接口函数库中至少含有以下接口中的一个或者多个:
云服务器交互通信接口;
车内以太网的通信接口;
车内控制器局域网络信号CAN通信接口;
硬件操作接口;
配置类接口。
其中,云服务器通信接口可以用于和云服务器进行交互和通信。
其中,车内以太网通信接口是用于车内各个控制单元之间进行数据通信的接口。车内以太网通信接口基于以太网协议,通过网线连接各个控制单元,实现数据传输和控制命令的交互。车内以太网通信接口需要遵循相关的协议和标准,如IEEE 802.3协议等,以确保数据传输的可靠性和安全性。
其中,车内控制器局域网络信号CAN通信接口是用于车内各个控制单元之间进行数据通信的接口。车内CAN通信接口基于CAN协议,通过总线连接各个控制单元,实现数据传输和控制命令的交互。
其中,硬件操作接口是用于访问和控制车载硬件设备的接口。硬件操作接口提供了对硬件设备的访问、配置和控制等功能,如读取传感器数据、控制执行器等,在此不做限定。
其中,配置类接口是用于设置和修改待测试软件的参数和配置信息的接口,以便用户能够方便地进行配置和调试。同时,需要考虑配置信息的安全性和保密性,以防止信息泄露和篡改。
作为一种可能实现的方式,预定义的接口函数库可以为Mock(模仿)版本的API库。
其中,Mock版本的API库是一种模拟API接口的工具,用于测试和开发中模拟API接口的行为。可以在没有实际API的情况下,根据开发者的需求,返回预设的假数据或状态,以模拟实际的API接口。Mock版本的API库可以帮助开发者快速进行接口测试和开发,减少对外部API的依赖和等待时间,提高开发效率和代码质量。同时,它也可以用于模拟异常情况,如网络状况不佳等,以提高测试系统的容错性和稳定性。
其中,Mock版本的API库可以不实现应用软件中需要的真实功能,而仅实现为测试服务器进行交互的功能,在此不做限定。需要说明的是,基于该Mock版本的API库,第一设备可以从测试服务器中接收数据,也可以发送数据,并可以记录待测试软件在调用时的参数信息,并将参数信息进行打包以发送给测试服务器。
其中,Mock版本的API库还可以将接收到的测试数据传递给待测试软件中的业务逻辑部分,以驱动业务逻辑功能的运行。Mock版本的API库可以和真实版本的API库打包安装在第一设备中,或者也可以安装在测试服务器中。
图3示出了一种应用软件和测试服务器软件的交互示意图,如图3所示,应用软件中包含有Mock云服务器交互通信API、Mock车内以太网的通信API、Mock车内CAN通信API、Mock硬件操作API、Mock配置类API、Mock预埋API,并可以基于这些API中的一个或者多个和测试服务器软件中的测试系统通信适配层进行交互。其中,应用软件还包括业务逻辑功能部分。测试服务器软件可以运行自动化测试脚本,以通过测试系统通信适配层向应用软件发送测试数据。其中,应用软件也可以配置于测试服务器中。
步骤202,接收测试服务器发送的测试请求,测试请求中包含有待测试任务对应的测试数据。
步骤203,基于测试数据,运行待测试软件,以确定待测试任务对应的第一测试结果。
步骤204,获取待测试软件在运行过程中的运行信息。
步骤205,将运行信息和第一测试结果发送给测试服务器,以使测试服务器确定待测试软件的第二测试结果。
需要说明的是,步骤202-205的具体实现方式可以参照上述实施例,在此不进行赘述。
本公开实施例中,第一设备首先基于所述待测试软件中预定义的接口函数库,建立所述待测试软件与所述测试服务器之间的通信,然后可以接收测试服务器发送的测试请求,测试请求中包含有待测试任务对应的测试数据,然后基于测试数据,运行待测试软件,以确定待测试任务对应的第一测试结果,之后获取待测试软件在运行过程中的运行信息,最后将运行信息和第一测试结果发送给测试服务器,以使测试服务器确定待测试软件的第二测试结果。由此,可以基于预定义的接口函数库,建立所述待测试软件与所述测试服务器之间的通信,解决了对硬件设备资源的依赖问题,通过软件内部的接口实现与测试服务器之间的交互。
图4为本公开第三实施例所提供的一种软件测试的方法的流程示意图。
需要说明的是,本公开第三实施例所提供的一种软件测试的方法可以由测试服务器作为执行主体来执行。
如图4所示,该软件测试的方法可以包括以下步骤:
步骤301,向第一设备发送对待测试软件的测试请求,测试请求中包含有与待测试任务对应的测试数据。
其中,测试请求可以为一种测试命令,第一设备在基于应用软件接收到测试命令之后,即可开始对应用软件进行测试。或者,测试请求也可以为第一设备在测试过程中接收到的,第一设备在测试过程中接收到测试请求之后,则可以根据测试请求来确定当前的测试任务,从而终止或者暂停原有的测试任务。
其中,待测试任务可以为待测试软件安排的测试任务,比如启动速度测试、响应速度测试、流畅度测试、性能测试、稳定性测试、可用性测试、安全性测试、业务功能测试,在此不做限定。其中,业务功能测试可以为语音识别功能测试、空调控制功能测试、导航功能测试、多媒体功能测试等等,在此不做限定。
其中,测试数据可以为用于软件测试的数据,可以测试应用软件处理待测试任务对应的任务处理能力,以及在异常情况下的处理能力,比如输入非法字符、超过范围的数据,在此不做限定。
具体的,测试服务器可以首先运行对待测试软件相关的自动化测试脚本,然后可以通过网络适配层向待测试软件发送待测试任务以及对应的测试数据。
步骤302,接收第一设备返回的待测试任务对应的第一测试结果,以及待测试软件在运行过程中的运行信息。
其中,第一测试结果可以为与待测试任务对应的测试结果。
比如,第一测试结果可以为待测试任务的执行过程数据、执行时间、执行速度、执行结果在此不做限定。
其中,待测试软件可以为当前进行软件测试的应用软件。
本公开实施例中,待测试软件可以为车端控制器中的应用软件。
可选的,待测试软件可以为预先被编译为X86版本的应用软件,第一设备可以为支持X86架构的设备,在此不进行限定。
其中,运行信息可以为待测试软件在运行过程中产生的关键信息,可以帮助开发者了解软件的内部运行状态,判断软件的内部运行逻辑是否出现问题,从而便于进行测试和调试。
其中,待测试任务可以为待测试软件安排的测试任务,比如启动速度测试、响应速度测试、流畅度测试、性能测试、稳定性测试、可用性测试、安全性测试、业务功能测试,在此不做限定。
步骤303,基于运行信息和第一测试结果,生成待测试软件对应的第二测试结果。
其中,第二测试结果可以为待测试软件与当前的测试请求对应的测试结果。
可选的,可以比较第一测试结果和对应的第一参考信息,以得到待测试任务是否测试合格的判断结果,然后可以比较运行信息和对应的第二参考信息,以得到待测试软件的内部逻辑测试结果,之后可以确定判断结果和内部逻辑测试结果为第二测试结果。
其中,第一参考信息可以为与第一测试结果对应的参考信息,用于表征与待测试任务对应的期望结果,对此不做限定。
其中,第二参考信息可以为与运行信息对应的参考信息,用于表征对待测试软件运行待测试任务的运行信息的期望结果,对此不做限定。
其中,判断结果可以为待测试任务测试合格,或者不合格。
其中,内部逻辑测试结果可以包含有待测试软件对应的内部逻辑的异常类型,或者异常位置,或者内部逻辑无误,在此不做限定。
需要说明的是,第一参考信息和第二参数信息可以为开发者根据待测试软件和待测试任务的情况预先进行设置的。作为一种可能实现的方式,可以确定第一测试结果和第一参考信息的匹配程度,若匹配程度比较高,则说明第一测试结果为待测试任务测试合格,若匹配程度较低,比如小于预设阈值,则说明待测任务测试不合格。
由此,通过对第一测试结果和运行信息与对应的参考信息进行比较和判断,不仅能够对软件的业务功能是否合格进行判断,也能对内部逻辑进行测试,能够有效地提高对待测试软件的测试范围。
本公开实施例中,测试服务器首先向第一设备发送对待测试软件的测试请求,测试请求中包含有与待测试任务对应的测试数据,然后接收第一设备返回的待测试任务对应的第一测试结果,以及待测试软件在运行过程中的运行信息,之后基于运行信息和第一测试结果,生成待测试软件对应的第二测试结果。由此,可以在不依赖硬件资源的情况下,对软件进行自动化测试,克服了在数据输入方式有限的情况下,软件内部逻辑的测试覆盖会不足的缺陷,提高了测试效率。
图5为本公开第四实施例所提供的一种软件测试的方法的流程示意图。
需要说明的是,本公开第四实施例所提供的一种软件测试的方法可以由测试服务器执行。
如图5所示,该软件测试的方法可以包括以下步骤:
步骤401,确定当前的待测试软件,以及待测试任务对应的测试数据。
需要说明的是,测试服务器测试的应用软件可以有很多,测试软件可以首先确定当前的待测试软件,然后针对待测试软件生成对应的测试数据。
具体的,测试服务器中可以安装有测试软件,测试软件可以通过运行自动化测试脚本,然后确定待测试任务,并生成待测试任务对应的测试数据。
步骤402,确定与所述待测试软件之间的通信协议和数据格式。
其中,数据格式可以为待测试软件可以适配的数据格式,比如Json格式,在此不做限定。需要说明的是,选择数据格式时需要考虑数据的结构、大小、可读性、易用性等因素。
其中,通信协议可以为待测试软件当前可以适配的通信协议,比如CAN通信协议,在此不做限定。
步骤403,基于测试服务器中的通信适配层,根据通信协议和数据格式,对测试数据进行封装和转换处理。
其中,通信适配层可以将测试数据进行封装和转换,从而适应待测试软件的通信协议和数据格式。具体的,在根据通信协议和数据格式对测试数据进行封装和转换处理之后,可以将测试数据发送到第一设备中。
步骤404,向第一设备发送对待测试软件的测试请求,测试请求中包含有与待测试任务对应的测试数据。
步骤405,接收第一设备返回的待测试任务对应的第一测试结果,以及待测试软件在运行过程中的运行信息。
步骤406,基于运行信息和第一测试结果,生成待测试软件对应的第二测试结果。
需要说明的是,步骤404、405、406的具体实现方式可以参照上述实施例,在此不进行赘述。
本公开实施例中,首先确定当前的待测试软件,以及待测试任务对应的测试数据,然后确定与所述待测试软件之间的通信协议和数据格式,之后基于测试服务器中的通信适配层,根据通信协议和数据格式,对测试数据进行封装和转换处理,然后向第一设备发送对待测试软件的测试请求,测试请求中包含有与待测试任务对应的测试数据,然后接收第一设备返回的待测试任务对应的第一测试结果,以及待测试软件在运行过程中的运行信息,之后基于运行信息和第一测试结果,生成待测试软件对应的第二测试结果。由此,可以利用通信适配层将测试数据进行封装和转换,以适应应用软件的通信协议和数据格式,将测试服务器和应用软件之间的通信进行转换和适配,使其能够顺利地进行数据交互,确保数据了的准确性和可靠性。
为了实现上述实施例,本公开还提出一种软件测试的装置。
图6为本公开第五实施例所提供的软件测试的装置的结构示意图。
需要说明的是,本公开第五实施例所提供的软件测试的装置可以被配置于第一设备中。
如图6所示,该软件测试的装置600可以包括:
第一接收模块610,用于接收测试服务器发送的测试请求,所述测试请求中包含有待测试任务对应的测试数据;
运行模块620,用于基于所述测试数据,运行待测试软件,以确定所述待测试任务对应的第一测试结果;
获取模块630,用于获取所述待测试软件在运行过程中的运行信息;
第一发送模块640,用于将所述运行信息和所述第一测试结果发送给所述测试服务器,以使所述测试服务器确定所述待测试软件的第二测试结果。
可选的,所述第一接收模块,还用于:
基于所述待测试软件中预定义的接口函数库,建立所述待测试软件与所述测试服务器之间的通信,其中,所述接口函数库中至少含有以下接口中的一个或者多个:
云服务器交互通信接口;
车内以太网的通信接口;
车内控制器局域网络信号CAN通信接口;
硬件操作接口;
配置类接口。
可选的,所述获取模块,具体用于:
基于所述待测试软件中的预定义的第一接口,获取所述待测试软件在运行过程中的运行信息,其中,所述接口函数库包含所述第一接口。
本公开中,第一设备首先可以接收测试服务器发送的测试请求,测试请求中包含有待测试任务对应的测试数据,然后基于测试数据,运行待测试软件,以确定待测试任务对应的第一测试结果,之后获取待测试软件在运行过程中的运行信息,然后可以将运行信息和第一测试结果发送给测试服务器,以使测试服务器确定待测试软件的第二测试结果。由此,可以在不依赖硬件设设备来作为信号输入和接收信号输出的情况下,对软件进行测试,由于还考虑了软件在运行过程中的运行信息,从而能够覆盖软件内部逻辑测试,覆盖的测试范围更大,可以通过软件的方式产生测试数据输入,提高了测试效率。
图7为本公开第六实施例所提供的软件测试的装置的结构示意图。
需要说明的是,本公开第六实施例所提供的软件测试的装置可以被配置于测试服务器中。
如图7所示,该软件测试的装置700可以包括:
第二发送模块710,用于向第一设备发送对待测试软件的测试请求,所述测试请求中包含有与待测试任务对应的测试数据;
第二接收模块720,用于接收所述第一设备返回的所述待测试任务对应的第一测试结果,以及所述待测试软件在运行过程中的运行信息;
生成模块730,用于基于所述运行信息和所述第一测试结果,生成所述待测试软件对应的第二测试结果。
可选的,所述第二发送模块,还用于:
确定当前的所述待测试软件,以及所述待测试任务对应的测试数据;
确定与所述待测试软件之间的通信协议和数据格式;
基于所述测试服务器中的通信适配层,根据所述通信协议和数据格式,对所述测试数据进行封装和转换处理。
可选的,所述生成模块,具体用于:
比较所述第一测试结果和对应的第一参考信息,以得到所述待测试任务是否测试合格的判断结果;
比较所述运行信息和对应的第二参考信息,以得到所述待测试软件的内部逻辑测试结果;
确定所述判断结果和所述内部逻辑测试结果为所述第二测试结果。
可选的,所述测试服务器支持部署所述待测试软件。
本公开实施例中,测试服务器首先向第一设备发送对待测试软件的测试请求,测试请求中包含有与待测试任务对应的测试数据,然后接收第一设备返回的待测试任务对应的第一测试结果,以及待测试软件在运行过程中的运行信息,之后基于运行信息和第一测试结果,生成待测试软件对应的第二测试结果。由此,可以在不依赖硬件资源的情况下,对软件进行自动化测试,克服了在数据输入方式有限的情况下,软件内部逻辑的测试覆盖会不足的缺陷,提高了测试效率。
为了实现上述实施例,本公开还提出一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时,实现如本公开前述实施例提出的软件测试的方法。
为了实现上述实施例,本公开还提出一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,实现如本公开前述实施例提出的软件测试的方法。
图8示出了适于用来实现本公开实施方式的示例性电子设备的框图。图8显示的电子设备12仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图8所示,电子设备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可以用于读写不可移动的、非易失性磁介质(图8未显示,通常称为“硬盘驱动器”)。尽管图8中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如:光盘只读存储器(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)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与电子设备12的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现前述实施例中提及的方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、 “示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本公开的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本公开的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本公开的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本公开的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本公开的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本公开各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本公开的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本公开的限制,本领域的普通技术人员在本公开的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (12)

1.一种软件测试的方法,其特征在于,所述方法由第一设备执行,包括:
接收测试服务器发送的测试请求,所述测试请求中包含有待测试任务对应的测试数据;
基于所述测试数据,运行待测试软件,以确定所述待测试任务对应的第一测试结果;
获取所述待测试软件在运行过程中的运行信息;
将所述运行信息和所述第一测试结果发送给所述测试服务器,以使所述测试服务器确定所述待测试软件的第二测试结果。
2.根据权利要求1所述的方法,其特征在于,在所述接收测试服务器发送的测试请求之前,还包括:
基于所述待测试软件中预定义的接口函数库,建立所述待测试软件与所述测试服务器之间的通信,其中,所述接口函数库中至少含有以下接口中的一个或者多个:
云服务器交互通信接口;
车内以太网的通信接口;
车内控制器局域网络信号CAN通信接口;
硬件操作接口;
配置类接口。
3.根据权利要求2所述的方法,其特征在于,所述获取所述待测试软件在运行过程中的运行信息,包括:
基于所述待测试软件中的预定义的第一接口,获取所述待测试软件在运行过程中的运行信息,其中,所述接口函数库包含所述第一接口。
4.一种软件测试的方法,其特征在于,由测试服务器执行,包括:
向第一设备发送对待测试软件的测试请求,所述测试请求中包含有与待测试任务对应的测试数据;
接收所述第一设备返回的所述待测试任务对应的第一测试结果,以及所述待测试软件在运行过程中的运行信息;
基于所述运行信息和所述第一测试结果,生成所述待测试软件对应的第二测试结果。
5.根据权利要求4所述的方法,其特征在于,在所述向第一设备发送对待测试软件的测试请求,所述测试请求中包含有与待测试任务对应的测试数据之前,还包括:
确定当前的所述待测试软件,以及所述待测试任务对应的测试数据;
确定与所述待测试软件之间的通信协议和数据格式;
基于所述测试服务器中的通信适配层,根据所述通信协议和数据格式,对所述测试数据进行封装和转换处理。
6.根据权利要求4所述的方法,其特征在于,所述基于所述运行信息和所述第一测试结果,生成所述待测试软件对应的第二测试结果,包括:
比较所述第一测试结果和对应的第一参考信息,以得到所述待测试任务是否测试合格的判断结果;
比较所述运行信息和对应的第二参考信息,以得到所述待测试软件的内部逻辑测试结果;
确定所述判断结果和所述内部逻辑测试结果为所述第二测试结果。
7.根据权利要求4所述的方法,其特征在于,其中,所述测试服务器支持部署所述待测试软件。
8.一种软件测试的装置,其特征在于,所述装置配置于第一设备中,包括:
第一接收模块,用于接收测试服务器发送的测试请求,所述测试请求中包含有待测试任务对应的测试数据;
运行模块,用于基于所述测试数据,运行待测试软件,以确定所述待测试任务对应的第一测试结果;
获取模块,用于获取所述待测试软件在运行过程中的运行信息;
第一发送模块,用于将所述运行信息和所述第一测试结果发送给所述测试服务器,以使所述测试服务器确定所述待测试软件的第二测试结果。
9.一种软件测试的装置,其特征在于,所述装置配置于测试服务器中,包括:
第二发送模块,用于向第一设备发送对待测试软件的测试请求,所述测试请求中包含有与待测试任务对应的测试数据;
第二接收模块,用于接收所述第一设备返回的所述待测试任务对应的第一测试结果,以及所述待测试软件在运行过程中的运行信息;
生成模块,用于基于所述运行信息和所述第一测试结果,生成所述待测试软件对应的第二测试结果。
10.一种电子设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如权利要求1-3或4-7中任一所述的软件测试的方法。
11.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1-3或4-7中任一所述的软件测试的方法。
12.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序在被处理器执行时,实现如权利要求1-3或4-7中任一所述的软件测试的方法。
CN202311048845.3A 2023-08-21 2023-08-21 软件测试的方法、装置、电子设备及存储介质 Pending CN116775498A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311048845.3A CN116775498A (zh) 2023-08-21 2023-08-21 软件测试的方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311048845.3A CN116775498A (zh) 2023-08-21 2023-08-21 软件测试的方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN116775498A true CN116775498A (zh) 2023-09-19

Family

ID=87986251

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311048845.3A Pending CN116775498A (zh) 2023-08-21 2023-08-21 软件测试的方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN116775498A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117215958A (zh) * 2023-10-11 2023-12-12 深圳市浩科智联科技有限公司 一种车载应用分离设计软件及其测试方法
CN117215958B (zh) * 2023-10-11 2024-05-31 深圳市浩科智联科技有限公司 一种车载应用分离设计软件及其测试方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101042673A (zh) * 2007-04-20 2007-09-26 北京航空航天大学 软件测试系统及测试方法
CN101754246A (zh) * 2009-12-11 2010-06-23 中兴通讯股份有限公司 一种测试移动终端设备移动多媒体广播功能的方法和系统
US20130066579A1 (en) * 2011-09-09 2013-03-14 Hon Hai Precision Industry Co., Ltd. Analysis method for storage medium
CN106897216A (zh) * 2017-02-13 2017-06-27 北京趣拿软件科技有限公司 测试软件的方法和装置
CN107273299A (zh) * 2017-07-07 2017-10-20 广东中星电子有限公司 软件测试装置、软件测试平台及方法
CN110955899A (zh) * 2019-12-13 2020-04-03 中国工商银行股份有限公司 安全测试方法、装置、测试设备以及介质
CN112214405A (zh) * 2020-09-30 2021-01-12 维沃移动通信有限公司 一种软件测试方法、装置、电子设备和可读存储介质
CN116049019A (zh) * 2023-03-29 2023-05-02 中诚华隆计算机技术有限公司 一种基于测试芯片对软件进行测试的方法及系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101042673A (zh) * 2007-04-20 2007-09-26 北京航空航天大学 软件测试系统及测试方法
CN101754246A (zh) * 2009-12-11 2010-06-23 中兴通讯股份有限公司 一种测试移动终端设备移动多媒体广播功能的方法和系统
US20130066579A1 (en) * 2011-09-09 2013-03-14 Hon Hai Precision Industry Co., Ltd. Analysis method for storage medium
CN106897216A (zh) * 2017-02-13 2017-06-27 北京趣拿软件科技有限公司 测试软件的方法和装置
CN107273299A (zh) * 2017-07-07 2017-10-20 广东中星电子有限公司 软件测试装置、软件测试平台及方法
CN110955899A (zh) * 2019-12-13 2020-04-03 中国工商银行股份有限公司 安全测试方法、装置、测试设备以及介质
CN112214405A (zh) * 2020-09-30 2021-01-12 维沃移动通信有限公司 一种软件测试方法、装置、电子设备和可读存储介质
CN116049019A (zh) * 2023-03-29 2023-05-02 中诚华隆计算机技术有限公司 一种基于测试芯片对软件进行测试的方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117215958A (zh) * 2023-10-11 2023-12-12 深圳市浩科智联科技有限公司 一种车载应用分离设计软件及其测试方法
CN117215958B (zh) * 2023-10-11 2024-05-31 深圳市浩科智联科技有限公司 一种车载应用分离设计软件及其测试方法

Similar Documents

Publication Publication Date Title
KR102537875B1 (ko) 차량 ecu 소프트웨어 검증을 위한 동적 결함 주입 방법 및 장치
CN110673576B (zh) 自动测试方法与装置、车辆和存储介质
CN113434355B (zh) 模块验证方法、uvm验证平台、电子设备及存储介质
CN111679868A (zh) 汽车软件模型集成方法、装置、设备及存储介质
US9047401B2 (en) Exception handling test apparatus and method
WO2022041720A1 (zh) 一种基于uds的通信方法、ecu及上位机
CN108874665A (zh) 一种测试结果校验方法、装置、设备和介质
KR102141287B1 (ko) Autosar 기반 차량 소프트웨어의 결함 테스트 방법 및 결함 테스트 시스템
CN115546927A (zh) 一种基于autosar标准的uds诊断自动化测试系统
CN105975373A (zh) 软件程序的运行监测方法及装置
CN113225232B (zh) 硬件测试方法、装置、计算机设备及存储介质
CN116775498A (zh) 软件测试的方法、装置、电子设备及存储介质
CN115576737B (zh) 异常检测方法、装置、电子设备及存储介质
CN111857103A (zh) 一种车辆诊断方法、装置、设备及存储介质
CN115542875A (zh) 一种基于soa服务的车辆检测方法及相关设备
CN116049011A (zh) 一种测试环境的部署方法、装置、电子设备及存储介质
CN113688031B (zh) 一种基于字节码增强技术的测试定位方法
US20080068036A1 (en) Semiconductor test system capable of virtual test and semiconductor test method thereof
CN115495363A (zh) 一种软件测试方法、电子设备及可读存储介质
CN117971583B (zh) 一种存储颗粒的测试方法、系统、电子设备及存储介质
CN111240928B (zh) 设备驱动自动化检测方法、装置、设备及存储介质
CN112256554B (zh) 一种基于场景测试用例进行测试的方法及设备
JP2003114834A (ja) Usbデバイス評価システム
CN115268403A (zh) 一种整车eol自动化测试方法
CN117762791A (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