一种交互式软件的偶然性错误测试方法及系统与流程

文档序号:12747938阅读:184来源:国知局
一种交互式软件的偶然性错误测试方法及系统与流程

本发明涉及测试领域,尤其涉及一种交互式软件的偶然性错误测试方法及系统。



背景技术:

交互式软件通常包括客户端和服务器端,在被正式应用之前均需要进行相应的软件测试,以便及时发现被测软件的性能异常、程序异常等问题,从而对被测软件进行相应的修补与完善,以确保交互式软件产品可在设备上正常运行。

在交互式软件测试过程中经常会出现偶然性错误,在很大程度上影响用户体验,造成重启软件,重要数据丢失等问题。此外,偶然性错误大多难以重现,若没有及时记录相关的错误信息,相关开发人员难以找到问题的根源。

现有技术大多在虚拟机中进行软件测试,虽然能够模拟软件的运行态,提高测试结果的准确性,但是虚拟机和真实设备始终存在差异,无法完全真实地反映出软件在真实设备中运行的情况。



技术实现要素:

本发明所要解决的技术问题是:提供一种交互式软件的偶然性错误测试方法及系统,实现可自动测试部署在大规模设备上的交互式软件的偶然性错误。

为了解决上述技术问题,本发明采用的技术方案为:

本发明提供一种交互式软件的偶然性错误测试方法,包括:

步骤1、预设待测交互式软件;所述交互式软件包括客户端和服务器端;

步骤2、获取部署所述待测交互式软件的服务器端的第一设备;获取部署所述待测交互式软件的客户端的第二设备,得到第二设备集合;

步骤3、预设与所述待测交互式软件的服务器端对应的第一测试脚本,形成第一测试脚本集合;预设与所述待测交互式软件的客户端对应的第二测试脚本,形成第二测试脚本集合;

步骤4、从所述第一测试脚本集合中获取一第一测试脚本,并将所述一第一测试脚本发送至所述第一设备;从所述第二测试脚本集合中获取与所述一第一测试脚本对应的第二测试脚本,并将所述第二测试脚本发送至所述第二设备集合中的第二设备;

步骤5、预设测试时长;

步骤6、获取当前系统时间,得到测试开始时间;

步骤7、所述第一设备解析并执行所述一第一测试脚本;所述第二设备集合中的第二设备解析并执行所述第二测试脚本;

步骤8、获取当前系统时间,将当前系统时间减去所述测试开始时间,得到当前测试时长;若所述当前测试时长小于所述测试时长,则返回步骤7;否则:结束测试。

本发明还提供一种交互式软件的偶然性错误测试系统,包括:

第一预设模块,用于预设待测交互式软件;所述交互式软件包括客户端和服务器端;

第一获取模块,用于获取部署所述待测交互式软件的服务器端的第一设备;获取部署所述待测交互式软件的客户端的第二设备,得到第二设备集合;

第二预设模块,用于预设与所述待测交互式软件的服务器端对应的第一测试脚本,形成第一测试脚本集合;预设与所述待测交互式软件的客户端对应的第二测试脚本,形成第二测试脚本集合;

第二获取模块,用于从所述第一测试脚本集合中获取一第一测试脚本,并将所述一第一测试脚本发送至所述第一设备;从所述第二测试脚本集合中获取与所述一第一测试脚本对应的第二测试脚本,并将所述第二测试脚本发送至所述第二设备集合中的第二设备;

第三预设模块,用于预设测试时长;

第三获取模块,用于获取当前系统时间,得到测试开始时间;

执行模块,用于所述第一设备解析并执行所述一第一测试脚本;所述第二设备集合中的第二设备解析并执行所述第二测试脚本;

第四获取模块,用于获取当前系统时间,将当前系统时间减去所述测试开始时间,得到当前测试时长;若所述当前测试时长小于所述测试时长,则返回所述执行模块;否则:结束测试。

本发明的有益效果在于:通过预设待测交互式软件的服务器端和客户端的测试脚本,并自动将所述测试脚本发送至已部署待测交互式软件的服务器端或客户端的设备,所述设备接收到测试脚本后,自动执行相应的测试脚本,实现自动测试部署在大规模设备上的交互式软件;通过预设测试时长,在所述测试时长内,循环测试同一用户场景,有利于发现偶然性错误。

附图说明

图1为本发明一种交互式软件的偶然性错误测试方法的流程框图;

图2为本发明一种交互式软件的偶然性错误测试系统的结构框图;

标号说明:

1、第一预设模块;2、第一获取模块;3、第二预设模块;4、第二获取模块;5、第三预设模块;6、第三获取模块;7、执行模块;8、第四获取模块。

具体实施方式

为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。

本发明最关键的构思在于:通过预设测试时长,在所述测试时长内,循环测试同一用户场景,有利于发现偶然性错误。

如图1所示,本发明提供一种交互式软件的偶然性错误测试方法,包括:

步骤1、预设待测交互式软件;所述交互式软件包括客户端和服务器端;

步骤2、获取部署所述待测交互式软件的服务器端的第一设备;获取部署所述待测交互式软件的客户端的第二设备,得到第二设备集合;

步骤3、预设与所述待测交互式软件的服务器端对应的第一测试脚本,形成第一测试脚本集合;预设与所述待测交互式软件的客户端对应的第二测试脚本,形成第二测试脚本集合;

步骤4、从所述第一测试脚本集合中获取一第一测试脚本,并将所述一第一测试脚本发送至所述第一设备;从所述第二测试脚本集合中获取与所述一第一测试脚本对应的第二测试脚本,并将所述第二测试脚本发送至所述第二设备集合中的第二设备;

步骤5、预设测试时长;

步骤6、获取当前系统时间,得到测试开始时间;

步骤7、所述第一设备解析并执行所述一第一测试脚本;所述第二设备集合中的第二设备解析并执行所述第二测试脚本;

步骤8、获取当前系统时间,将当前系统时间减去所述测试开始时间,得到当前测试时长;若所述当前测试时长小于所述测试时长,则返回步骤7;否则:结束测试。

在所述第一设备和所述第二设备集合中的所有第二设备均执行完一次测试脚本后,判断当前测试时长是否在所述预设测试时长范围内,若是,则所述第一设备和所述第二设备集合中的所有第二设备再次执行相应的测试脚本,直到当前测试时长大于所述预设测试时长。通过多次执行同一用户场景下的测试脚本,有利于发现偶然性错误,提高测试结果的精确性。所述获取部署所述待测交互式软件的服务器端的第一设备;获取部署所述待测交互式软件的客户端的第二设备,得到第二设备集合,包括获取相应设备的唯一标识识别符、IP地址、设备名称、系统版本号、内存、CPU、分辨率、厂家等设备信息。为了测试待测交互式软件的服务器端,应预设相应的测试脚本,由于所述服务器端包括多用户场景,因此需要为每一用户场景编写测试脚本。由于服务器端与客户端之间存在交互,因此需要为客户端预设与服务器端中的不同用户场景的测试脚本相对应的测试脚本,客户端和服务器端的测试脚本中模拟的操作为交互操作。部署有待测交互式软件的客户端和服务器端的设备中安装有解析器,所述解析器可用于接收并执行测试脚本。

进一步地,从所述第一测试脚本集合中获取一第一测试脚本,并将所述一第一测试脚本发送至所述第一设备,具体为:

从所述第一测试脚本集合中随机获取一第一测试脚本,并将所述一第一测试脚本发送至所述第一设备。

由上述描述可知,可随机获取服务端的测试脚本,从而实现随机测试任一用户场景。

进一步地,从所述第一测试脚本集合中获取一第一测试脚本,并将所述一第一测试脚本发送至所述第一设备,具体为:

预设一第一测试脚本;所述一第一测试脚本属于第一测试脚本集合;

发送所述一第一测试脚本至所述第一设备。

由上述描述可知,可获取服务端的指定测试脚本,从而实现测试指定用户场景。

进一步地,从所述第二测试脚本集合中获取与所述一第一测试脚本对应的第二测试脚本,并将所述第二测试脚本发送至所述第二设备集合中的第二设备,具体为:

获取与所述一第一测试脚本相对应的第二测试脚本,得到第三测试脚本集合;

从所述第三测试脚本集合中随机获取一第三测试脚本;

发送所述一第三测试脚本至所述第二设备集合中的第二设备。

由上述描述可知,可实现所有待测交互式软件的客户端执行同一测试脚本,从而可测试所有的客户端同时做出相同反应时,是否会出现异常情况。

进一步地,从所述第二测试脚本集合中获取与所述一第一测试脚本对应的第二测试脚本,并将所述第二测试脚本发送至所述第二设备集合中的第二设备,具体为:

获取与所述一第一测试脚本相对应的第二测试脚本,得到第三测试脚本集合;

获取所述第二设备集合中的第二设备的数量,得到第二设备数;

预设测试脚本数;所述测试脚本数在第二设备数以内;

从所述第三测试脚本集合中随机获取与测试脚本数相对应的第三测试脚本,得到第四测试脚本集合;

将所述第二设备集合中的第二设备按所述测试脚本数分组,得到第二设备组;

将所述第四测试脚本集合中的测试脚本依次发送至第二设备组中的第二设备。

由上述描述可知,可实现部署在不同设备的待测交互式软件的客户端同时执行多种测试脚本,从而可测试多个客户端同时做出多种反应时,是否会出现异常情况。

进一步地,还包括:

获取测试脚本返回的测试数据;

分析所述测试数据形成测试报告。

由上述描述可知,可自动获取测试脚本返回的测试数据,从而可及时记录偶然性错误的信息,并生成测试报告,方便工程师根据测试报告对被测软件进行相应的修补与完善,以确保交互式软件产品可在设备上正常运行,提高用户体验。

如图2所示,本发明还提供一种交互式软件的偶然性错误测试系统,包括:

第一预设模块1,用于预设待测交互式软件;所述交互式软件包括客户端和服务器端;

第一获取模块2,用于获取部署所述待测交互式软件的服务器端的第一设备;获取部署所述待测交互式软件的客户端的第二设备,得到第二设备集合;

第二预设模块3,用于预设与所述待测交互式软件的服务器端对应的第一测试脚本,形成第一测试脚本集合;预设与所述待测交互式软件的客户端对应的第二测试脚本,形成第二测试脚本集合;

第二获取模块4,用于从所述第一测试脚本集合中获取一第一测试脚本,并将所述一第一测试脚本发送至所述第一设备;从所述第二测试脚本集合中获取与所述一第一测试脚本对应的第二测试脚本,并将所述第二测试脚本发送至所述第二设备集合中的第二设备;

第三预设模块5,用于预设测试时长;

第三获取模块6,用于获取当前系统时间,得到测试开始时间;

执行模块7,用于所述第一设备解析并执行所述一第一测试脚本;所述第二设备集合中的第二设备解析并执行所述第二测试脚本;

第四获取模块8,用于获取当前系统时间,将当前系统时间减去所述测试开始时间,得到当前测试时长;若所述当前测试时长小于所述测试时长,则返回所述执行模块;否则:结束测试。

本发明的实施例一为:

步骤1、预设待测交互式软件;所述交互式软件包括客户端和服务器端;

步骤2、获取部署所述待测交互式软件的服务器端的第一设备;获取部署所述待测交互式软件的客户端的第二设备,得到第二设备集合;

步骤3、预设与所述待测交互式软件的服务器端对应的第一测试脚本,形成第一测试脚本集合;预设与所述待测交互式软件的客户端对应的第二测试脚本,形成第二测试脚本集合;

步骤4、从所述第一测试脚本集合中随机获取一第一测试脚本,并将所述一第一测试脚本发送至所述第一设备;获取与所述一第一测试脚本相对应的第二测试脚本,得到第三测试脚本集合;从所述第三测试脚本集合中随机获取一第三测试脚本;发送所述一第三测试脚本至所述第二设备集合中的第二设备;

步骤5、预设测试时长;

步骤6、获取当前系统时间,得到测试开始时间;

步骤7、所述第一设备解析并执行所述一第一测试脚本;所述第二设备集合中的第二设备解析并执行所述第二测试脚本;

步骤8、获取当前系统时间,将当前系统时间减去所述测试开始时间,得到当前测试时长;若所述当前测试时长小于所述测试时长,则返回步骤7;否则:结束测试;

步骤9、获取测试脚本返回的测试数据;分析所述测试数据形成测试报告。

由上述描述可知,本实施例实现随机测试一用户场景,所有待测交互式软件的客户端执行相同操作,且在预设测试时长内重复执行当前客户端和服务器端获取的测试脚本,并生成测试报告。

本实施例的应用场景为:在现代教学中,电子教学已十分普遍。如一智慧教室由一个教师端和六十个学生端组成。教师端可向学生端同时发送不同类型的题目,学生端做出回答后,提交数据至教师端。若系统随机选择的教师端的用户场景为,教师端向学生端发送一道单选题,系统随机选择的学生端的测试脚本为执行选择选项A的测试脚本。预设测试时长为1小时,则在1小时内,服务器端不断重复执行向学生端发送一道单选题的测试脚本,学生端不断重复执行选择选项A的测试脚本。并获得相应的测试数据,形成测试报告,方便工程师根据测试报告对被测软件进行相应的修补与完善,以确保交互式软件产品可在设备上正常运行。

本发明的实施例二为:

步骤1、预设待测交互式软件;所述交互式软件包括客户端和服务器端;

步骤2、获取部署所述待测交互式软件的服务器端的第一设备;获取部署所述待测交互式软件的客户端的第二设备,得到第二设备集合;

步骤3、预设与所述待测交互式软件的服务器端对应的第一测试脚本,形成第一测试脚本集合;预设与所述待测交互式软件的客户端对应的第二测试脚本,形成第二测试脚本集合;

步骤4、从所述第一测试脚本集合中随机获取一第一测试脚本,并将所述一第一测试脚本发送至所述第一设备;获取所述第二设备集合中的第二设备的数量,得到第二设备数;预设测试脚本数;所述测试脚本数在第二设备数以内;从所述第三测试脚本集合中随机获取与测试脚本数相对应的第三测试脚本,得到第四测试脚本集合;将所述第二设备集合中的第二设备按所述测试脚本数分组,得到第二设备组;将所述第四测试脚本集合中的测试脚本依次发送至第二设备组中的第二设备;

步骤5、预设测试时长;

步骤6、获取当前系统时间,得到测试开始时间;

步骤7、所述第一设备解析并执行所述一第一测试脚本;所述第二设备集合中的第二设备解析并执行所述第二测试脚本;

步骤8、获取当前系统时间,将当前系统时间减去所述测试开始时间,得到当前测试时长;若所述当前测试时长小于所述测试时长,则返回步骤7;否则:结束测试;

步骤9、获取测试脚本返回的测试数据;分析所述测试数据形成测试报告。

由上述描述可知,本实施例实现随机测试一用户场景,不同组的待测交互式软件的客户端执行不同操作,且在预设测试时长内重复执行当前客户端和服务器端获取的测试脚本,并生成测试报告。

本实施例的应用场景为:在现代教学中,电子教学已十分普遍。如一智慧教室由一个教师端和六十个学生端组成。教师端可向学生端同时发送不同类型的题目,学生端做出回答后,提交数据至教师端。若系统随机选择的教师端的用户场景为,教师端向学生端发送一道单选题,则此时学生端可选择的测试脚本为,执行选择选项A的测试脚本,执行选择选项B的测试脚本,执行选择选项C的测试脚本和执行选择选项D的测试脚本。将学生端分成四组,每组包含十五个学生端,四组学生端分别执行选择选项A的测试脚本、选择选项B的测试脚本、选择选项C的测试脚本和选择选项D的测试脚本,则智慧教室中有十五个学生端执行选择选项A的操作,十五个学生端执行选择选项B的操作,十五个学生端执行选择选项C的操作,还有十五个学生端执行选择选项D的操作,并将选择结果上传至教师端。预设测试时长为1小时,则在1小时内,服务器端不断重复执行向学生端发送一道单选题的测试脚本,十五个学生端不断重复执行选择选项A的测试脚本,十五个学生端不断重复执行选择选项B的测试脚本,十五个学生端不断重复执行选择选项C的测试脚本,还有十五个学生端不断重复执行选择选项D的测试脚本。并获得相应的测试数据,形成测试报告。

本发明的实施例三为:

步骤1、预设待测交互式软件;所述交互式软件包括客户端和服务器端;

步骤2、获取部署所述待测交互式软件的服务器端的第一设备;获取部署所述待测交互式软件的客户端的第二设备,得到第二设备集合;

步骤3、预设与所述待测交互式软件的服务器端对应的第一测试脚本,形成第一测试脚本集合;预设与所述待测交互式软件的客户端对应的第二测试脚本,形成第二测试脚本集合;

步骤4、预设一第一测试脚本;所述一第一测试脚本属于第一测试脚本集合;发送所述一第一测试脚本至所述第一设备;获取与所述一第一测试脚本相对应的第二测试脚本,得到第三测试脚本集合;从所述第三测试脚本集合中随机获取一第三测试脚本;发送所述一第三测试脚本至所述第二设备集合中的第二设备;

步骤5、预设测试时长;

步骤6、获取当前系统时间,得到测试开始时间;

步骤7、所述第一设备解析并执行所述一第一测试脚本;所述第二设备集合中的第二设备解析并执行所述第二测试脚本;

步骤8、获取当前系统时间,将当前系统时间减去所述测试开始时间,得到当前测试时长;若所述当前测试时长小于所述测试时长,则返回步骤7;否则:结束测试;

步骤9、获取测试脚本返回的测试数据;分析所述测试数据形成测试报告。

由上述描述可知,本实施例实现指定测试一用户场景,所有待测交互式软件的客户端执行相同操作,且在预设测试时长内重复执行当前客户端和服务器端获取的测试脚本,并生成测试报告。

本实施例的应用场景为:在现代教学中,电子教学已十分普遍。如一智慧教室由一个教师端和六十个学生端组成。教师端可向学生端同时发送不同类型的题目,学生端做出回答后,提交数据至教师端。现指定教师端的待测用户场景为,教师端向学生端发送一道判断题,则此时学生端可选择的测试脚本为,执行判断本题为正确的测试脚本和判断本题为选择错误的测试脚本。若系统随机选择的学生端的测试脚本为执行判断本题为正确的测试脚本,则智慧教室中的六十个学生端执行判断本题为正确的操作,并将选择结果上传至教师端。预设测试时长为1小时,则在1小时内,服务器端不断重复执行向学生端发送一道判断题的测试脚本,六十个学生端不断重复执行判断本题为正确的测试脚本。获得相应的测试数据,形成测试报告。

本发明的实施例四为:

步骤1、预设待测交互式软件;所述交互式软件包括客户端和服务器端;

步骤2、获取部署所述待测交互式软件的服务器端的第一设备;获取部署所述待测交互式软件的客户端的第二设备,得到第二设备集合;

步骤3、预设与所述待测交互式软件的服务器端对应的第一测试脚本,形成第一测试脚本集合;预设与所述待测交互式软件的客户端对应的第二测试脚本,形成第二测试脚本集合;

步骤4、预设一第一测试脚本;所述一第一测试脚本属于第一测试脚本集合;发送所述一第一测试脚本至所述第一设备;获取所述第二设备集合中的第二设备的数量,得到第二设备数;预设测试脚本数;所述测试脚本数在第二设备数以内;从所述第三测试脚本集合中随机获取与测试脚本数相对应的第三测试脚本,得到第四测试脚本集合;将所述第二设备集合中的第二设备按所述测试脚本数分组,得到第二设备组;将所述第四测试脚本集合中的测试脚本依次发送至第二设备组中的第二设备;

步骤5、预设测试时长;

步骤6、获取当前系统时间,得到测试开始时间;

步骤7、所述第一设备解析并执行所述一第一测试脚本;所述第二设备集合中的第二设备解析并执行所述第二测试脚本;

步骤8、获取当前系统时间,将当前系统时间减去所述测试开始时间,得到当前测试时长;若所述当前测试时长小于所述测试时长,则返回步骤7;否则:结束测试;

步骤9、获取测试脚本返回的测试数据;分析所述测试数据形成测试报告。

由上述描述可知,本实施例实现指定测试一用户场景,不同组的待测交互式软件的客户端执行不同操作,且在预设测试时长内重复执行当前客户端和服务器端获取的测试脚本,并生成测试报告。

本实施例的应用场景为:在现代教学中,电子教学已十分普遍。如一智慧教室由一个教师端和六十个学生端组成。教师端可向学生端同时发送不同类型的题目,学生端做出回答后,提交数据至教师端。现指定教师端的待测用户场景为,教师端向学生端发送一道判断题,则此时学生端可选择的测试脚本为,执行判断本题为正确的测试脚本和执行判断本题为错误的测试脚本。将学生端分成两组,每组包含三十个学生端,两组学生端分别执行判断本题为正确的测试脚本和判断本题为错误的测试脚本,则智慧教室中有三十个学生端执行判断本题为正确的操作,三十个学生端执行判断本题为错误的操作,并将判断结果上传至教师端。预设测试时长为1小时,则在1小时内,服务器端不断重复执行向学生端发送一道判断题的测试脚本,三十个学生端不断重复执行判断本题为错误的测试脚本,另外三十个学生端不断重复执行判断本题为正确的测试脚本。获得相应的测试数据,形成测试报告。

综上所述,本发明提供的一种交互式软件的偶然性错误测试方法及系统,通过预设待测交互式软件的服务器端和客户端的测试脚本,并自动将所述测试脚本发送至已部署待测交互式软件的服务器端或客户端的设备,所述设备接收到测试脚本后,自动执行相应的测试脚本,实现自动测试部署在大规模设备上的交互式软件;通过预设测试时长,在所述测试时长内,循环测试同一用户场景,有利于发现偶然性错误。进一步地,可随机获取服务端的测试脚本,从而实现随机测试任一用户场景;进一步地,可获取服务端的指定测试脚本,从而实现测试指定用户场景;进一步地,可实现所有待测交互式软件的客户端执行同一测试脚本,从而可测试所有的客户端同时做出相同反应时,是否会出现异常情况;进一步地,可实现部署在不同设备的待测交互式软件的客户端同时执行多种测试脚本,从而可测试多个客户端同时做出多种反应时,是否会出现异常情况;进一步地,可自动获取测试脚本返回的测试数据,从而可及时记录偶然性错误的信息,并生成测试报告,方便工程师根据测试报告对被测软件进行相应的修补与完善,以确保交互式软件产品可在设备上正常运行,提高用户体验。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1