首页> 中国专利> 软件测试系统、软件测试平台及软件测试方法

软件测试系统、软件测试平台及软件测试方法

摘要

本发明提供一种软件测试系统、软件测试平台以及软件测试方法,其中软件测试系统包括:辅助程序和宿主应用;宿主应用包括动态加载单元;辅助程序用于接收软件测试平台发送的任务数据,基于任务数据生成任务指令,将任务指令发送至宿主应用中的动态加载单元;动态加载单元用于接收任务指令,并基于任务指令生成用于指示宿主应用运行的应用参数;宿主应用用于基于应用参数运行并向辅助程序发送运行数据;辅助程序还用于接收宿主应用发送的运行数据,并将运行数据发送至软件测试平台。本发明提供的软件测试系统实现了用户在测试过程中根据需要对测试数据和文件进行下载,提高了软件测试的全面性。

著录项

  • 公开/公告号CN114840414A

    专利类型发明专利

  • 公开/公告日2022-08-02

    原文格式PDF

  • 申请/专利权人 北京展心展力信息科技有限公司;

    申请/专利号CN202210325751.5

  • 发明设计人 邹结建;陈琨;王伯洋;胡森;

    申请日2022-03-29

  • 分类号G06F11/36(2006.01);

  • 代理机构北京路浩知识产权代理有限公司 11002;

  • 代理人王庆龙

  • 地址 101200 北京市朝阳区望京东路1号中轻大厦A座17层

  • 入库时间 2023-06-19 16:14:25

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-11-11

    实质审查的生效 IPC(主分类):G06F11/36 专利申请号:2022103257515 申请日:20220329

    实质审查的生效

  • 2022-08-02

    公开

    发明专利申请公布

说明书

技术领域

本发明涉及计算机技术领域,尤其涉及一种软件测试系统、软件测试平台及软件测试方法。

背景技术

应用发布前需要验证各项功能是否正常,从而在应用上线时确保不影响用户的正常使用。一般通过人工操作采用成熟的测试方案去验证功能,或者通过本地脚本命令以及自动化测试框架,基于应用页面中的功能按指定的测试用例去点击执行,当应用程序崩溃、出现不符合预期的功能或流程时能够提前发现,并修复相应的程序故障。

软件测试过程中使用的测试数据和测试文件必须通过应用服务器获取,但是由于应用服务器数据存储的局限性,存在应用服务器不包含所需的测试数据和测试文件的情况,导致无法对应用软件进行全面的验证。

发明内容

本发明提供一种软件测试系统、软件测试平台及软件测试方法,用以解决现有技术中数据局限导致的测试不全面的缺陷,实现对应用软件进行全面测试。

第一方面,本发明提供一种软件测试系统,包括:辅助程序和宿主应用;所述宿主应用包括动态加载单元,所述动态加载单元是在所述宿主应用启动时注入的;

所述辅助程序用于接收软件测试平台发送的任务数据,基于所述任务数据生成任务指令,将所述任务指令发送至所述宿主应用中的动态加载单元;

所述动态加载单元用于接收所述任务指令,并基于所述任务指令生成用于指示所述宿主应用运行的应用参数;

所述宿主应用用于基于所述应用参数运行并向所述辅助程序发送运行数据;

所述辅助程序还用于接收所述宿主应用发送的所述运行数据,并将所述运行数据发送至所述软件测试平台。

可选地,所述辅助程序包括以下任一或组合:启动自动化单元、通信单元、截图单元以及指令命令执行单元;

所述启动自动化单元用于启动所述宿主应用;

所述通信单元用于与所述宿主应用传输数据;

所述截图单元用于截图所述宿主应用的运行情况;

所述指令命令执行单元用于向所述动态加载单元发送所述任务指令。

可选地,所述辅助程序还包括:状态检测单元、结果判断单元以及流程判断单元;

所述状态检测单元用于检测所述宿主应用的运行状态和对所述辅助程序的运行状态进行自检;

所述结果判断单元用于确定所述宿主应用的运行结果是否满足预设测试目标;

所述流程判断单元用于基于所述结果判断单元的判断结果确定下一步骤的测试流程。

可选地,所述软件测试系统还包括初始化模块,所述初始化模块用于接收所述软件测试平台发送的初始化数据,并基于所述初始化数据进行运行环境准备。

可选地,所述软件测试系统还包括存储模块;

所述存储模块用于接收所述软件测试平台发送的任务数据,并向所述辅助程序发送所述任务数据;

所述存储模块还用于接收并存储所述宿主应用发送的运行数据;

所述存储模块还用于接收并存储所述辅助程序发送的判断结果。

第二方面,本发明还提供一种软件测试平台,包括:服务端和网页端;

所述网页端用于获取用户输入的测试任务和测试数据,并将所述用户输入的测试任务和测试数据上传至所述服务端;

所述服务端用于接收所述网页端上传的所述测试任务和测试数据,基于所述测试任务和测试数据生成任务数据,并将所述任务数据发送至软件测试系统中的辅助程序,所述任务数据用于供所述辅助程序生成任务指令,所述任务指令用于供宿主程序中的动态加载模块生成指示所述宿主应用运行的应用参数;

所述服务端还用于接收所述辅助程序发送的运行数据,并将所述运行数据发送至所述网页端。

可选地,在所述软件测试平台包括多个网页端且所述的服务端接收到多个网页端上传的测试任务和测试数据情况下,所述服务端还用于基于预先设置的网页端优先级和每个所述网页端的设备要求,为每个所述网页端分配移动端;所述设备要求是基于所述网页端上传的测试任务和测试数据确定的。

可选地,所述服务端还用于在为每个所述网页端分配移动端后,记录每个所述移动端的任务状态。

第三方面,本发明还提供一种基于所述软件测试系统进行的软件测试方法,包括:

辅助程序接收软件测试平台发送的任务数据,基于所述任务数据生成任务指令,将所述任务指令发送至宿主应用中的动态加载单元;

所述动态加载单元接收所述任务指令,并基于所述任务指令生成用于指示所述宿主应用运行的应用参数;

所述宿主应用基于所述应用参数运行并向所述辅助程序发送运行数据;

所述辅助程序接收所述宿主应用发送的所述运行数据,并将所述运行数据发送至所述软件测试平台。

可选地,所述方法还包括:

所述辅助程序检测所述宿主应用的运行状态和对所述辅助程序的运行状态进行自检;

所述辅助程序确定所述宿主应用的运行结果是否满足预设测试目标;

所述辅助程序基于所述运行结果确定下一步骤的测试流程。

可选地,所述辅助程序基于所述运行结果确定下一步骤的测试流程包括:

所述辅助程序在所述运行结果满足预设测试目标的情况下,结束测试流程;

所述辅助程序在所述运行结果未满足预设测试目标的情况下,基于预设重试次数对所述宿主应用进行重复测试。

第四方面,本发明还提供一种基于所述软件测试平台进行的软件测试方法,包括:

服务端接收网页端上传的测试任务和测试数据,基于所述测试任务和所述测试数据生成任务数据,并将所述任务数据发送至软件测试系统中的辅助程序,所述任务数据用于供所述辅助程序生成任务指令,所述任务指令用于供宿主程序中的动态加载模块生成指示所述宿主应用运行的应用参数;

所述服务端接收所述辅助程序发送的运行数据,并将所述运行数据发送至所述网页端。

可选地,所述方法还包括:在所述软件测试平台包括多个网页端且所述的服务端接收到多个网页端上传的测试任务和测试数据情况下,所述服务端基于预先设置的网页端优先级和每个所述网页端的设备要求,为每个所述网页端分配移动端;所述设备要求是基于所述网页端上传的测试任务和测试数据确定的。

本发明通过软件测试平台中的服务端获取用户输入的测试任务和测试数据,软件测试系统接收软件测试平台下发的任务数据,通过辅助程序生成任务指令,动态加载模块生成应用参数,宿主应用执行对应的测试操作,实现了由软件测试系统代替人工自动执行移动端应用功能,并记录运行数据,避免了人工操作可能导致的错误,提高了软件测试的准确性;另外本发明通过软件测试平台下发所需的数据至移动端,实现了用户在测试过程中根据需要对测试数据和文件进行下载,避免了由于宿主应用的服务器的数据局限性导致的无法获取所需数据,进而无法对宿主应用进行测试的问题,提高了软件测试的全面性。

附图说明

为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的软件测试系统的结构示意图之一;

图2是本发明实施例提供的软件测试系统的结构示意图之二;

图3是本发明实施例提供的软件测试平台的结构示意图;

图4是本发明实施例提供的软件测试方法的流程示意图之一;

图5是本发明实施例提供的软件测试方法的流程示意图之二;

图6是本发明实施例提供的软件测试方法的流程示意图之三。

具体实施方式

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

下面结合图1-图2描述本发明实施例提供的软件测试系统。

图1是本发明实施例提供的软件测试系统的结构示意图之一,如图1所示,本发明实施例提供一种软件测试系统,包括:辅助程序110和宿主应用120;所述宿主应用120包括动态加载单元130,所述动态加载单元130是在所述宿主应用120启动时注入的;

具体地,本发明实施例提供的软件测试系统的执行环境为移动端,移动端可以是智能手机、笔记本电脑、平板电脑、车载终端和智能PC等设备。宿主应用120为被测试对象。在宿主应用120启动之前,动态加载单元130为独立的功能模块,在宿主应用120启动时,向宿主应用120注入动态加载单元130,示例性地,将动态加载单元130以文件的形式注入宿主应用120,动态加载单元130成为宿主应用120的一部分。

所述辅助程序110用于接收软件测试平台发送的任务数据,基于所述任务数据生成任务指令,将所述任务指令发送至所述宿主应用120中的动态加载单元130;

具体地,软件测试平台是为用户提供软件测试服务的平台,使得用户可以通过软件测试平台向移动端上传任务数据,任务数据是指测试过程中所需的数据和文件,如测试任务和测试参数等。测试任务可以是对宿主应用120现有功能的验证,也可以是对宿主应用120的功能进行修改或删减。

所述动态加载单元130用于接收所述任务指令,并基于所述任务指令生成用于指示所述宿主应用120运行的应用参数;

所述宿主应用120用于基于所述应用参数运行并向所述辅助程序110发送运行数据;

对于运行数据,是指能够记录宿主应用120的运行轨迹的数据。

所述辅助程序110还用于接收所述宿主应用120发送的所述运行数据,并将所述运行数据发送至所述软件测试平台。

一个实施例中,软件测试平台发送的任务数据为:登录功能测试,用户名123,登录密码456。辅助程序110接收软件测试平台发送的任务数据后,对任务数据进行整理细化生成任务指令:第一指令:在用户名登录框中输入123;第二指令:在密码登录框中输入456;第三指令:点击登录按钮。辅助程序110将所述任务指令发送至所述宿主应用120中的动态加载单元130。

动态加载单元130基于第一指令生成第一应用参数:id="123";基于第二指令生成第二应用参数:password="456";基于第三指令生成第三应用参数:this.button1.Click=1。

宿主应用120基于第一应用参数、第二应用参数和第三应用参数执行操作:输入用户名123;输入登录密码456;点击登录按钮。登录成功后,宿主应用120向辅助程序110返回响应码200和运行日志,响应码200表示登录请求成功。

辅助程序110接收到运行数据后,将运行日志和响应码上传至软件测试平台,以供用户查看。

又一个实施例中,软件测试平台发送的任务数据为:对宿主应用120增加登录成功提示弹窗。辅助程序110接收软件测试平台发送的任务数据后,对任务数据进行整理细化生成任务指令:第一指令:创建登录成功弹窗;第二指令:在登录成功后显示登录成功弹窗。辅助程序110将所述任务指令发送至所述宿主应用120中的动态加载单元130。

动态加载单元130基于第一指令生成第一应用参数:MessageBox(NELL,(LPCTSTR)TEXT("登录成功"),MB_OK);基于第二指令生成第二应用参数:MessageBox.Show。

宿主应用120基于第一应用参数和第二应用参数执行操作:创建登录成功弹窗;设置弹窗显示条件“在登录成功后显示登录成功弹窗”。创建成功后,宿主应用120向辅助程序110返回响应码201,响应码201表示已创建。

辅助程序110接收到运行数据后,将响应码201上传至软件测试平台,以供用户查看。

需要说明的是,以上是仅为便于理解本发明进行的示例,不应当对本发明构成任何限定。

本发明实施例提供的软件测试系统接收软件测试平台下发的任务数据,通过辅助程序生成任务指令,动态加载模块生成应用参数,宿主应用执行对应的测试操作,实现了由软件测试系统代替人工自动执行移动端应用功能,并记录运行数据,避免了人工操作可能导致的错误,提高了软件测试的准确性;另外本发明实施例通过软件测试平台下发所需的数据至移动端,实现了用户在测试过程中根据需要对测试数据和文件进行下载,避免了由于宿主应用的服务器的数据局限性导致的无法获取所需数据,进而无法对宿主应用进行测试的问题,提高了软件测试的全面性。

可选地,所述辅助程序110包括以下任一或组合:启动自动化单元、通信单元、截图单元以及指令命令执行单元;

所述启动自动化单元用于启动所述宿主应用;示例性地,启动自动化单元可以执行自动启动操作,如获取移动端操作权限后,启动宿主应用,可选地,在宿主应用启动时,启动自动化单元将动态加载模块以文件的形式注入宿主应用。宿主应用启动前,动态加载模块是一组源代码文件;注入是指在宿主应用的代码语句后添加动态加载模块,使得动态加载模块能够改变宿主应用运行流程,使宿主应用主动加载测试任务。宿主应用的代码语句可以是宿主应用中为注入动态加载模块预设的功能语句,也可以是宿主应用中的其他代码语句,如应用程序接口、空语句(Python.pass)、跳转语句等。应理解,以上是为便于理解本发明进行的示例,本发明实施例对动态加载模块的注入位置不做限定。

所述通信单元用于与所述宿主应用传输数据;通信单元构建和宿主应用之间的通信通道,便于数据的传递。

所述截图单元用于截图所述宿主应用的运行情况,便于跟踪宿主应用的运行情况。

所述指令命令执行单元用于向所述动态加载单元发送所述任务指令,便于执行测试流程中的任务指令。

可选地,所述辅助程序还包括:状态检测单元、结果判断单元以及流程判断单元;

所述状态检测单元用于检测所述宿主应用的运行状态和对所述辅助程序的运行状态进行自检。

示例性地,状态检测单元可以存储有预先定义的不同状态的响应码,响应码用于识别宿主应用的运行状态和辅助程序的运行状态。动态加载模块可以持续发送心跳包至辅助程序,状态检测单元根据心跳包的状态持续校验通信通道是否正常,如果异常可以判定为应用程序崩溃;辅助程序根据宿主应用的运行数据(如回调的进程、详情结果、运行参数、日志等)进行分析并归类判断,结果可分为正常执行和异常执行。

所述结果判断单元用于确定所述宿主应用的运行结果是否满足预设测试目标;示例性地,预设测试目标为登录成功,收到响应码200后,确定宿主应用的运行结果满足预设测试目标。

所述流程判断单元用于基于所述结果判断单元的判断结果确定下一步骤的测试流程。

可选地,所述辅助程序在所述运行结果满足预设测试目标的情况下,结束测试流程;所述辅助程序在所述运行结果未满足预设测试目标的情况下,基于预设重试次数对所述宿主应用进行重复测试。

一个实施例中,预设登录测试流程为:登录和退出;预设测试结果为登录成功,则流程判断单元可以在登录成功后强制退出测试流程,无需继续退出操作。

针对重复测试(也可以称为重试机制),是指若出现宿主应用的运行状态、辅助程序的运行状态异常或运行结果未满足预设测试目标等情况,辅助程序可以确定进入重试机制,对宿主应用重新发布任务指令或向软件测试平台发送重试消息,指示软件测试平台重新下发任务数据。

可以对于不可控的异常执行(如非预设的异常流程或非预设的宿主应用状态)发起重试机制,或者直接判定测试失败并标注原因;正常执行下继续根据流程状态划分并标记。不论何种状态,执行产生的数据都保留下来,便于回溯。

对于重试机制,为避免硬件或网络等问题造成的结果不精确,在结果不符合预期时执行重试(可自定义重试次数),并对客观存在条件加以判断(网络、系统版本、手机型号等)。

本发明实施例提供的软件测试系统通过对宿主应用的运行状态或辅助程序的运行状态进行检测,避免由于宿主应用和辅助程序运行异常影响测试效率;另外,本发明实施例通过基于所述结果判断单元的判断结果确定下一步骤的测试流程,可以实现在满足预设测试结果的情况下,提前跳出预设测试流程,提高了测试效率。

可选地,所述软件测试系统还包括初始化模块,所述初始化模块用于接收所述软件测试平台发送的初始化数据,并基于所述初始化数据进行运行环境准备。

初始化数据包括由用户上传至软件测试平台的、需要对移动端进行传输装载的数据和文件,如任务数据、辅助程序、宿主应用和动态加载模块。

初始化模块可以获取移动端系统文件读写权限,并创建临时运行文件,如文件目录和文件日志等临时文件,临时运行文件用于后续测试中宿主应用和辅助程序使用。

图2是本发明实施例提供的软件测试系统的结构示意图之二,如图2所示,本发明实施例提供的还包括存储模块;

所述存储模块用于接收所述软件测试平台发送的任务数据,并向所述辅助程序发送所述任务数据;

所述存储模块还用于接收并存储所述宿主应用发送的运行数据;

所述存储模块还用于接收并存储所述辅助程序发送的判断结果。

本发明实施例提供的软件测试系统通过在移动端的辅助程序接收软件测试平台发送的任务数据,并向宿主应用发送任务指令,不依赖宿主应用的服务器数据,提高了测试过程中数据获取的便利性和全面性,从而提高了软件测试的便利性和全面性;另外宿主应用通过动态加载模块获取任务指令,辅助程序和宿主应用端间通信,传递数据及模拟用户交互,不依赖宿主应用已有功能,不需要对宿主应用编写对应的测试功能或动态加载功能,提高了测试的便利性。

下面结合图3描述本发明实施例提供的软件测试平台。

图3是本发明实施例提供的软件测试平台的结构示意图,如图3所示,本发明实施例提供一种软件测试平台,包括:服务端310和网页端320;

所述网页端320用于获取用户输入的测试任务和测试数据,并将所述用户输入的测试任务和测试数据上传至所述服务端310;

所述服务端310用于接收所述网页端320上传的所述测试任务和测试数据,基于所述测试任务和测试数据生成任务数据,并将所述任务数据发送至软件测试系统中的辅助程序,所述任务数据用于供所述辅助程序生成任务指令,所述任务指令用于供宿主程序中的动态加载模块生成指示所述宿主应用运行的应用参数;

所述服务端310还用于接收所述辅助程序发送的运行数据,并将所述运行数据发送至所述网页端320。

具体地,网页端是面向用户的,用于用户输入测试任务和测试数据和查看测试结果;服务端用于实现网页端和软件测试系统之间的交互和数据传输,应理解,服务端包含数据库和文件存储系统,可以进行数据存储管理。

本发明实施例通过软件测试平台接收用户输入的测试任务和测试数据,并下发软件测试所需的数据至移动端,实现了用户在测试过程中根据需要对测试数据和文件进行下载,避免了由于宿主应用的服务器的数据局限性导致的无法获取所需数据,进而无法对宿主应用进行测试的问题,提高了软件测试的全面性。

可选地,在所述软件测试平台包括多个网页端且所述的服务端接收到多个网页端上传的测试任务和测试数据情况下,所述服务端还用于基于预先设置的网页端优先级和每个所述网页端的设备要求,为每个所述网页端分配移动端;所述设备要求是基于所述网页端上传的测试任务和测试数据确定的。

一个实施例中,多个网页端分别登录用户A、B和C,预设优先级顺序为:A、B、C,服务端预先与50台移动端(如手机、平板电脑等测试设备)相连接,50台移动端其中包括1类手机20台,2类手机20台,3类平板电脑10台。A发布界面测试任务,需要使用30台手机,对移动端没有硬件或软件要求;B发布压力测试任务,需要使用10台2类手机和10台3类平板电脑;C发布界面测试任务,需要使用10台1类手机。服务端根据每个用户对应的优先级参数可以确定首先为A用户分配移动端,在保证满足A用户的设备要求的前提下为B用户分配移动端,以此类推。服务端综合所有网页端的设备要求(如设备数量、软件版本、硬件版本和设备品牌等条件)进行设备调度,实现最大化利用移动端。服务端创建任务列表如下:分配1类手机20台和2类手机10台用于A用户进行界面测试;分配2类手机10台和3类平板电脑10台用于B用户进行压力测试;C用户进入等待任务,等待A用户测试过程中释放的1类手机。

本发明实施例提供的软件测试平台可以实现对移动端进行有序调度,避免了资源浪费,提高移动端的利用率,提高了测试效率。

可选地,所述服务端还用于在为每个所述网页端分配移动端后,记录每个所述移动端的任务状态。

具体地,在服务端将任务数据下发到符合用户测试要求的移动端后,记录每个移动端的任务状态,任务状态可以包括当前移动端的任务类型、任务执行进行和宿主应用运行状态等。可选地,网页端可以对每个所述移动端的任务状态进行查看。

本发明实施例提供的软件测试平台通过记录每个所述移动端的任务状态,便于用户查看每个移动端的测试情况,也便于用户对每个移动端进行管理。

下面对本发明提供的软件测试方法进行描述,下文描述的软件测试方法与上文描述的软件测试系统可相互对应参照。

图4是本发明实施例提供的软件测试方法的流程示意图之一,如图4所示,本发明实施例提供一种基于软件测试系统进行的软件测试方法,包括:

步骤410,辅助程序接收软件测试平台发送的任务数据,基于所述任务数据生成任务指令,将所述任务指令发送至宿主应用中的动态加载单元;

步骤420,所述动态加载单元接收所述任务指令,并基于所述任务指令生成用于指示所述宿主应用运行的应用参数;

步骤430,所述宿主应用基于所述应用参数运行并向所述辅助程序发送运行数据;

步骤440,所述辅助程序接收所述宿主应用发送的所述运行数据,并将所述运行数据发送至所述软件测试平台。

可选地,所述方法还包括:

所述辅助程序检测所述宿主应用的运行状态和对所述辅助程序的运行状态进行自检;

所述辅助程序确定所述宿主应用的运行结果是否满足预设测试目标;

所述辅助程序基于所述运行结果确定下一步骤的测试流程。

可选地,所述辅助程序基于所述运行结果确定下一步骤的测试流程包括:

所述辅助程序在所述运行结果满足预设测试目标的情况下,结束测试流程;

所述辅助程序在所述运行结果未满足预设测试目标的情况下,基于预设重试次数对所述宿主应用进行重复测试。

在此需要说明的是,本发明实施例提供的上述方法,能够与上述软件测试系统实施例相互对应参照,且能够达到相同的技术效果,在此不再对本实施例中与软件测试系统实施例相同的部分及有益效果进行具体赘述。

下面对本发明提供的软件测试方法进行描述,下文描述的软件测试方法与上文描述的软件测试平台可相互对应参照。

图5是本发明实施例提供的软件测试方法的流程示意图之二,如图5所示,本发明实施例提供一种基于软件测试平台进行的软件测试方法,包括:

步骤510,服务端接收网页端上传的测试任务和测试数据,基于所述测试任务和所述测试数据生成任务数据,并将所述任务数据发送至软件测试系统中的辅助程序,所述任务数据用于供所述辅助程序生成任务指令,所述任务指令用于供宿主程序中的动态加载模块生成指示所述宿主应用运行的应用参数;

步骤520,所述服务端接收所述辅助程序发送的运行数据,并将所述运行数据发送至所述网页端。

可选地,所述方法还包括:在所述软件测试平台包括多个网页端且所述的服务端接收到多个网页端上传的测试任务和测试数据情况下,所述服务端基于预先设置的网页端优先级和每个所述网页端的设备要求,为每个所述网页端分配移动端;所述设备要求是基于所述网页端上传的测试任务和测试数据确定的。

在此需要说明的是,本发明实施例提供的上述方法,能够与上述软件测试平台实施例相互对应参照,且能够达到相同的技术效果,在此不再对本实施例中与软件测试平台实施例相同的部分及有益效果进行具体赘述。

图6是本发明实施例提供的软件测试方法的流程示意图之三,如图6所示,本发明实施例提供的软件测试方法包括:

数据传输:服务端接收用户端上传的测试任务和测试数据,如流程参数、需要装载的数据等,将用户通过网页端上传的数据和文件保存至数据库和文件存储系统。

任务队列创建:服务端基于用户端上传的测试任务和测试数据建立任务队列,调度移动端设备,当服务端匹配到符合条件的设备时,根据用户需要执行与移动端交互的流程和向移动端下发数据,并记录当前流程状态,便于用户在网页端查看各个移动端的测试进度。

移动端环境准备和初始化:移动端中的辅助程序接收服务端传输装载的数据和文件;进行辅助程序和宿主应用的安装;获取移动端系统文件读写权限;创建临时运行文件,便于后续流程使用。

辅助程序执行:辅助程序中存储有预先定义的不同状态的响应码,并且预先封装全局执行入口和出口,入口是指辅助程序接收到服务端下发的任务数据后开始执行对应的测试流程,出口是指当辅助程序确定获得预设测试目标结果时跳出测试流程,结束测试。

辅助程序可以对服务端下发的任务数据进行整理、获得归类细化后的任务,并开始执行以下流程:

1.启动自动化单元:执行打开宿主应用和预设的自动操作,如获取宿主应用操作权限等。

2.启动通信单元:构建和宿主应用通信的通道,便于数据的传递;

3.截图单元:实时截图跟踪程序运行情况;

4.启动指令命令执行单元:向所述动态加载单元发送所述任务指令,用于执行指定流程的命令。

辅助执行状态自检:辅助程序对自身的运行状态进行自检,若发现执行异常,进行执行异常分析,保存分析结果,再进行测试结果分析,若当前已获得预设测试结果,结束测试流程;若未获得测试结果,重新进行移动端环境准备和初始化,进入重试机制。

宿主应用执行:宿主应用时,辅助程序通过文件的形式向宿主应用注入动态加载模块,宿主应用通过动态加载模块接收辅助程序发送的任务指令,根据任务指令指定的测试流程调用需要验证的功能模块。为了不影响宿主进程,动态加载模块使用独立的进程来执行相关调用,即开辟一个新的进程来执行动态加载模块的操作。

宿主应用启动入口,根据任务流程类型的不同执行不同的业务流程,执行完成后将运行数据(如执行回调的数据、日志、进程等)通过与辅助程序建立的通信通道发送至辅助程序;同时在宿主应用执行功能验证的过程中,动态模块持续发送心跳包至辅助程序。

宿主执行状态:辅助程序根据心跳包的状态持续校验通信通道是否正常,如果异常可以判定为宿主应用崩溃;辅助程序根据宿主应用返回的响应码确定宿主应用的运行状态。若辅助程序发现宿主应用执行异常,进行执行异常分析,保存分析结果,再进行测试结果分析,若当前已获得预设测试结果,结束测试流程;若未获得测试结果,重新进行移动端环境准备和初始化,进入重试机制。

辅助程序接收交互数据并分类判定从而获取结果:

辅助程序根据宿主回调的进程、详情结果、运行参数、日志等运行数据进行分析并归类判断,结果可分为正常执行、异常执行;不可控的异常发起重试机制,否则直接判定失败并标注原因;正常执行下继续根据流程状态划分并标记;非预想的流程需要回归至重试机制。

不论何种状态,将执行产生的数据都保留下来方便回溯。

关于重试机制,为避免硬件或网络等问题造成的结果不精确,在结果不符合预期时会有重试(重复次数可自定义),并对客观存在条件加以判断(网络、系统版本、手机型号等)。

服务端接收结果:辅助程序将测试结果发送至服务端,按照统一的数据结构和执行响应码加以整理,非文件类的结果数据保存到数据库,文件类的运行数据相关保存至文件存储系统,定义对外数据提供接口,方便通过网页端展示结果。服务端接收辅助程序上传的运行数据,如各项运行参数,结果文件、日志、截图等,将辅助程序上传的运行数据保存至数据库和文件存储系统。

本发明实施例提供的软件测试方法,通过软件测试平台自定义执行流程、数据、文件等所需参数达到和宿主应用交互的目的,记录宿主应用的执行结果,并验证宿主应用的功能是否正常运行,由软件测试系统执行测试任务,避免了人工重复繁琐的工作;还可以自由构建各类场景的业务数据来模拟用户数据;另外在不改变移动端应用的情况下,通过建立的软件测试系统和软件测试平台,下发测试流程任务指令、任务数据到不同型号的多台移动端设备,模拟宿主应用用户和宿主应用进行不同场景间的数据交互,获取所需的结果和运行状况,完整、高效地达到了验证移动端应用在各场景下功能和流程是否符合预期的目的。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号