首页 / 软件测试装置、软件测试平台及方法

软件测试装置、软件测试平台及方法无效专利 发明

技术领域

[0001] 本发明涉及软件测试技术领域,尤其涉及一种软件测试装置、软件测试平台及方法。

相关背景技术

[0002] 软件测试是在规定的条件下对程序进程操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。根据测试目的不同,软件测试主要包括:功能测试、回归测试、压力测试和性能测试等。
[0003] 常规软件测试方法就是引出串口,通过串口输出日志,分析日志定位系统存在的问题。这种方式下,要想排查一个问题,需要修改软件添加日志,再烧录软件,基于新的日志输出再来分析定位问题,费时低效,且周期长。

具体实施方式

[0027] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0028] 需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0029] 本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
[0030] 在本发明中,“模块”、“装置”、“系统”等等指应用于计算机的相关实体,如硬件、硬件和软件的组合、软件或执行中的软件等。详细地说,例如,元件可以、但不限于是运行于处理器的过程、处理器、对象、可执行元件、执行线程、程序和/或计算机。还有,运行于服务器上的应用程序或脚本程序、服务器都可以是元件。一个或多个元件可在执行的过程和/或线程中,并且元件可以在一台计算机上本地化和/或分布在两台或多台计算机之间,并可以由各种计算机可读介质运行。元件还可以根据具有一个或多个数据包的信号,例如,来自一个与本地系统、分布式系统中另一元件交互的,和/或在因特网的网络通过信号与其它系统交互的数据的信号通过本地和/或远程过程来进行通信。
[0031] 最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”,不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0032] 如图1所示,本发明的一实施例的软件测试装置100,所述软件测试装置用于配置100在搭载待测试软件的终端设备中,所述软件测试装置100包括:
[0033] 通信连接建立程序模块110,用于建立与待测试软件之间的通信连接,所述通信连接为所述软件测试装置与所述待测试软件之间的进程间通信连接;
[0034] 测试指令转发程序模块120,用于通过所述通信连接将接收自外部测试终端发送的软件测试指令发送至所述待测试软件;
[0035] 测试结果接收程序模块130,用于通过所述通信连接接收所述待测试软件基于所述软件测试指令反馈的软件测试结果;
[0036] 测试结果发送程序模块140,用于将所述软件测试结果发送至所述外部测试终端。
[0037] 本发明实施例的软件测试装置一方面能够与搭载待测试软件的终端设备中的待测试软件进行通信,另一方面能够与外部测试终端进行通信,实现了外部终端对待测试软件的在线测试功能,外终端只需要通过本发明实施例的软件测试装置将软件测试请求以及软件测试用例发送至待测试软件即可实现对待测试软件的功能测试,不用再不断的更新待测试软件的版本并给予待测试软件的运行日志来进行软件测试了,简化了软件测试流程,提高了软件测试效率。
[0038] 如图2所示,为一种采用本发明实施例的软件测试装置的软件测试平台示意图,包括终端设备(device),其配置有本发明实施例所述的软件测试装置B,软件测试装置与待测试软件(software)之间建立通信连接,软件测试装置B通过外部终端(PC机)的接口A与外部终端连接。
[0039] device指的是设备,其内部会运行操作系统,例如linux、windows。software指设备内部运行的系统软件,即,待测试软件,待测试软件以独立进程形式存在,B是软件测试装置,也是设备内部的一个对外接口用于通过接口A实现与PC端的通信连接,接口A是PC端环境的入口,可以理解为研发人员的host主机。研发人员通过网络接入设备,控制软件测试装置B,软件测试装置B通过进程间通讯机制与software之间通讯,软件测试装置B直接向待测试软件发出软件测试指令。其中,软件测试指令可以时查询待测试软件内部状态的软件状态查询指令,或者是改变待测试软件执行case的改变软件执行用例指令。基于这种软件测试装置,研发人员可以方便的实时登入设备做分析,而不用一直修改软件版本,通过日志作分析了。
[0040] 软件测试装置B的存在形式不做限制,它可以是独立程序模块形式存在,也可以是内嵌在待测试软件内部存(在统一程序模块内部通讯要比程序进程之间的通讯简单一些)。
[0041] 接口A是PC端软件模块,表现形式不做限制,可以是命令行,可以是UI程序,可以是基于windows操作系统的,也可以是基于linux操作系统的。接口A主要承载的功能是在用户端展现测试的入口,所有测试指令都从接口A发送至软件测试装置B,接口A也承担接受测试信息结论的反馈及必要的数据分析功能。
[0042] 以下以测试待测试软件的帧率统计为例进行详细距离说明:
[0043] 用户通过PC端操作经接口A向软件测试装置B发出帧率统计请求,软件测试装置的测试指令转发程序模块将接收到的帧率统计请求转发至待测试软件,在此之前软件测试装置的通信连接建立程序模块建立与待测软件之间的通信连接。
[0044] 待测试软件接收到帧率统计请求之后,自动开启帧率统计的诊断代码逻辑,一段时间之后完成帧率统计,帧率统计的持续时间可以有个默认值,也可以按照协议约定由接口A传入参数指定,帧率统计完毕后自动关闭帧率统计代码逻辑执行。
[0045] 软件测试装置B的测试结果接收程序模块接收帧率测试结果,并由测试结果发送程序模块将帧率测试结果经接口A发送至PC端。
[0046] 在一些实施例中,当要诊断待测试软件内部各个子线程的资源占用情况时,待测试软件通过软件测试装置接收到该软件测试指令,待测试软件就会实时向软件测试程序模块发送当前各个子线程的资源占用情况,并由测试结果发送程序模块将获得的各个子线程的资源占用情况信息经接口A发送至PC端,从而在PC端进行待测试软件内部各个子线程资源占用情况的实时统计分析并进行显示,子线程占用资源包括pid、cpu和mem。
[0047] 进一步地,本发明实施例还提供一种软件测试平台,包括:
[0048] 用于搭载待测试软件的终端设备;
[0049] 所述终端设备配置有软件测试装置100,所述软件测试装置包括:
[0050] 通信连接建立程序模块110,用于建立与待测试软件之间的通信连接,所述通信连接为所述软件测试装置与所述待测试软件之间的进程间通信连接;
[0051] 测试指令转发程序模块120,用于通过所述通信连接将接收自外部测试终端发送的软件测试指令发送至所述待测试软件;
[0052] 测试结果接收程序模块130,用于通过所述通信连接接收所述待测试软件基于所述软件测试指令反馈的软件测试结果;
[0053] 测试结果发送程序模块140,用于将所述软件测试结果发送至所述外部测试终端。
[0054] 在一些实施例中,所述通信连接为所述软件测试装置与所述待测试软件之间的进程间通信连接。
[0055] 在一些实施例中,所述软件测试指令为软件状态查询指令和/或改变软件执行用例指令。
[0056] 如图3所示,本发明实施例还提供一种软件测试方法,包括:
[0057] S31、建立与待测试软件之间的通信连接;
[0058] S32、通过所述通信连接将接收自外部测试终端发送的软件测试指令发送至所述待测试软件;
[0059] S33、通过所述通信连接接收所述待测试软件基于所述软件测试指令反馈的软件测试结果;
[0060] S34、将所述软件测试结果发送至所述外部测试终端。
[0061] 本发明实施例的软件测试方法一方面能够与搭载待测试软件的终端设备中的待测试软件进行通信,另一方面能够与外部测试终端进行通信,实现了外部终端对待测试软件的在线测试功能,外终端只需要通过本发明实施例的软件测试装置将软件测试请求以及软件测试用例发送至待测试软件即可实现对待测试软件的功能测试,不用再不断的更新待测试软件的版本并给予待测试软件的运行日志来进行软件测试了,简化了软件测试流程,提高了软件测试效率。
[0062] 在一些实施例中,所述通信连接为与所述待测试软件之间的进程间通信连接。
[0063] 在一些实施例中,所述软件测试指令为软件状态查询指令和/或改变软件执行用例指令。
[0064] 需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作合并,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
[0065] 在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0066] 本发明实施例中可以通过硬件处理器(hardware processor)来实现相关功能模块。
[0067] 另一方面,本发明实施例提供一种计算机可读存储介质,所述存储介质中存储有一个或多个包括执行指令的程序,所述执行指令能够被电子设备(包括但不限于计算机,服务器,或者网络设备等)读取并执行,以用于执行上述方法实施例中的相关步骤,例如:
[0068] 建立与待测试软件之间的通信连接;
[0069] 通过所述通信连接将接收自外部测试终端发送的软件测试指令发送至所述待测试软件;
[0070] 通过所述通信连接接收所述待测试软件基于所述软件测试指令反馈的软件测试结果;
[0071] 将所述软件测试结果发送至所述外部测试终端。
[0072] 另一方面,本发明实施例还公开一种电子设备,其包括:
[0073] 至少一个处理器,以及
[0074] 与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行:
[0075] 建立与待测试软件之间的通信连接;
[0076] 通过所述通信连接将接收自外部测试终端发送的软件测试指令发送至所述待测试软件;
[0077] 通过所述通信连接接收所述待测试软件基于所述软件测试指令反馈的软件测试结果;
[0078] 将所述软件测试结果发送至所述外部测试终端。
[0079] 图4是本申请另一实施例提供的执行软件测试方法的电子设备的硬件结构示意图,如图4所示,该设备包括:
[0080] 一个或多个处理器410以及存储器420,图4中以一个处理器410为例。
[0081] 执行软件测试方法的设备还可以包括:输入装置430和输出装置440。
[0082] 处理器410、存储器420、输入装置430和输出装置440可以通过总线或者其他方式连接,图4中以通过总线连接为例。
[0083] 存储器420作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请实施例中的软件测试方法对应的程序指令/模块。处理器410通过运行存储在存储器420中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例软件测试方法。
[0084] 存储器420可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据软件测试装置的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器420可选包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至软件测试装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0085] 输入装置430可接收输入的数字或字符信息,以及产生与软件测试装置的用户设置以及功能控制有关的信号。输出装置440可包括显示屏等显示设备。
[0086] 所述一个或者多个模块存储在所述存储器420中,当被所述一个或者多个处理器410执行时,执行上述任意方法实施例中的软件测试方法。
[0087] 上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。
[0088] 本申请实施例的电子设备以多种形式存在,包括但不限于:
[0089] (1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
[0090] (2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
[0091] (3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
[0092] (4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
[0093] (5)其他具有数据交互功能的电子装置。
[0094] 以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0095] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0096] 最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

当前第1页 第1页 第2页 第3页