一种自动化软件测试机器人及其实现方法与流程

文档序号:16429215发布日期:2018-12-28 20:00阅读:603来源:国知局
一种自动化软件测试机器人及其实现方法与流程

本发明涉及计算机技术领域,尤其是一种自动化软件测试机器人及其实现方法。

背景技术

软件测试是伴随着软件的产生而产生的。随着软件和it行业进入了大发展,软件趋向大型化、高复杂度,软件的质量越来越重要,软件测试的基础理论和实用技术开始形成,并且人们开始为软件开发设计了各种流程和管理方法,以结构化分析与设计、结构化评审、结构化程序设计以及结构化测试为特征。现有的软件测试手段几乎完全都是手工测试,测试的效率非常低,并且随着软件复杂度的提高,出现了很多通过手工方式无法完成测试的情况,尽管在一些大型软件的开发过程中,人们尝试编写了一些小程序(比如测试脚本)来辅助测试,但是这还是不能满足大多数软件项目的统一需要,并且这种测试方式要求测试人员熟悉编程方法,对测试人员要求较高,进而提高了测试成本。

为解决上述问题,市场上出现了一种自动化软件测试方法,这种方法将测试脚本提前存储在计算机上,通过人工将待测试的程序代码输入测试脚本,测试脚本根据存储好的测试用例进行软件测试,最终输出测试结果。这种测试方法的测试用例数量有限,导致测试覆盖不够全面,且测试脚本中预存的测试方法取决于脚本编辑人员的个人习惯以及经验,测试准确度较低。



技术实现要素:

为解决上述技术问题,本发明的目的在于:提供一种效率高、测试覆盖全面且测试准确度高的,自动化软件测试机器人及其实现方法。

本发明所采取的第一技术方案是:

一种自动化软件测试机器人,包括:

人工智能交互模块,用于控制机器人终端的软件测试行为;

先验数据获取模块,用于根据人工智能交互模块的控制信号,获取待测试软件对应的编程人员的先验数据,所述先验数据包括已完成测试的软件、编程习惯和代码编写风格;

语义分析模块,用于对获取的先验数据进行语义分析;

分类模块,用于对待测试软件进行分类,得到软件类别,所述程序类别包括系统软件程序和应用软件程序;

测试用例生成模块,用于根据语义分析的结果和软件类别,生成测试用例;

测试模块,用于根据测试用例,测试待测试软件,并生成测试结果。

进一步,还包括:

打印模块,用于根据人工智能交互模块的控制信号,打印测试结果;

存储模块,用于存储测试用例和测试结果。

进一步,还包括:

语音模块,用于根据人工智能交互模块的控制信号,对测试结果进行语音播报。

进一步,还包括运动控制模块,所述运动控制模块包括摄像头、自动避障模块、充电模块、定位模块和身份识别模块。

进一步,所述机器人终端上设有ide接口、红外接口、db接口、pci接口、rs232接口、usb接口、rj45接口、vga接口、midi接口和tf卡接口。

本发明所采取的第二技术方案是:

一种自动化软件测试机器人的实现方法,包括以下步骤:

向机器人终端发送软件测试命令;

获取待测试软件对应的编程人员的先验数据,所述先验数据包括已完成测试的软件、编程习惯和代码编写风格;

对获取的先验数据进行语义分析;

对待测试软件进行分类,得到软件类别,所述程序类别包括系统软件程序和应用软件程序;

根据语义分析的结果和软件类别,生成测试用例;

根据测试用例,测试待测试软件,并生成测试结果。

进一步,所述对获取的先验数据进行语义分析这一步骤,包括以下步骤:

对已完成测试的软件进行第一分析处理,生成第一数据集,所述第一分析处理包括获取已完成测试的软件中测试得到的错误信息;

对编程人员的编程习惯进行第二分析处理,生成第二数据集,所述第二分析处理包括获取编程人员的编程习惯中具有高出错率的代码段;

对编程人员的代码编写风格进行第三分析处理,生成第三数据集,所述第三分析处理包括获取编程人员的代码编写风格中具有高出错率的代码段;

对第一数据集、第二数据集和第三数据集进行数据汇集。

进一步,所述根据语义分析的结果和软件类别,生成测试用例这一步骤,包括以下步骤:

根据数据汇集的结果,生成待测试软件的应用场景;

判断待测试软件是否为系统软件,若是,则结合待测试软件的应用场景,生成第一测试用例;反之,则结合待测试软件的应用场景,生成第二测试用例。

进一步,还包括以下步骤:

通过远程控制信号将机器人终端移动到指定位置;

通过无线通讯的方式将待测试软件接收至机器人终端,其中,所述无线通讯的方式包括蓝牙通讯方式、wifi通讯方式和nfc通讯方式。

本发明所采取的第三技术方案是:

一种自动化软件测试机器人,包括:

存储器,用于存储程序;

处理器,用于加载程序,以执行如第二技术方案所述的一种自动化软件测试机器人的实现方法。

本发明的有益效果是:本发明能够通过机器人完成自动化的软件测试工作,无需人工参与测试过程,大大提高了测试效率;另外,本发明能够对待测试软件的先验数据进行语义分析,还能对待测试软件进行分类,最终根据语义分析结果和分类结果来生成大量测试用例,测试覆盖全面且大大提高了测试结果的准确度。

附图说明

图1为本发明一种自动化软件测试机器人的实现方法的步骤流程图。

具体实施方式

下面结合说明书附图和具体实施例对本发明作进一步解释和说明。对于本发明实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。

本发明一种自动化软件测试机器人,包括:

人工智能交互模块,用于控制机器人终端的软件测试行为;

先验数据获取模块,用于根据人工智能交互模块的控制信号,获取待测试软件对应的编程人员的先验数据,所述先验数据包括已完成测试的软件、编程习惯和代码编写风格;

语义分析模块,用于对获取的先验数据进行语义分析;

分类模块,用于对待测试软件进行分类,得到软件类别,所述程序类别包括系统软件程序和应用软件程序;

测试用例生成模块,用于根据语义分析的结果和软件类别,生成测试用例;

测试模块,用于根据测试用例,测试待测试软件,并生成测试结果。

进一步作为优选的实施方式,还包括:

打印模块,用于根据人工智能交互模块的控制信号,打印测试结果;

存储模块,用于存储测试用例和测试结果。

进一步作为优选的实施方式,还包括:

语音模块,用于根据人工智能交互模块的控制信号,对测试结果进行语音播报。

进一步作为优选的实施方式,还包括运动控制模块,所述运动控制模块包括摄像头、自动避障模块、充电模块、定位模块和身份识别模块。

其中,机器人终端能够根据摄像头监控周边环境状况,在闲置状态下能够实现监控功能;

自动避障模块和定位模块,用于提高机器人终端的智能性,避免碰撞其他物体,以延长机器人终端的使用寿命;

充电模块,用于为机器人终端提供电力信号;

身份识别模块,用于获取用户的身份信息,根据身份对应的权限来控制机器人终端。

进一步作为优选的实施方式,所述机器人终端上设有ide接口、红外接口、db接口、pci接口、rs232接口、usb接口、rj45接口、vga接口、midi接口和tf卡接口。

参照图1,本发明一种自动化软件测试机器人的实现方法,包括以下步骤:

向机器人终端发送软件测试命令;

获取待测试软件对应的编程人员的先验数据,所述先验数据包括已完成测试的软件、编程习惯和代码编写风格;

对获取的先验数据进行语义分析;

对待测试软件进行分类,得到软件类别,所述程序类别包括系统软件程序和应用软件程序;

根据语义分析的结果和软件类别,生成测试用例;

根据测试用例,测试待测试软件,并生成测试结果。

进一步作为优选的实施方式,所述对获取的先验数据进行语义分析这一步骤,包括以下步骤:

对已完成测试的软件进行第一分析处理,生成第一数据集,所述第一分析处理包括获取已完成测试的软件中测试得到的错误信息;

对编程人员的编程习惯进行第二分析处理,生成第二数据集,所述第二分析处理包括获取编程人员的编程习惯中具有高出错率的代码段;

对编程人员的代码编写风格进行第三分析处理,生成第三数据集,所述第三分析处理包括获取编程人员的代码编写风格中具有高出错率的代码段;

对第一数据集、第二数据集和第三数据集进行数据汇集。

进一步作为优选的实施方式,所述根据语义分析的结果和软件类别,生成测试用例这一

步骤,包括以下步骤:根据数据汇集的结果,生成待测试软件的应用场景;

判断待测试软件是否为系统软件,若是,则结合待测试软件的应用场景,生成第一测试用例;反之,则结合待测试软件的应用场景,生成第二测试用例。

进一步作为优选的实施方式,还包括以下步骤:

通过远程控制信号将机器人终端移动到指定位置;

通过无线通讯的方式将待测试软件接收至机器人终端,其中,所述无线通讯的方式包括蓝牙通讯方式、wifi通讯方式和nfc通讯方式。

与图1的方法相对应,本发明一种自动化软件测试机器人,包括:

存储器,用于存储程序;

处理器,用于加载程序,以执行本发明一种自动化软件测试机器人的实现方法。

下面以具体的软件测试过程为例,详细介绍本发明一种自动化软件测试机器人的实现方法:

s1、通过远程控制信号将机器人终端移动到指定位置;用户可通过移动终端(比如智能手机、平板电脑和红外遥控器等)向机器人终端发送移动控制信号,机器人终端根据接收到的移动控制信号移动至相应位置。

s2、机器人终端移动到指定位置后,可以通过无线通讯的方式接收待测试软件的数据信息,也可以通过有线通讯的方式接收待测试软件的数据信息。

s3、机器人终端接收到软件测试的启动信号后,从存储器或者远程云服务器中获取待测试软件对应的编程人员的先验数据。

s4、机器人终端对获取得到的先验数据进行语义分析;

其中,步骤s4具体包括以下步骤:

s41、对已完成测试的软件进行第一分析处理,生成第一数据集;其中,第一数据集记录了已完成测试的软件中出现频率较高的错误信息,通过获取已经测试到的历史错误数据,能够提高测试用例生成步骤的针对性。

s42、对编程人员的编程习惯进行第二分析处理,生成第二数据集;其中,第二数据集记录了编程人员的编程习惯,机器人终端可以根据存储模块中预存的数据,获取编程习惯对应的出错频率较高的代码段,进而提高测试用例生成步骤的针对性。

s43、对编程人员的代码编写风格进行第三分析处理,生成第三数据集;其中,第三数据集记录了编程人员的代码编写风格,机器人终端可以根据存储模块中预存的数据,获取代码编写风格对应的出错频率较高的代码段,进而提高测试用例生成步骤的针对性。

s44、对第一数据集、第二数据集和第三数据集进行数据汇集。

s5、对待测试软件进行分类,得到软件类别,所述程序类别包括系统软件程序和应用软件程序。

其中,步骤s5具体包括以下步骤:

s51、根据数据汇集的结果,生成待测试软件的应用场景;

s52、判断待测试软件是否为系统软件,若是,则结合待测试软件的应用场景,生成第一测试用例;反之,则结合待测试软件的应用场景,生成第二测试用例;

s6、根据语义分析的结果和软件类别,生成测试用例;

s7、根据测试用例,测试待测试软件,并生成测试结果。

s8、机器人终端通过打印模块将测试结果打印,以及通过语音模块对测试结果进行语音播报。

另外,本发明的机器人终端上设有ide接口、红外接口、db接口、pci接口、rs232接口、usb接口、rj45接口、vga接口、midi接口和tf卡接口等,能够连接市场上常用的大部分外部设备,拓展性强。

综上所述,本发明一种自动化软件测试机器人及其实现方法具有以下优点:

1)、本发明能够通过机器人完成自动化的软件测试工作,无需人工参与测试过程,大大提高了测试效率;

2)、本发明能够对待测试软件的先验数据进行语义分析,还能对待测试软件进行分类,最终根据语义分析结果和分类结果来生成大量测试用例,测试覆盖全面且大大提高了测试结果的准确度;

3)、本发明的机器人终端上设有各种接口,大大提高了本发明的拓展性。

以上是对本发明的较佳实施进行了具体说明,但本发明并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

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