一种基于网络的软件测试方法、客户端及待测试设备
技术领域
本申请涉及计算机技术领域,尤其涉及一种基于网络的软件测试方法、客户端及待测试设备。
背景技术
随着互联网技术应用的越来越广泛,人们很多的日常工作和娱乐都在网络上进行,从而产生了众多的互联网应用软件,通过不同的应用软件实现不同的功能,丰富了用户的生活,提高了用户的使用体验。应用软件在进入市场之前,需要测试人员进行精细的测试以保证软件质量,另外操作系统更新也越来越快,在操作系统升级的同时也需要对先前开发的软件是否可用进行测试,也就意味着需要进行大量的、重复的测试工作。
目前,在对应用软件进行测试时通常都是通过测试人员一步步人工实现,在测试过程中需要不停的看着设备对象的显示屏,来判断测试用例是否通过,这样的人工测试需要浪费大量的人力物力,测试完成后再手动点击该软件的屏幕。现有技术存在以下缺点:(1)手动执行繁琐、效率低;(2)只能测试软件的安装和卸载,无法遍历待测试软件的所有控件;(3)无法实时监控测试结果,开发或测试人员无法实时看到测试数据,每次只能等手动中断之后才能看到原始数据,实际上无法起到监控的效果。
发明内容
本申请的目的在于提供一种基于网络的软件测试方法、客户端及待测试设备,用以解决传统的软件测试方法和测试装置手动执行繁琐、无法遍历待测试软件的所有控件以及无法实时查看测试数据的技术问题。
为了解决上述问题,本申请提供了基于网络的软件测试方法,应用于软件测试客户端侧,包括:
接收关键字段的输入,根据所述关键字段获取预设的软件设计模型对应的测试内容;
根据测试内容生成操作区配置在操作界面显示;
接收在操作界面输入的操作指令;
根据操作指令生成软件测试任务并将所述测试任务发送至待测试设备上;
接收所述待测试设备反馈的测试结果并保存。
本申请并提供一种基于网络的软件测试方法,应用于应用于待测试设备侧,包括:
接收所述软件测试任务,执行所述软件测试任务并生成测试结果,并将所述测试结果反馈至软件测试客户端。
本申请并提供一种基于网络的软件测试客户端,包括:
输入模块,用于接收关键字段的输入,根据所述关键字段获取预设的软件设计模型对应的测试内容;
操作界面模块,用于根据测试内容生成操作区配置在操作界面显示,并接收在操作界面输入的操作指令;
测试任务模块,用于根据操作指令生成软件测试任务并将所述测试任务发送至待测试设备上;
反馈信息处理模块,用于接收所述待测试设备反馈的测试结果并保存。
本申请并提供一种基于网络的软件待测试设备,所述设备上设有待测试应用软件,包括:测试任务处理模块,用于接收所述软件测试任务,执行所述软件测试任务并生成测试结果,反馈模块,用于将所述测试结果反馈至软件测试客户端。
与现有技术相比,本申请可以获得包括以下技术效果:
本申请提供的基于网络的软件测试方法、客户端及待测试设备通过网络抓包和/或硬件检测获取当前的网络连接模式,以获取多模式下软件测试的共性特征,根据共性特征的关键字段获取预设的软件设计模型对应的测试内容以生成自定义的、智能的测试任务,代替大部分手工操作,从而解决传统的软件测试方法和测试系统手动执行繁琐以及无法实时查看性能指标数据的技术问题,方便测试或开发人员实时监控被测应用软件的性能数据,节省了大部分手工测试时间,同时,还方便开发人员调试程序。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本申请实施例的基于网络的软件测试系统的结构示意图。
图2是本申请实施例一的基于网络的软件测试方法的流程图。
图3是本申请实施例二的基于网络的软件测试方法的流程图。
图4是本申请实施例三的基于网络的软件测试方法的流程图。
图5是本申请实施例四的基于网络的软件测试方法的流程图。
图6是本申请实施例一的基于网络的软件测试客户端的框架示意图。
图7是本申请实施例二的基于网络的软件测试客户端的框架示意图。
图8是本申请实施例三的基于网络的软件测试客户端的框架示意图。
图9是本申请实施例四的基于网络的软件待测试设备的框架示意图。
具体实施方式
以下将配合附图及实施例来详细说明本申请的实施方式,藉此对本申请如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。
如在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”为一开放式用语,故应解释成“包含但不限定于”。“大致”是指在可接收的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。此外,“耦接”或“电性连接”一词在此包含任何直接及间接的电性耦接手段。因此,若文中描述一第一装置耦接于一第二装置,则代表所述第一装置可直接电性耦接于所述第二装置,或通过其它装置或耦接手段间接地电性耦接至所述第二装置。说明书后续描述为实施本申请的较佳实施方式,然所述描述乃以说明本申请的一般原则为目的,并非用以限定本申请的范围。本申请的保护范围当视所附权利要求所界定者为准。
还需要说明的是,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者系统不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者系统中还存在另外的相同要素。
应用场景描述
如图1所示,图1是本申请实施例的基于网络的软件测试系统的结构示意图。基于网络的软件测试系统包括软件测试客户端、服务器端、以及基于该测试系统部署的多部安装有待测试应用软件的Pad、Phone、Touch、Smart TV、笔记本电脑等智能移动终端,所述软件测试客户端、服务器端、以及智能移动终端连接在同一局域网、或同一广域网下,各设备之间可通过交换机或路由器连接,可以通过P2P模式、客户端模式、客户服务器模式的任一种连接方式进行交互。所述服务器端包括有主服务器、多个附属服务器、测试服务器、日志服务器等,服务器端的各服务器可通过一交换机进行连接,各智能移动终端和软件测试客户端通过一交换机进行连接,服务器端的交换机与智能移动终端的交换机连接共同接入同一局域网或同一广域网;也可以软件测试客户端、智能移动终端与服务器三者连接在一个交换机上以接入同一局域网或同一广域网。其中,软件测试客户端上安装有测试应用软件的程序,所述服务器端、智能移动终端上均可设有待测试应用软件,该应用软件为网络应用软件,通过运行软件测试客户端的测试程序,经网络连接去测试智能移动终端和服务器端的待测试应用软件。
实施例描述
如图2所示,图2是本申请实施例一的基于网络的软件测试方法的流程图。本申请实施例一提供一种基于网络的软件测试方法,应用于软件测试客户端侧,包括:
S1、接收关键字段的输入,根据所述关键字段获取预设的软件设计模型对应的测试内容;
首先,运行软件测试客户端的测试程序,该测试程序提供一操作入口供输入关键字段,所述关键字段可为测试人员自定义设置输入,也可为通过网络抓包和/或硬件检测获知当前的网络连接模式,根据网络连接模式生成的关键字段。网络抓包指的是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,目的是用来分析网络数据包的内容,通过分析网络抓包获取的网络数据包的内容提取关键字段,其中,网络抓包获取的网络数据包包括当前的网络环境信息,可通过网络数据包解析出使用的网络协议等以获取当前网络连接模式,如P2P模式、客户端模式、客户服务器模式等,通过分析多种模式的网络连接模式下的共性特征作为关键字段;也可通过硬件检测获取网络环境的信息,从该网络环境的信息中获知当前网络连接模式,通过分析多种模式的网络连接模式下的共性特征提取出关键字段,该网络环境信息包括带宽,稳定性,包的传输延时,传播时长,传输线路的距离,掉包率和干扰级别,设备相关参数等信息等。
通过输入的关键字段可以获取与关键字段对应的软件设计模型中的测试内容,该软件设计模型为预先设定,可以为软件瀑布开发设计模型,V设计模型等,每种软件设计模型把测试分成集成测试,分布测试和单元测试等若干模块,也可以说每种软件设计模型对应一种测试方案,测试方案可分解为测试单元和自定义的测试规范;软件设计模型中的每个模块或测试单元对应一测试内容。
S2、根据测试内容生成一操作区配置在一操作界面显示;
通过输入的关键字段获取到对应的测试内容时,根据测试内容生成操作区,可提供通过微软的spy++抓取界面操作区,同时将该操作区配置在操作界面上显示且可实现选中等操作。
S3、接收在操作界面输入的操作指令;
根据待测试应用软件的需要在操作界面上配置测试内容以形成一套符合要求的测试方案,该操作界面为QT界面,QT界面是由一个跨平台C++图形用户界面应用程序开发框架开发的GUI程序,是面向对象的框架,易于扩展,允许组件编程使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler,moc))以及一些宏。
在QT界面上设有应用软件的测试项,也设置有通过关键字段获取的测试内容选项,通过选中、排序等操作触发一系列操作指令,接收并响应所述输入的操作指令完成测试内容的选择以形成一测试方案。
S4、根据操作指令生成软件测试任务并将所述测试任务发送至待测试设备上;
通过在QT界面上输入操作指令配置应用软件的测试项和与关键字段对应的软件设计模型中的测试内容以完成一项测试方案,根据该测试方案生成测试任务,将该测试任务发送至安装有待测试应用软件的待测试设备上。
其中,该测试任务还包括漏洞扫描任务,用于扫描应用软件是否存在漏洞,可通过Nessus,NeXpose,Dradis等工具进行漏洞扫描。
其中,在完成测试方案之后,根据测试方案分析软件测试任务的可行性,根据分析结果生成软件测试任务,若软件测试客户端与服务器端为客户服务器模式,则分析软件测试任务的可行性可在客户端,也可在服务器端进行,当服务器分析软件测试任务的可行性完成后,将分析结果反馈至软件测试客户端。
S5、接收所述待测试设备反馈的测试结果并保存。
当待测试应用软件根据测试任务测试完成后,生成一份测试结果报告并反馈至软件测试客户端,软件测试客户端接收该测试结果进行保存。
本申请实施例一通过自定义设置关键字段及预设的软件设计模型对应的测试内容以生成自定义的、智能的测试任务,代替大部分手工操作,从而解决传统的软件测试方法和测试系统手动执行繁琐以及无法实时查看性能指标数据的技术问题,节省了大部分手工测试时间,同时,还方便开发人员调试程序。
如图3所示,本申请实施例二提供一种基于网络的软件测试方法,应用于软件测试客户端侧,基于上述实施例一的基础上还包括:
S0、通过网络抓包和/或硬件检测获取当前的网络连接模式,根据获取的网络连接模式生成关键字段;
在接收关键字段的输入之前,还可以通过网络抓包和/或硬件检测获知当前的网络连接模式,根据网络连接模式生成的关键字段。网络抓包指的是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,目的是用来分析网络数据包的内容,通过分析网络抓包获取的网络数据包的内容提取关键字段,其中,网络抓包获取的网络数据包包括当前的网络环境信息,可通过网络数据包解析出使用的网络协议等以获取当前网络连接模式,如P2P模式、客户端模式、客户服务器模式等,网络连接模式通过分析多种模式的网络连接模式下的共性特征作为关键字段;也可通过硬件检测获取网络环境的信息,从该网络环境的信息中获知当前网络连接模式,通过分析多种模式的网络连接模式下的共性特征提取出关键字段,该网络环境信息包括带宽,稳定性,包的传输延时,传播时长,传输线路的距离,掉包率和干扰级别,设备相关参数等信息等。
其中,所述关键字段为多模式下软件测试的共性特征,所述多种模式包括P2P模式、客户端模式、客户服务器模式等网络连接模式。
本申请实施例二通过网络抓包和/或硬件检测获取关键字段与自定义设置关键字段相结合的方式更准确的得到关键字段,通过上述两种方式得到的关键字段与预设的软件设计模型对应的测试内容以生成自定义的、智能的测试任务,代替大部分手工操作,从而解决传统的软件测试方法和测试系统手动执行繁琐的技术问题,节省了大部分手工测试时间,同时,还方便开发人员调试程序。
如图4所示,本申请实施例三提供一种基于网络的软件测试方法,应用于软件测试客户端侧,基于上述实施例一的基础上还包括:
S6、记录测试过程以生成日志信息并保存;
根据实施例一的步骤完成一次测试时,记录本次测试完成的过程以生成日志信息并保存,记录测试过程可在软件测试客户端进行,也可通过使用log4cxx日志服务器完成。
S7、对日志信息进行统计分析,将所述分析结果通过短信发送和/或消息栏显示的方式进行反馈;
将保存的日志信息进行统计分析,以分析当前的测试进展状态、是否存在异常退出或控件无响应或等,并将所述分析的结果反馈至测试人员以便测试人员能准确、快速获取测试进展,及时采取措施;反馈测试结果的方式可以通过手机短信、推送消息、消息栏提醒等。
本申请实施例三在通过记录测试过程形成日志信息,对日志信息进行分析并提醒,从而解决传统的软件测试方法和测试系统无法实时查看性能指标数据的技术问题,方便测试或开发人员实时监控被测应用软件的性能数据,还方便开发人员调试程序。
如图5所示,本申请实施例四提供一种基于网络的软件测试方法,应用于待测试设备,包括:
S10、接收所述软件测试任务;
所述待测试设备为设置有待测试应用软件的终端设备,可以是服务器,也可以是智能移动终端。待测试设备监听接入的局域网或广域网的网络接口,当监听到有数据推送时,接收所述数据并进行解析。
进一步地,在接收所述软件测试任务之前
S20、执行所述软件测试任务并生成测试结果;
当接收的数据解析为软件测试客户端发送的软件测试任务时,进一步解析该软件测试任务并按该软件测试任务逐一执行测试,测试完毕后生成一份测试结果报告。
S30、将所述测试结果反馈至软件测试客户端。
通过接入的局域网或广域网将所述测试结果反馈至软件测试客户端。
本申请实施例四通过自定义设置关键字段及预设的软件设计模型对应的测试内容以生成自定义的、智能的测试任务,代替大部分手工操作,从而解决传统的软件测试方法和测试系统手动执行繁琐以及无法实时查看性能指标数据的技术问题,节省了大部分手工测试时间,同时,还方便开发人员调试程序。
如图6所示,图6是本申请实施例一的基于网络的软件测试客户端的框架示意图。本申请实施例一提供一种基于网络的软件测试客户端,包括:
输入模块,用于接收关键字段的输入,根据所述关键字段获取预设的软件设计模型对应的测试内容;
操作界面模块,用于根据测试内容生成一操作区配置在一操作界面显示,并接收在操作界面输入的操作指令;
测试任务生成模块,用于根据操作指令生成软件测试任务并将所述测试任务发送至待测试设备上;进一步地,所述测试任务生成模块还包括测试方案分析单元,用于根据测试方案分析软件测试任务的可行性,根据分析结果生成软件测试任务。进一步地,所述测试任务生成模块还包括漏洞扫描模块,用于扫描应用软件是否存在漏洞。
反馈信息处理模块,用于接收所述待测试设备反馈的测试结果并保存。
首先,运行软件测试客户端的测试程序,该测试程序提供一操作入口供输入关键字段,输入模块中输入的所述关键字段可为测试人员自定义设置输入,也可为通过网络抓包和/或硬件检测获知当前的网络连接模式,根据网络连接模式生成的关键字段。网络抓包指的是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,目的是用来分析网络数据包的内容,通过分析网络抓包获取的网络数据包的内容提取关键字段,其中,网络抓包获取的网络数据包包括当前的网络环境信息,可通过网络数据包解析出使用的网络协议等以获取当前网络连接模式,如P2P模式、客户端模式、客户服务器模式等,通过分析多种模式的网络连接模式下的共性特征作为关键字段;也可通过硬件检测获取网络环境的信息,从该网络环境的信息中获知当前网络连接模式,通过分析多种模式的网络连接模式下的共性特征提取出关键字段,该网络环境信息包括带宽,稳定性,包的传输延时,传播时长,传输线路的距离,掉包率和干扰级别,设备相关参数等信息等。
通过输入的关键字段可以获取与关键字段对应的软件设计模型中的测试内容,该软件设计模型为预先设定,可以为软件瀑布开发设计模型,V设计模型等,每种软件设计模型把测试分成集成测试,分布测试和单元测试等若干模块,也可以说每种软件设计模型对应一种测试方案,测试方案可分解为测试单元和自定义的测试规范;软件设计模型中的每个模块或测试单元对应一测试内容。
通过输入的关键字段获取到对应的测试内容时,操作模块根据测试内容生成操作区,可提供通过微软的spy++抓取界面操作区,同时将该操作区配置在操作界面上显示且可实现选中等操作。
操作界面模块设有应用软件的测试项,也设置有通过关键字段获取的测试内容选项,通过选中、排序等操作触发一系列操作指令,接收并响应所述输入的操作指令完成测试内容的选择以形成一测试方案。
通过在操作界面模块生成的QT界面上输入操作指令配置应用软件的测试项和与关键字段对应的软件设计模型中的测试内容以完成一项测试方案,测试任务生成模里根据该测试方案生成测试任务,将该测试任务发送至安装有待测试应用软件的待测试设备上。
其中,该测试任务还包括漏洞扫描任务,用于扫描应用软件是否存在漏洞,可通过Nessus,NeXpose,Dradis等工具进行漏洞扫描。
测试任务生成模块包括:方案生成单元,用于接收在操作界面配置应用软件的测试项及与软件设计模型对应的测试内容而输入的操作指令以形成测试方案;任务生成单元,用于根据测试方案分析软件测试任务的可行性,根据分析结果生成软件测试任务。
其中,在完成测试方案之后,根据测试方案分析软件测试任务的可行性,根据分析结果生成软件测试任务,若软件测试客户端与服务器端为客户服务器模式,则分析软件测试任务的可行性可在客户端,也可在服务器端进行,当服务器分析软件测试任务的可行性完成后,将分析结果反馈至软件测试客户端。
当待测试应用软件根据测试任务测试完成后,生成一份测试结果报告并反馈至软件测试客户端,软件测试客户端的反馈信息处理模块接收该测试结果进行保存。
本申请实施例一通过自定义设置关键字段及预设的软件设计模型对应的测试内容以生成自定义的、智能的测试任务,代替大部分手工操作,从而解决传统的软件测试方法和测试系统手动执行繁琐以及无法实时查看性能指标数据的技术问题,节省了大部分手工测试时间,同时,还方便开发人员调试程序。
如图7所示,图7是本申请实施例二的基于网络的软件测试客户端的框架示意图。本申请实施例二提供一种基于网络的软件测试客户端,在实施例一的基础上还包括:
获取模块,用于通过网络抓包和/或硬件检测获取当前的网络连接模式,根据获取的网络连接模式生成关键字段,其中,所述关键字段为多模式下软件测试的共性特征。
本申请实施例二通过网络抓包和/或硬件检测获取关键字段与自定义设置关键字段相结合的方式更准确的得到关键字段,通过上述两种方式得到的关键字段与预设的软件设计模型对应的测试内容以生成自定义的、智能的测试任务,代替大部分手工操作,从而解决传统的软件测试方法和测试系统手动执行繁琐以的技术问题,节省了大部分手工测试时间,同时,还方便开发人员调试程序。
如图8所示,图8是本申请实施例三的基于网络的软件测试客户端的框架示意图。本申请实施例三提供一种基于网络的软件测试客户端,在实施例一的基础上还包括:
日志信息模块,用于记录测试过程以生成日志信息并保存;还用于对日志信息进行统计分析,将所述分析结果通过短信发送和/或消息栏显示的方式进行反馈。
本申请实施例三在通过记录测试过程形成日志信息,对日志信息进行分析并提醒,从而解决传统的软件测试方法和测试系统无法实时查看性能指标数据的技术问题,方便测试或开发人员实时监控被测应用软件的性能数据,还方便开发人员调试程序。
如图9所示,图9是本申请实施例四的基于网络的软件待测试设备的框架示意图。本申请实施例四提供一种基于网络的待测试设备,包括:测试任务处理模块,用于接收所述软件测试任务,执行所述软件测试任务并生成测试结果;反馈模块,用于将所述测试结果反馈至软件测试客户端。
上述说明示出并描述了本申请的若干优选实施例,但如前所述,应当理解本申请并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本申请的精神和范围,则都应在本申请所附权利要求的保护范围内。