一种基于机器学习的自动化测试方法及终端与流程

文档序号:15850800发布日期:2018-11-07 09:52阅读:219来源:国知局
一种基于机器学习的自动化测试方法及终端与流程

本发明涉及软件测试领域,尤其涉及一种基于机器学习的自动化测试方法及终端。

背景技术

自动化测试技术目前已广泛应用于软件开发中,其可以极大地提高测试的效率,降低人为因素的影响,缩短软件开发周期。其中,尤以使用图像匹配技术的界面自动化测试技术得到越来越多的关注。它的测试过程为:测试工程师编写自动化测试用例,接着对产品界面的可操作控件进行截图,然后编写对应的测试代码,启动。

但是,现有的使用图像匹配技术的界面自动化测试方法存在如下不足:需要针对截图的可操作控件编写对应的测试代码,并且当产品研发迭代频繁,界面变化比较大时,需要测试工程师重新修改测试用例,并针对产品界面变化部分的可操作控件进行重新截图,修改测试代码,操作繁琐,消耗时间,测试效率不高。



技术实现要素:

本发明所要解决的技术问题是:提供一种测试效率高的基于机器学习的自动化测试方法及终端。

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

一种基于机器学习的自动化测试方法,包括步骤:

s1、使用机器学习框架训练完成的模型检测待测试产品的当前界面,确定出当前界面的所有可交互控件,并将所述当前界面的所有可交互控件圈选出来;

s2、接收通过语音描述的针对一可交互控件的测试用例,将所述语音转化为文字,并按照预设格式将所述文字转换为数据记录;

s3、根据所述数据记录实时调用所述可交互控件对应的操作代码对所述可交互控件进行测试。

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

一种基于机器学习的自动化测试终端,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

s1、使用机器学习框架训练完成的模型检测待测试产品的当前界面,确定出当前界面的所有可交互控件,并将所述当前界面的所有可交互控件圈选出来;

s2、接收通过语音描述的针对一可交互控件的测试用例,将所述语音转化为文字,并按照预设格式将所述文字转换为数据记录;

s3、根据所述数据记录实时调用所述可交互控件对应的操作代码对所述可交互控件进行测试。

本发明的有益效果在于:通过模型检测出待测试产品当前界面的可交互控件,并将可交互控件进行圈选,将圈选的可交互控件通过语音识别生成测试用例,不用编写测试代码,能够通过语音描述操作过程,生成对应的数据记录,实时对可交互控件进行测试,极大地节省了编写界面测试自动化脚本的时间,提高了测试效率。

附图说明

图1为本发明实施例的一种基于机器学习的自动化测试方法的流程图;

图2为本发明实施例的一种基于机器学习的自动化测试终端的结构示意图;

图3为本发明实施例的待测试产品的一个界面的示意图;

图4为本发明实施例的待测试产品的一个界面中的可交互控件被框选后的示意图;

图5为本发明实施例的自动化测试工具的界面示意图;

标号说明:

1、一种基于机器学习的自动化测试终端;2、存储器;3、处理器。

具体实施方式

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

本发明最关键的构思在于:通过模型检测出待测试产品当前界面的可交互控件,并将可交互控件进行圈选,将圈选的可交互控件通过语音识别生成对应的测试用例并进行实时测试。

请参照图1,一种基于机器学习的自动化测试方法,包括步骤:

s1、使用机器学习框架训练完成的模型检测待测试产品的当前界面,确定出当前界面的所有可交互控件,并将所述当前界面的所有可交互控件圈选出来;

s2、接收通过语音描述的针对一可交互控件的测试用例,将所述语音转化为文字,并按照预设格式将所述文字转换为数据记录;

s3、根据所述数据记录实时调用所述可交互控件对应的操作代码对所述可交互控件进行测试。

由上述描述可知,本发明的有益效果在于:通过模型检测出待测试产品当前界面的可交互控件,并将可交互控件进行圈选,将圈选的可交互控件通过语音识别生成测试用例,不用编写测试代码,能够通过语音描述操作过程,生成对应的数据记录,实时对可交互控件进行测试,极大地节省了编写界面测试自动化脚本的时间,提高了测试效率。

进一步的,所述步骤s1之前还包括步骤:

s01、对待测试产品的所有界面的可交互控件进行分类,分别编写与所述分类后的可交互控件对应的操作代码;

s02、根据所述分类,对所述待测试产品的所有界面中的可交互控件进行截图,分别生成各个分类对应的截图图片,使用机器学习框架对各个分类对应的截图图片进行模型训练直至训练出的模型的检测精度大于一预设值。

由上述描述可知,在执行测试之前,进行检测待测产品界面可交互控件的模型的训练以及可交互控件对于的操作代码的编写,提高了后续进行自动化测试的准确性与高效性。

进一步的,所述步骤s1中所述将所述当前界面的所有可交互控件圈选出来包括:

通过机器视觉库将由所述模型检测出的待测试产品的当前界面的所有可交互控件圈选出来,并显示所有可交互控件的控件信息,所述控件信息包括控件识别名称;

所述步骤s2中所述语音包括所述控件识别名称。

由上述描述可知,通过机器视觉库以及训练好的模型的结合保证了识别出的可交互控件的准确性,通过对可交互控件的控件识别名称准确地显示保证后续语言识别的准确性,从而确保自动化测试的可靠性。

进一步的,所述步骤s3中对所述可交互控件进行测试的同时对其进行录制,测试完成后生成对应所述测试用例的录制文件,并对所述录制文件进行存储。

由上述描述可知,在进行自动化测试的同时,对所述测试进行同步录制,对测试用例进行同步存储,方便后续的调用回放。

进一步的,所述步骤s3之后还包括步骤:

s4、接收选取的录制完成的测试用例,根据所述选取的录制完成的测试用例的数据记录实时测试待测试产品的当前界面中与所述数据记录对应的可交互控件。

由上述描述可知,通过对已测试过的测试用例进行存储,可以对存储的录制完成的测试用例进行调用回放,所述测试用例对应的数据记录可以直接应用于待测试的可交互控件,进一步节省了编写界面测试自动化脚本的时间。

请参照图2,一种基于机器学习的自动化测试终端,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

s1、使用机器学习框架训练完成的模型检测待测试产品的当前界面,确定出当前界面的所有可交互控件,并将所述当前界面的所有可交互控件圈选出来;

s2、接收通过语音描述的针对一可交互控件的测试用例,将所述语音转化为文字,并按照预设格式将所述文字转换为数据记录;

s3、根据所述数据记录实时调用所述可交互控件对应的操作代码对所述可交互控件进行测试。

由上述描述可知,本发明的有益效果在于:通过模型检测出待测试产品当前界面的可交互控件,并将可交互控件进行圈选,将圈选的可交互控件通过语音识别生成测试用例,不用编写测试代码,能够通过语音描述操作过程,生成对应的数据记录,实时对可交互控件进行测试,极大地节省了编写界面测试自动化脚本的时间,提高了测试效率。

进一步的,所述步骤s1之前还包括步骤:

s01、对待测试产品的所有界面的可交互控件进行分类,分别编写与所述分类后的可交互控件对应的操作代码;

s02、根据所述分类,对所述待测试产品的所有界面中的可交互控件进行截图,分别生成各个分类对应的截图图片,使用机器学习框架对各个分类对应的截图图片进行模型训练直至训练出的模型的检测精度大于一预设值。

由上述描述可知,在执行测试之前,进行检测待测产品界面可交互控件的模型的训练以及可交互控件对于的操作代码的编写,提高了后续进行自动化测试的准确性与高效性。

进一步的,所述步骤s1中所述将所述当前界面的所有可交互控件圈选出来包括:

通过机器视觉库将由所述模型检测出的待测试产品的当前界面的所有可交互控件圈选出来,并显示所有可交互控件的控件信息,所述控件信息包括控件识别名称;

所述步骤s2中所述语音包括所述控件识别名称。

由上述描述可知,通过机器视觉库以及训练好的模型的结合保证了识别出的可交互控件的准确性,通过对可交互控件的控件识别名称准确地显示保证后续语言识别的准确性,从而确保自动化测试的可靠性。

进一步的,所述步骤s3中对所述可交互控件进行测试的同时对其进行录制,测试完成后生成对应所述测试用例的录制文件,并对所述录制文件进行存储。

由上述描述可知,在进行自动化测试的同时,对所述测试进行同步录制,对测试用例进行同步存储,方便后续的调用回放。

进一步的,所述步骤s3之后还包括步骤:

s4、接收选取的录制完成的测试用例,根据所述选取的录制完成的测试用例的数据记录实时测试待测试产品的当前界面中与所述数据记录对应的可交互控件。

由上述描述可知,通过对已测试过的测试用例进行存储,可以对存储的录制完成的测试用例进行调用回放,所述测试用例对应的数据记录可以直接应用于待测试的可交互控件,进一步节省了编写界面测试自动化脚本的时间。

实施例一

请参照图1,一种基于机器学习的自动化测试方法,包括步骤:

s01、对待测试产品的所有界面的可交互控件进行分类,分别编写与所述分类后的可交互控件对应的操作代码;

s02、根据所述分类,对所述待测试产品的所有界面中的可交互控件进行截图,分别生成各个分类对应的截图图片,使用机器学习框架对各个分类对应的截图图片进行模型训练直至训练出的模型的检测精度大于一预设值;

s1、使用机器学习框架训练完成的模型检测待测试产品的当前界面,确定出当前界面的所有可交互控件,并将所述当前界面的所有可交互控件圈选出来;

其中,所述将所述当前界面的所有可交互控件圈选出来包括:

通过机器视觉库将由所述模型检测出的待测试产品的当前界面的所有可交互控件圈选出来,并显示所有可交互控件的控件信息,所述控件信息包括控件识别名称;

s2、接收通过语音描述的针对一可交互控件的测试用例,将所述语音转化为文字,并按照预设格式将所述文字转换为数据记录;

其中,所述语音包括所述控件识别名称;

s3、根据所述数据记录实时调用所述可交互控件对应的操作代码对所述可交互控件进行测试。

实施例二

本实施例与实施例一的不同在于:所述步骤s3中对所述可交互控件进行测试的同时对其进行录制,测试完成后生成对应所述测试用例的录制文件,并对所述录制文件进行存储;

所述步骤s3之后还包括步骤:

s4、接收选取的录制完成的测试用例,根据所述选取的录制完成的测试用例的数据记录实时测试待测试产品的当前界面中与所述数据记录对应的可交互控件;

通过在测试过程中保存的数据记录,不仅可以应用于软件测试,在后续的软件应用中,如果需要执行常用的重复操作,则可保存为常用操作记录,在需要时执行回放。

实施例三

请参照图2,一种基于机器学习的自动化测试终端1,包括存储器2、处理器3以及存储在所述存储器2上并可在所述处理器3上运行的计算机程序,所述处理器3执行所述计算机程序时实现实施例一中的各个步骤。

实施例四

请参照图2,一种基于机器学习的自动化测试终端1,包括存储器2、处理器3以及存储在所述存储器2上并可在所述处理器3上运行的计算机程序,所述处理器3执行所述计算机程序时实现实施例二中的各个步骤。

实施例五

将上述基于机器学习的自动化测试方法应用于具体的场景:

s01、对待测试产品的所有界面的可交互控件进行分类,分别编写与所述分类后的可交互控件对应的操作代码,所述可交互控件可作用于不同的平台,比如电脑端、手机端等,所述可交互控件类别包括文本框、按钮、复选框等,比如若可交互控件类型为文本框类型的控件,则它的操作代码逻辑为:鼠标点击文本框坐标,鼠标的光标将被转移到该文本框控件中,执行文字输入;又比如若可交互控件类型为按键,则编写封装鼠标单击的操作代码;

s02、根据所述分类,对所述待测试产品的所有界面中的可交互控件进行截图,分别生成各个分类对应的截图图片,使用机器学习框架对各个分类对应的截图图片进行模型训练直至训练出的模型的检测精度大于一预设值;

具体的,可以将待测试产品各个界面中的可交互控件进行分类,比如图3所示的产品登录界面,该界面可分类为按钮类、文本框类以及复选框类;

对待测试产品的各个界面分别截图,使用通用的机器学习数据集标注工具,比如精灵标注助手将各个界面上的控件框选出来,打上对应的标签,标签为控件的分类,如“文本框”、“按钮”等分类,通过上述操作可获得标签文件;

使用机器学习框架,比如tensorflow将产品截图和标签文件进行约10万次的目标检测的模型训练,模型的精确值大于0.99,丢失值小于0.01时模型训练完成,训练出来的模型能够识别到待测试产品界面上所有的可交互控件;

s03、编写根据训练好的模型识别出待测试产品界面上的可交互控件的脚本代码,可以使用opencv机器库结合训练完成的模型,将通过所述模型识别到的可交互控件框选出来,并存储对应的可交互控件的控件信息,所述控件信息包括控件编号名称、控件识别名称、控件类型以及控件坐标信息,并可以在待测试产品界面上对部分控件信息进行显示,如图4所示,其中,控件识别名称是将线框圈选出来的控件经过ocr文字识别,将图片转化得到的文字作为该控件的识别名称,如图4所示,“账户文本框”经过ocr文字识别后它的控件识别名称就是“请输入账号”,类型为“文本框”类型,控件坐标位置是指通过opencv视觉库返回的控件被线框圈选出来的中心点位置的坐标,通过编写能够将可交互控件进行ocr文字识别的代码,即能够使用文字定位到具体的控件;

s04、在搭建的测试框架中接入语音识别开发工具包(比如百度语音识别开发工具包或科大讯飞语音识别开发工具包),用来接收用户语音输入,能够将语音转化为文字,用户通过话筒输入的语音将被语音识别工具包转化为文字;

s05、编写根据文字生成数据记录的脚本代码,数据记录类似有格式的数据库表,直接记录在文本文件中,所述脚本代码的代码逻辑是:将文字描述中的控件编码名称、控件识别名称、控件类型以及控件坐标位置和已封装好的对应的可交互控件的操作代码进行关联,生成可被测试框架执行的有格式的数据记录,如一条数据记录为:“文本框、请输入账号、键入、234695”;

s06、编写根据数据记录执行操作回放的脚本代码,比如能够将数据记录中其中一条记录“文本框、请输入账号、键入、234695”做如下执行:根据记录的当前界面的控件信息获得控件中是文本框类型,且控件识别名称为“请输入账号”的控件坐标位置,程序控制鼠标自动单击在该坐标位置上,程序控制键盘键入“234695”;

将上述步骤s01-s06所述的脚本代码、操作代码、训练完成的模型以及语音识别开发工具包进行整合形成一自动化测试框架;

在自动化测试框架搭建好之后,进行自动化测试时,一般分为录制、回放,具体操作如下:

测试工程师打开待测试的产品界面,打开搭建好的测试框架制作的测试工具,如图5所示,进行测试时:

测试工具使用机器学习框架训练完成的模型检测待测试产品的当前界面,确定出当前界面的所有可交互控件,并将所述当前界面的所有可交互控件圈选出来;

其中,所述将所述当前界面的所有可交互控件圈选出来包括:

通过机器视觉库将由所述模型检测出的待测试产品的当前界面的所有可交互控件圈选出来,并显示所有可交互控件的控件信息,所述控件信息包括控件识别名称;

测试工程师点击“创建测试用例”按钮,并在弹出的文本框内填入测试用例名称后开启语音识别功能,用语言描述具体的测试操作步骤,如测试工程师在某即时聊天工具的登陆界面通过语音描述的测试用例具体操作描述为“在请输入账号文本框键入234695;在请输入密码文本框键入123456;单击登陆按钮”

测试工具接收通过语音描述的针对一可交互控件的测试用例,将所述语音转化为文字,并按照预设格式将所述文字转换为数据记录;

其中,所述语音包括所述控件识别名称;

具体的,通过语音识别开发工具将测试工程师输入的语音转换为文字,并按照预设的格式转化为数据记录,其中,预设的格式可以根据实际情况需要进行设定,比如将“在请输入账号文本框键入234695”转化为“文本框、请输入账号、键入、234695”,将“在请输入密码文本框键入123456”转化为“文本框、请输入密码、键入、123456”,将“单击登陆按钮”转化为“按钮、登录、单击”;

s3、根据所述数据记录实时调用所述可交互控件对应的操作代码对所述可交互控件进行测试;

根据所述数据记录将实现如下逻辑:将“文本框、请输入账号、键入、234695”转化为“在当前页面所有‘文本框类型’的控件中找到控件识别名称为‘请输入账号’的控件所在屏幕坐标,在此位置执行键入文字‘234695’”,并实时执行上述操作;将“文本框、请输入密码、键入、123456”转化为“”在当前页面所有‘文本框类型’的控件中找到控件识别名称为‘请输入密码’的控件所在屏幕坐标,在此位置执行键入文字‘123456’,并实时执行上述操作;将“按钮、登录、单击”转化为“找到控件类型为‘按钮’,并且控件识别名称为‘登陆’的按钮,执行鼠标在此屏幕坐标点击的行为”,并实时执行上述操作;

其中,对所述可交互控件进行测试的同时对其进行录制,测试完成后生成对应所述测试用例的录制文件,并对所述录制文件进行存储,如此测试工程师在录制自动化测试脚本时不用编写测试代码,能够在同一时间完成测试用例,并实时验证测试脚本的执行情况;

回放环节的具体操作为,测试工程师打开待测试产品界面,打开使用所搭建的测试框架制作的测试工具,选择执行要回复的测试用例,点击回放按钮:

s4、测试工具接收选取的录制完成的测试用例,根据所述选取的录制完成的测试用例的数据记录实时测试待测试产品的当前界面中与所述数据记录对应的可交互控件;

通过在测试过程中保存的数据记录,不仅可以应用于软件测试,在后续的软件应用中,如果需要执行常用的重复操作,则可保存为常用操作记录,在需要时执行回放。

综上所述,本发明提供的一种基于机器学习的自动化测试方法及终端,通过模型检测出待测试产品当前界面的可交互控件,并将可交互控件进行圈选,将圈选的可交互控件通过语音识别生成测试用例,不用编写测试代码,能够通过语音描述操作过程,生成对应的数据记录,实时对可交互控件进行测试,极大地节省了编写界面测试自动化脚本的时间,提高了测试效率,并且在进行自动化测试的同时,对所述测试进行同步录制,对测试用例进行同步存储,方便后续的调用回放,通过对已测试过的测试用例进行存储,可以对存储的录制完成的测试用例进行调用回放,所述测试用例对应的数据记录可以直接应用于待测试的可交互控件,进一步节省了编写界面测试自动化脚本的时间。

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

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