CN108681508A - 一种基于视觉识别的测试方法及终端 - Google Patents
一种基于视觉识别的测试方法及终端 Download PDFInfo
- Publication number
- CN108681508A CN108681508A CN201810462729.9A CN201810462729A CN108681508A CN 108681508 A CN108681508 A CN 108681508A CN 201810462729 A CN201810462729 A CN 201810462729A CN 108681508 A CN108681508 A CN 108681508A
- Authority
- CN
- China
- Prior art keywords
- sectional drawing
- tested
- project
- interface
- code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Image Analysis (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种基于视觉识别的测试方法及终端,根据待测试项目中交互操作方式的类型,编写与所述交互操作方式对应的测试代码,并对所述交互操作方式对应的可交互的界面进行截图,使用机器学习框架对截图图片进行模型训练,生成视觉识别模型,并编写遍历逻辑代码,根据所述测试代码、视觉识别模型和所述遍历逻辑代码对所述待测试项目进行遍历测试,不仅能够实现全面的遍历待测试项目,避免测试的遗漏,而且很容易用在产品更新迭代的复测或者同类型的产品的测试中,不需要重新编写测试代码,能够实现高效的软件测试。
Description
技术领域
本发明涉及软件测试领域,尤其涉及一种基于视觉识别的测试方法及终端。
背景技术
现有的软件测试方法常用的是冒烟测试,即通过人工黑盒测试方法或编写自动化测试脚本实现软件或网站的界面和功能遍历测试。但是,现有的软件测试方法存在如下不足:
第一,测试用例覆盖度不够全面,在遍历软件或者网站所有界面和功能时,存在遗漏的可能;
第二,当产品界面或功能发生更新迭代时,将造成界面和功能发生变化,需要新增和修改代码,工作量大,容易产生新的错误;
第三,在搭建完成代码工程后,很难用于其他同类型产品的冒烟测试中,需要重新进行测试代码的编写和搭建,增加人工成本。
发明内容
本发明所要解决的技术问题是:提供一种基于视觉识别的测试方法及终端,能够高效地实现软件测试。
为了解决上述技术问题,本发明采用的一种技术方案为:
一种基于视觉识别的测试方法,包括步骤:
S1、将一待测试项目按交互操作方式进行分类,分别编写与所述分类后的交互操作方式对应的测试代码;
S2、根据所述分类,对所述待测试项目的界面中可进行交互操作的位置进行截图,分别生成各个分类对应的截图图片,使用包含有视觉识别的机器学习框架对各个分类对应的截图图片进行模型训练,生成与所述待测试项目对应的视觉识别模型;
S3、编写与所述待测试项目对应的遍历逻辑代码,将所述测试代码和所述视觉识别模型通过遍历逻辑代码整合成与所述待测试项目对应的代码工程或可执行文件,使用所述代码工程或可执行文件对所述待测试项目进行测试。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种基于视觉识别的测试终端,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
S1、将一待测试项目按交互操作方式进行分类,分别编写与所述分类后的交互操作方式对应的测试代码;
S2、根据所述分类,对所述待测试项目的界面中可进行交互操作的位置进行截图,分别生成各个分类对应的截图图片,使用包含有视觉识别的机器学习框架对各个分类对应的截图图片进行模型训练,生成与所述待测试项目对应的视觉识别模型;
S3、编写与所述待测试项目对应的遍历逻辑代码,将所述测试代码和所述视觉识别模型通过遍历逻辑代码整合成与所述待测试项目对应的代码工程或可执行文件,使用所述代码工程或可执行文件对所述待测试项目进行测试。
本发明的有益效果在于:根据待测试项目中交互操作方式的类型,编写与所述交互操作方式对应的测试代码,并对所述交互操作方式对应的可交互的界面进行截图,使用机器学习框架对截图图片进行模型训练,生成视觉识别模型,并编写遍历逻辑代码,根据所述测试代码、视觉识别模型和所述遍历逻辑代码对所述待测试项目进行遍历测试,不仅能够实现全面的遍历待测试项目,避免测试的遗漏,而且由于是基于交互操作方式的类型来编写对应的测试代码,因此如果交互操作方式不变,只是界面进行更新迭代,则并不需要新增或修改任何测试代码,只需要对更新迭代后的界面重新进行模型训练即可,或者另一类测试产品是属于同类型的,各个交互操作方式相同,则只需要针对同类型的待测试项目的界面进行模型训练即可,方便快捷,不需要重新编写测试代码,能够实现高效的软件测试。
附图说明
图1为本发明实施例的一种基于视觉识别的测试方法的流程图;
图2为本发明实施例的一种基于视觉识别的测试终端的结构示意图;
图3为本发明实施例的根据交互操作方式进行分类的示意图;
图4为本发明实施例的根据交互操作方式进行代码编写的示意图;
图5为本发明实施例的根据交互操作方式进行截图的示意图;
图6为本发明实施例的根据界面跳转的路径生成的树状图;
标号说明:
1、一种基于视觉识别的测试终端;2、存储器;3、处理器。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
本发明最关键的构思在于:根据待测试项目中交互操作方式的类型,编写与所述交互操作方式对应的测试代码,并对所述交互操作方式对应的可交互的界面进行截图,使用机器学习框架对截图图片进行模型训练,生成视觉识别模型。
请参照图1,一种基于视觉识别的测试方法,包括步骤:
S1、将一待测试项目按交互操作方式进行分类,分别编写与所述分类后的交互操作方式对应的测试代码;
S2、根据所述分类,对所述待测试项目的界面中可进行交互操作的位置进行截图,分别生成各个分类对应的截图图片,使用包含有视觉识别的机器学习框架对各个分类对应的截图图片进行模型训练,生成与所述待测试项目对应的视觉识别模型;
S3、编写与所述待测试项目对应的遍历逻辑代码,将所述测试代码和所述视觉识别模型通过遍历逻辑代码整合成与所述待测试项目对应的代码工程或可执行文件,使用所述代码工程或可执行文件对所述待测试项目进行测试。
从上述描述可知,本发明的有益效果在于:根据待测试项目中交互操作方式的类型,编写与所述交互操作方式对应的测试代码,并对所述交互操作方式对应的可交互的界面进行截图,使用机器学习框架对截图图片进行模型训练,生成视觉识别模型,并编写遍历逻辑代码,根据所述测试代码、视觉识别模型和所述遍历逻辑代码对所述待测试项目进行遍历测试,不仅能够实现全面的遍历待测试项目,避免测试的遗漏,而且由于是基于交互操作方式的类型来编写对应的测试代码,因此如果交互操作方式不变,只是界面进行更新迭代,则并不需要新增或修改任何测试代码,只需要对更新迭代后的界面重新进行模型训练即可,或者另一类测试产品是属于同类型的,各个交互操作方式相同,则只需要针对同类型的待测试项目的界面进行模型训练即可,方便快捷,不需要重新编写测试代码,能够实现高效的软件测试。
进一步的,所述步骤S2中所述根据所述分类,对所述待测试项目的界面中可进行交互操作的位置进行截图,分别生成各个分类对应的截图图片包括:
根据所述分类,为每一分类分别创建对应的文件夹,对所述待测试项目的界面中同一种类型的可进行交互操作的位置进行截图,分别生成各个分类对应的截图图片,并将所述截图图片存储至对应的文件夹。
由上述描述可知,为每一个分类分别建立对应的文件夹,存储对应类别的截图图片,实现对截图图片的分门别类,方便后续的模型训练,提高模型训练的效率。
进一步的,所述步骤S2与S3之间还包括步骤:
编写所述视觉识别模型识别到与截图图片对应的图片后能够执行对应的交互操作的操作代码;
所述步骤S3中所述将所述测试代码和所述视觉识别模型通过遍历逻辑代码整合成与所述待测试项目对应的代码工程或可执行文件包括:
将所述测试代码、所述视觉识别模型和所述操作代码通过遍历逻辑代码整合成与所述待测试项目对应的代码工程或可执行文件。
由上述描述可知,通过上述操作代码的编写,能够实现测试的智能化、自动化,实现全自动地测试。
进一步的,所述步骤S3中所述遍历逻辑代码实现的步骤为:
S31、对所述待测试项目所在的当前界面进行截图,生成第一界面截图;
S32、使用所述视觉识别模型识别所述当前界面存在的所有可交互控件,生成与所述当前界面对应的控件信息表,将所述控件信息表存储至数据文件;
S33、根据所述控件信息表,按顺序执行所述当前界面未被执行的可交互控件的操作,每执行完一个可交互控件的操作,在对应的控件信息表中记录对应的可交互控件已被执行,将所述可交互控件已被执行同步记录至操作日志,并对当前界面进行截图,生成第二界面截图;
S34、对所述第二界面截图和所述第一界面截图进行相似度比对,判断所述相似度是否大于或等于预设值,若否,判断界面进行了跳转,将界面跳转记录至操作日志,并返回步骤S31,否则,执行步骤S35;
S35、根据所述控件信息表,判断当前界面的可交互控件是否均执行完,若否,返回步骤S33,否则,执行步骤S36;
S36、判断当前界面是否为所述待测试项目的首页,若是,则测试完成,否则,根据所述操作日志,从当前界面跳转至当前界面的上一级界面,并返回步骤S33。
由上述描述可知,通过上述的遍历逻辑代码实现的逻辑保证了能够实现遍历待测试项目所有界面和功能,不存在遗漏的可能。
进一步的,所述步骤S2之后还包括步骤:
若待测试项目的界面发生了变化,则根据所述变化同步更新所述步骤S2中各个分类对应的截图图片,使用包含有视觉识别的机器学习框架对更新后的各个分类对应的截图图片重新进行模型训练,生成与所述待测试项目对应的视觉识别模型。
由上述描述可知,若待测试项目的界面发送了变化,只需要根据所述变化对各个分类对应的截图图片进行更新,然后基于更新后的截图图片重新进行模型训练,能很容易地用在产品更新迭代的复测,极大地降低人工成本,提高测试效率。
请参照图2,一种基于视觉识别的测试终端,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
S1、将一待测试项目按交互操作方式进行分类,分别编写与所述分类后的交互操作方式对应的测试代码;
S2、根据所述分类,对所述待测试项目的界面中可进行交互操作的位置进行截图,分别生成各个分类对应的截图图片,使用包含有视觉识别的机器学习框架对各个分类对应的截图图片进行模型训练,生成与所述待测试项目对应的视觉识别模型;
S3、编写与所述待测试项目对应的遍历逻辑代码,将所述测试代码和所述视觉识别模型通过遍历逻辑代码整合成与所述待测试项目对应的代码工程或可执行文件,使用所述代码工程或可执行文件对所述待测试项目进行测试。
从上述描述可知,本发明的有益效果在于:根据待测试项目中交互操作方式的类型,编写与所述交互操作方式对应的测试代码,并对所述交互操作方式对应的可交互的界面进行截图,使用机器学习框架对截图图片进行模型训练,生成视觉识别模型,并编写遍历逻辑代码,根据所述测试代码、视觉识别模型和所述遍历逻辑代码对所述待测试项目进行遍历测试,不仅能够实现全面的遍历待测试项目,避免测试的遗漏,而且由于是基于交互操作方式的类型来编写对应的测试代码,因此如果交互操作方式不变,只是界面进行更新迭代,则并不需要新增或修改任何测试代码,只需要对更新迭代后的界面重新进行模型训练即可,或者另一类测试产品是属于同类型的,各个交互操作方式相同,则只需要针对同类型的待测试项目的界面进行模型训练即可,方便快捷,不需要重新编写测试代码,能够实现高效的软件测试。
进一步的,所述步骤S2中所述根据所述分类,对所述待测试项目的界面中可进行交互操作的位置进行截图,分别生成各个分类对应的截图图片包括:
根据所述分类,为每一分类分别创建对应的文件夹,对所述待测试项目的界面中同一种类型的可进行交互操作的位置进行截图,分别生成各个分类对应的截图图片,并将所述截图图片存储至对应的文件夹。
由上述描述可知,为每一个分类分别建立对应的文件夹,存储对应类别的截图图片,实现对截图图片的分门别类,方便后续的模型训练,提高模型训练的效率。
进一步的,所述步骤S2与S3之间还包括步骤:
编写所述视觉识别模型识别到与截图图片对应的图片后能够执行对应的交互操作的操作代码;
所述步骤S3中所述将所述测试代码和所述视觉识别模型通过遍历逻辑代码整合成与所述待测试项目对应的代码工程或可执行文件包括:
将所述测试代码、所述视觉识别模型和所述操作代码通过遍历逻辑代码整合成与所述待测试项目对应的代码工程或可执行文件。
由上述描述可知,通过上述操作代码的编写,能够实现测试的智能化、自动化,实现全自动地测试。
进一步的,所述步骤S3中所述遍历逻辑代码实现的步骤为:
S31、对所述待测试项目所在的当前界面进行截图,生成第一界面截图;
S32、使用所述视觉识别模型识别所述当前界面存在的所有可交互控件,生成与所述当前界面对应的控件信息表,将所述控件信息表存储至数据文件;
S33、根据所述控件信息表,按顺序执行所述当前界面未被执行的可交互控件的操作,每执行完一个可交互控件的操作,在对应的控件信息表中记录对应的可交互控件已被执行,将所述可交互控件已被执行同步记录至操作日志,并对当前界面进行截图,生成第二界面截图;
S34、对所述第二界面截图和所述第一界面截图进行相似度比对,判断所述相似度是否大于或等于预设值,若否,判断界面进行了跳转,将界面跳转记录至操作日志,并返回步骤S31,否则,执行步骤S35;
S35、根据所述控件信息表,判断当前界面的可交互控件是否均执行完,若否,返回步骤S33,否则,执行步骤S36;
S36、判断当前界面是否为所述待测试项目的首页,若是,则测试完成,否则,根据所述操作日志,从当前界面跳转至当前界面的上一级界面,并返回步骤S33。
由上述描述可知,通过上述的遍历逻辑代码实现的逻辑保证了能够实现遍历待测试项目所有界面和功能,不存在遗漏的可能。
进一步的,所述步骤S2之后还包括步骤:
若待测试项目的界面发生了变化,则根据所述变化同步更新所述步骤S2中各个分类对应的截图图片,使用包含有视觉识别的机器学习框架对更新后的各个分类对应的截图图片重新进行模型训练,生成与所述待测试项目对应的视觉识别模型。
由上述描述可知,若待测试项目的界面发送了变化,只需要根据所述变化对各个分类对应的截图图片进行更新,然后基于更新后的截图图片重新进行模型训练,能很容易地用在产品更新迭代的复测,极大地降低人工成本,提高测试效率。
实施例一
请参照图1,一种基于视觉识别的测试方法,包括步骤:
S1、将一待测试项目按交互操作方式进行分类,分别编写与所述分类后的交互操作方式对应的测试代码;
S2、根据所述分类,对所述待测试项目的界面中可进行交互操作的位置进行截图,分别生成各个分类对应的截图图片,使用包含有视觉识别的机器学习框架对各个分类对应的截图图片进行模型训练,生成与所述待测试项目对应的视觉识别模型;
其中,所述根据所述分类,对所述待测试项目的界面中可进行交互操作的位置进行截图,分别生成各个分类对应的截图图片包括:
根据所述分类,为每一分类分别创建对应的文件夹,对所述待测试项目的界面中同一种类型的可进行交互操作的位置进行截图,分别生成各个分类对应的截图图片,并将所述截图图片存储至对应的文件夹;
若待测试项目的界面发生了变化,则根据所述变化同步更新所述步骤S2中各个分类对应的截图图片,使用包含有视觉识别的机器学习框架对更新后的各个分类对应的截图图片重新进行模型训练,生成与所述待测试项目对应的视觉识别模型;
S3、编写与所述待测试项目对应的遍历逻辑代码,将所述测试代码和所述视觉识别模型通过遍历逻辑代码整合成与所述待测试项目对应的代码工程或可执行文件,使用所述代码工程或可执行文件对所述待测试项目进行测试;
其中,所述遍历逻辑代码实现的步骤为:
S31、对所述待测试项目所在的当前界面进行截图,生成第一界面截图;
S32、使用所述视觉识别模型识别所述当前界面存在的所有可交互控件,生成与所述当前界面对应的控件信息表,将所述控件信息表存储至数据文件;
S33、根据所述控件信息表,按顺序执行所述当前界面未被执行的可交互控件的操作,每执行完一个可交互控件的操作,在对应的控件信息表中记录对应的可交互控件已被执行,将所述可交互控件已被执行同步记录至操作日志,并对当前界面进行截图,生成第二界面截图;
S34、对所述第二界面截图和所述第一界面截图进行相似度比对,判断所述相似度是否大于或等于预设值,若否,判断界面进行了跳转,将界面跳转记录至操作日志,并返回步骤S31,否则,执行步骤S35;
S35、根据所述控件信息表,判断当前界面的可交互控件是否均执行完,若否,返回步骤S33,否则,执行步骤S36;
S36、判断当前界面是否为所述待测试项目的首页,若是,则测试完成,否则,根据所述操作日志,从当前界面跳转至当前界面的上一级界面,并返回步骤S33。
实施例二
本实施例与实施例一的不同在于,所述步骤S2与S3之间还包括步骤:
编写所述视觉识别模型识别到与截图图片对应的图片后能够执行对应的交互操作的操作代码;
所述步骤S3中所述将所述测试代码和所述视觉识别模型通过遍历逻辑代码整合成与所述待测试项目对应的代码工程或可执行文件包括:
将所述测试代码、所述视觉识别模型和所述操作代码通过遍历逻辑代码整合成与所述待测试项目对应的代码工程或可执行文件。
实施例三
请参照图2,一种基于视觉识别的测试终端1,包括存储器2、处理器3以及存储在所述存储器2上并可在所述处理器3上运行的计算机程序,所述处理器3执行所述计算机程序时实现实施例一中的各个步骤。
实施例四
请参照图2,一种基于视觉识别的测试终端1,包括存储器2、处理器3以及存储在所述存储器2上并可在所述处理器3上运行的计算机程序,所述处理器3执行所述计算机程序时实现实施例二中的各个步骤。
实施例五
本实施例将上述的基于视觉识别的测试方法应用于具体的场景中:
S1、将一待测试项目按交互操作方式进行分类,分别编写与所述分类后的交互操作方式对应的测试代码;
其中,所述待测试项目可以是软件或者网站,分类参考如下:
电脑端的软件测试项目和电脑端通过浏览器访问的网站项测试项目按人为交互操作方式一般可分为鼠标左键点击、鼠标左键双击、鼠标右键单击、鼠标左键按住移动、鼠标悬停、键盘输入、账号登陆操作、菜单操作、导航操作、查询、购买、账号登出操作等,如图3所示;
移动端的应用测试项目按人为交互操作方式一般可分为点击、长按、滑动、功能键、主页键、返回键、电源键、音量加号键、音量减号键、账号登陆操作、菜单操作、导航操作、查询、购买、账号登出等;
参考上述分类,编写被测试项目中对应的测试代码,比如,使用电脑上的浏览器遍历测试一个网站:“鼠标左键点击”编写能够触发鼠标在浏览器特定坐标位置触发鼠标左键单击,具体的,编写传入屏幕上坐标参数,则触发屏幕该坐标参数对应的点发生鼠标左键点击行为的代码;又如“账号登陆操作”,则编写针对当前测试产品登陆界面的界面自动化测试脚本,该脚本实现产品的登陆功能,如图4所示,其中,“账号登陆操作”是聚合的逻辑代码,即通过视觉识别发现某界面有登陆按钮,则判定为登录页,实现在界面输入特定的账号和密码后点击登陆按钮的代码逻辑;类似的聚合逻辑代码还包括如:“菜单操作、导航操作、查询、购买、账号登出”等;
S2、根据所述分类,对所述待测试项目的界面中可进行交互操作的位置进行截图,分别生成各个分类对应的截图图片,使用包含有视觉识别的机器学习框架对各个分类对应的截图图片进行模型训练,生成与所述待测试项目对应的视觉识别模型;
其中,所述根据所述分类,对所述待测试项目的界面中可进行交互操作的位置进行截图,分别生成各个分类对应的截图图片包括:
根据所述分类,为每一分类分别创建对应的文件夹,对所述待测试项目的界面中同一种类型的可进行交互操作的位置进行截图,分别生成各个分类对应的截图图片,并将所述截图图片存储至对应的文件夹;
例如,根据“左键单击、鼠标右键单击、鼠标左键按住移动、鼠标悬停、键盘输入、账号登陆操作、菜单操作、导航操作、查询、购买、账号登出”等不同分类的操作分别建立文件夹,文件夹名为操作名,再针对该网站所有界面的所有不同操作分别截图,将截图保存到对应的文件夹中,如网站中所有的按钮截图、超链接截图都可以放到“鼠标左键点击”这个文件夹中,如图5所示,所有的文本框截图都可以放到“键盘输入”这个文件夹中,登陆按钮的截图可以放到“账号登陆操作”这个文件夹中,查询按钮的截图可以放到“查询”这个文件夹中,其他截图类似,分别放入对应的人为交互操作的文件夹中;
将上述截图使用通用的机器学习识别框架进行模型训练,训练出视觉识别模型,所述机器学习识别框架可以是TensorFlow,PyTorch等;
编写所述视觉识别模型识别到与截图图片对应的图片后能够执行对应的交互操作的操作代码;
若待测试项目的界面发生了变化,则根据所述变化同步更新所述步骤S2中各个分类对应的截图图片,使用包含有视觉识别的机器学习框架对更新后的各个分类对应的截图图片重新进行模型训练,生成与所述待测试项目对应的视觉识别模型,比如新增了页面,则只需要按照人为交互操作分类对新增的界面可进行交互的位置进行截图,并添加到对应的文件夹中,若减少了页面,则对减少的页面涉及到的截图从相应的文件夹中删除,若对页面进行了修改,则对修改的页面中可进行交互的位置进行截图,并对原始页面的相关截图进行替换,这样将重新进行模型训练生成的视觉识别模型替换原来的视觉识别模型之后,无需再次修改测试代码即可再次进行网站的遍历测试;
若测试项目的功能发生变化时,比如有新的人机交互操作,则需要针对新的人机交互操作,编写对应的测试代码,并针对新的人机交互操作,新建一个文件夹,对待测试项目的界面中涉及到的位置进行截图,将截图图片存储至所述新的文件夹,对截图图片进行更新,使用包含有视觉识别的机器学习框架对更新后的各个分类对应的截图图片重新进行模型训练,生成与所述待测试项目对应的视觉识别模型;
S3、编写与所述待测试项目对应的遍历逻辑代码,将所述测试代码、所述视觉识别模型和所述操作代码通过遍历逻辑代码整合成与所述待测试项目对应的代码工程或可执行文件,使用所述代码工程或可执行文件对所述待测试项目进行测试;
其中,所述遍历逻辑代码能够记录界面、视觉识别的图片、视觉识别的图片对应的人为交互操作,其能够保障所有界面的所有控件都能够被遍历执行,所述遍历逻辑代码实现的步骤为:
S31、对所述待测试项目所在的当前界面进行截图,生成第一界面截图;
S32、使用所述视觉识别模型识别所述当前界面存在的所有可交互控件,生成与所述当前界面对应的控件信息表,将所述控件信息表存储至数据文件;
具体的,所述控件信息表包括控件所属界面编号、控件编号、控件对应的界面截图路径、控件的坐标位置、控件的类型以及控件是否已被执行,此外,还生成界面信息表,所述界面信息表也存储至所述数据文件,所述界面信息包括界面编号、界面截图路径、界面可交互控件数量;
S33、根据所述控件信息表中的控件编号,按顺序执行所述当前界面未被执行的可交互控件的操作,每执行完一个可交互控件的操作,在对应的控件信息表中记录对应的可交互控件已被执行,将所述可交互控件已被执行同步记录至操作日志,并对当前界面进行截图,生成第二界面截图;
S34、对所述第二界面截图和所述第一界面截图进行相似度比对,判断所述相似度是否大于或等于预设值,比如,可以设置所述预设值为80%,若否,判断界面进行了跳转,将界面跳转记录至操作日志,并返回步骤S31,否则,执行步骤S35,其中,记录界面跳转的路径可以生成树状图,如图6所示,;
S35、根据所述控件信息表,判断当前界面的可交互控件是否均执行完,若否,返回步骤S33,否则,执行步骤S36;
S36、判断当前界面是否为所述待测试项目的首页,若是,则测试完成,否则,根据所述操作日志,从当前界面跳转至当前界面的上一级界面,并返回步骤S33,其中,所述操作日志中记录了界面跳转的过程,从记录中可以得到当前界面的前置界面跳转过程和前置界面的操作历史,具体的,从当前界面跳转至当前界面的上一级界面可以通过代码控制回到产品首页,根据当前界面跳转的操作日志,用代码重新复现界面跳转路径跳转到当前界面的上一级界面;
测试完成后,通过所述操作日志将测试界面名或路径和具体操作转化为测试用例图表,完成单次测试。
综上所述,本发明提供的一种基于视觉识别的测试方法及终端,结合机器学习的视觉识别,对产品进行界面和功能的遍历测试,能够极大地减少人工编写地代码量,节约人力成本,随着产品地更新迭代,基本不需要重新编写测试代码;降低测试人员的技术难度,随着产品的更新迭代,由于不需要重新编写测试代码,只需要对产品界面变化的位置按照人为交互操作方式的不同进行截图,提交机器学习视觉识别的模型训练;提高测试效率,该测试方法运用在产品提交黑盒测试人员测试前,可以减少产品80%的错误或异常情况;节省测试成本,不仅在同一产品的冒烟测试中能够重复使用,并且可套用在其他同类型的产品测试中,修改现成代码的成本极低;并且有自动生成冒烟测试的完整记录,所有的界面或路径跳转以及在界面上进行了何种操作也会被记录下来生成测试用例图表,可作为排查错误和异常的测试依据,另外还能根据产品每个版本自动生成的完整的冒烟测试用例图表进行版本间对比,反推验证产品各个版本间的界面、功能变化情况。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种基于视觉识别的测试方法,其特征在于,包括步骤:
S1、将一待测试项目按交互操作方式进行分类,分别编写与所述分类后的交互操作方式对应的测试代码;
S2、根据所述分类,对所述待测试项目的界面中可进行交互操作的位置进行截图,分别生成各个分类对应的截图图片,使用包含有视觉识别的机器学习框架对各个分类对应的截图图片进行模型训练,生成与所述待测试项目对应的视觉识别模型;
S3、编写与所述待测试项目对应的遍历逻辑代码,将所述测试代码和所述视觉识别模型通过遍历逻辑代码整合成与所述待测试项目对应的代码工程或可执行文件,使用所述代码工程或可执行文件对所述待测试项目进行测试。
2.根据权利要求1所述的一种基于视觉识别的测试方法,其特征在于,所述步骤S2中所述根据所述分类,对所述待测试项目的界面中可进行交互操作的位置进行截图,分别生成各个分类对应的截图图片包括:
根据所述分类,为每一分类分别创建对应的文件夹,对所述待测试项目的界面中同一种类型的可进行交互操作的位置进行截图,分别生成各个分类对应的截图图片,并将所述截图图片存储至对应的文件夹。
3.根据权利要求1所述的一种基于视觉识别的测试方法,其特征在于,所述步骤S2与S3之间还包括步骤:
编写所述视觉识别模型识别到与截图图片对应的图片后能够执行对应的交互操作的操作代码;
所述步骤S3中所述将所述测试代码和所述视觉识别模型通过遍历逻辑代码整合成与所述待测试项目对应的代码工程或可执行文件包括:
将所述测试代码、所述视觉识别模型和所述操作代码通过遍历逻辑代码整合成与所述待测试项目对应的代码工程或可执行文件。
4.根据权利要求1所述的一种基于视觉识别的测试方法,其特征在于,所述步骤S3中所述遍历逻辑代码实现的步骤为:
S31、对所述待测试项目所在的当前界面进行截图,生成第一界面截图;
S32、使用所述视觉识别模型识别所述当前界面存在的所有可交互控件,生成与所述当前界面对应的控件信息表,将所述控件信息表存储至数据文件;
S33、根据所述控件信息表,按顺序执行所述当前界面未被执行的可交互控件的操作,每执行完一个可交互控件的操作,在对应的控件信息表中记录对应的可交互控件已被执行,将所述可交互控件已被执行同步记录至操作日志,并对当前界面进行截图,生成第二界面截图;
S34、对所述第二界面截图和所述第一界面截图进行相似度比对,判断所述相似度是否大于或等于预设值,若否,判断界面进行了跳转,将界面跳转记录至操作日志,并返回步骤S31,否则,执行步骤S35;
S35、根据所述控件信息表,判断当前界面的可交互控件是否均执行完,若否,返回步骤S33,否则,执行步骤S36;
S36、判断当前界面是否为所述待测试项目的首页,若是,则测试完成,否则,根据所述操作日志,从当前界面跳转至当前界面的上一级界面,并返回步骤S33。
5.根据权利要求1所述的一种基于视觉识别的测试方法,其特征在于,所述步骤S2之后还包括步骤:
若待测试项目的界面发生了变化,则根据所述变化同步更新所述步骤S2中各个分类对应的截图图片,使用包含有视觉识别的机器学习框架对更新后的各个分类对应的截图图片重新进行模型训练,生成与所述待测试项目对应的视觉识别模型。
6.一种基于视觉识别的测试终端,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现以下步骤:
S1、将一待测试项目按交互操作方式进行分类,分别编写与所述分类后的交互操作方式对应的测试代码;
S2、根据所述分类,对所述待测试项目的界面中可进行交互操作的位置进行截图,分别生成各个分类对应的截图图片,使用包含有视觉识别的机器学习框架对各个分类对应的截图图片进行模型训练,生成与所述待测试项目对应的视觉识别模型;
S3、编写与所述待测试项目对应的遍历逻辑代码,将所述测试代码和所述视觉识别模型通过遍历逻辑代码整合成与所述待测试项目对应的代码工程或可执行文件,使用所述代码工程或可执行文件对所述待测试项目进行测试。
7.根据权利要求6所述的一种基于视觉识别的测试终端,其特征在于,所述步骤S2中所述根据所述分类,对所述待测试项目的界面中可进行交互操作的位置进行截图,分别生成各个分类对应的截图图片包括:
根据所述分类,为每一分类分别创建对应的文件夹,对所述待测试项目的界面中同一种类型的可进行交互操作的位置进行截图,分别生成各个分类对应的截图图片,并将所述截图图片存储至对应的文件夹。
8.根据权利要求6所述的一种基于视觉识别的测试终端,其特征在于,所述步骤S2与S3之间还包括步骤:
编写所述视觉识别模型识别到与截图图片对应的图片后能够执行对应的交互操作的操作代码;
所述步骤S3中所述将所述测试代码和所述视觉识别模型通过遍历逻辑代码整合成与所述待测试项目对应的代码工程或可执行文件包括:
将所述测试代码、所述视觉识别模型和所述操作代码通过遍历逻辑代码整合成与所述待测试项目对应的代码工程或可执行文件。
9.根据权利要求6所述的一种基于视觉识别的测试终端,其特征在于,所述步骤S3中所述遍历逻辑代码实现的步骤为:
S31、对所述待测试项目所在的当前界面进行截图,生成第一界面截图;
S32、使用所述视觉识别模型识别所述当前界面存在的所有可交互控件,生成与所述当前界面对应的控件信息表,将所述控件信息表存储至数据文件;
S33、根据所述控件信息表,按顺序执行所述当前界面未被执行的可交互控件的操作,每执行完一个可交互控件的操作,在对应的控件信息表中记录对应的可交互控件已被执行,将所述可交互控件已被执行同步记录至操作日志,并对当前界面进行截图,生成第二界面截图;
S34、对所述第二界面截图和所述第一界面截图进行相似度比对,判断所述相似度是否大于或等于预设值,若否,判断界面进行了跳转,将界面跳转记录至操作日志,并返回步骤S31,否则,执行步骤S35;
S35、根据所述控件信息表,判断当前界面的可交互控件是否均执行完,若否,返回步骤S33,否则,执行步骤S36;
S36、判断当前界面是否为所述待测试项目的首页,若是,则测试完成,否则,根据所述操作日志,从当前界面跳转至当前界面的上一级界面,并返回步骤S33。
10.根据权利要求6所述的一种基于视觉识别的测试终端,其特征在于,所述步骤S2之后还包括步骤:
若待测试项目的界面发生了变化,则根据所述变化同步更新所述步骤S2中各个分类对应的截图图片,使用包含有视觉识别的机器学习框架对更新后的各个分类对应的截图图片重新进行模型训练,生成与所述待测试项目对应的视觉识别模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810462729.9A CN108681508B (zh) | 2018-05-15 | 2018-05-15 | 一种基于视觉识别的测试方法及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810462729.9A CN108681508B (zh) | 2018-05-15 | 2018-05-15 | 一种基于视觉识别的测试方法及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108681508A true CN108681508A (zh) | 2018-10-19 |
CN108681508B CN108681508B (zh) | 2022-04-01 |
Family
ID=63805413
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810462729.9A Active CN108681508B (zh) | 2018-05-15 | 2018-05-15 | 一种基于视觉识别的测试方法及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108681508B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109359056A (zh) * | 2018-12-21 | 2019-02-19 | 北京搜狗科技发展有限公司 | 一种应用程序测试方法及装置 |
CN109784369A (zh) * | 2018-12-14 | 2019-05-21 | 深圳壹账通智能科技有限公司 | H5页面测试方法与装置、电子设备、存储介质 |
CN109815156A (zh) * | 2019-02-28 | 2019-05-28 | 北京百度网讯科技有限公司 | 页面中视觉元素的展示测试方法、装置、设备和存储介质 |
CN109871316A (zh) * | 2019-01-10 | 2019-06-11 | 北京云测信息技术有限公司 | 一种控件识别方法和装置 |
CN110716778A (zh) * | 2019-09-10 | 2020-01-21 | 阿里巴巴集团控股有限公司 | 应用兼容性测试方法、装置及系统 |
CN111143188A (zh) * | 2018-11-02 | 2020-05-12 | 中移(杭州)信息技术有限公司 | 一种对应用进行自动化测试的方法及设备 |
CN111694758A (zh) * | 2020-08-04 | 2020-09-22 | 西安闻泰电子科技有限公司 | 测试代码自动生成方法、装置、计算机设备和存储介质 |
CN111767228A (zh) * | 2020-06-30 | 2020-10-13 | 平安国际智慧城市科技股份有限公司 | 基于人工智能的界面测试方法、装置、设备和介质 |
CN111858331A (zh) * | 2020-07-16 | 2020-10-30 | 安徽听见科技有限公司 | 前端控件覆盖度检测方法、装置以及设备 |
CN112988531A (zh) * | 2019-12-18 | 2021-06-18 | 中国移动通信集团浙江有限公司 | 应用软件的易用性评估方法、装置及计算设备 |
CN112988573A (zh) * | 2021-02-08 | 2021-06-18 | 上海依图网络科技有限公司 | 电子设备及其ui自动化测试方法和可读介质 |
CN114168468A (zh) * | 2021-12-07 | 2022-03-11 | 广州掌动智能科技有限公司 | 软件测试系统及其控制方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060184410A1 (en) * | 2003-12-30 | 2006-08-17 | Shankar Ramamurthy | System and method for capture of user actions and use of capture data in business processes |
US20080127103A1 (en) * | 2006-07-27 | 2008-05-29 | International Business Machines Corporation | Dynamic deneration and implementation of globalization verification testing for user interface controls |
CN101655817A (zh) * | 2009-09-24 | 2010-02-24 | 成都市华为赛门铁克科技有限公司 | 图形用户界面测试方法及测试装置 |
CN103336742A (zh) * | 2013-07-18 | 2013-10-02 | 北京航空航天大学 | 一种基于Android的自动化软件黑盒测试系统及方法 |
CN104252410A (zh) * | 2013-06-27 | 2014-12-31 | 阿里巴巴集团控股有限公司 | 一种对页面中的控件进行测试的方法和设备 |
CN104268083A (zh) * | 2014-09-30 | 2015-01-07 | 上海联影医疗科技有限公司 | 软件自动化测试方法和装置 |
CN106326104A (zh) * | 2015-07-08 | 2017-01-11 | 腾讯科技(深圳)有限公司 | 终端控件测试方法及装置 |
CN106502890A (zh) * | 2016-10-18 | 2017-03-15 | 乐视控股(北京)有限公司 | 测试用例生成方法及系统 |
CN107622016A (zh) * | 2017-09-25 | 2018-01-23 | 无线生活(杭州)信息科技有限公司 | 一种页面测试方法及装置 |
CN107832774A (zh) * | 2017-10-09 | 2018-03-23 | 无线生活(杭州)信息科技有限公司 | 一种页面异常检测方法及装置 |
-
2018
- 2018-05-15 CN CN201810462729.9A patent/CN108681508B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060184410A1 (en) * | 2003-12-30 | 2006-08-17 | Shankar Ramamurthy | System and method for capture of user actions and use of capture data in business processes |
US20080127103A1 (en) * | 2006-07-27 | 2008-05-29 | International Business Machines Corporation | Dynamic deneration and implementation of globalization verification testing for user interface controls |
CN101655817A (zh) * | 2009-09-24 | 2010-02-24 | 成都市华为赛门铁克科技有限公司 | 图形用户界面测试方法及测试装置 |
CN104252410A (zh) * | 2013-06-27 | 2014-12-31 | 阿里巴巴集团控股有限公司 | 一种对页面中的控件进行测试的方法和设备 |
CN103336742A (zh) * | 2013-07-18 | 2013-10-02 | 北京航空航天大学 | 一种基于Android的自动化软件黑盒测试系统及方法 |
CN104268083A (zh) * | 2014-09-30 | 2015-01-07 | 上海联影医疗科技有限公司 | 软件自动化测试方法和装置 |
CN106326104A (zh) * | 2015-07-08 | 2017-01-11 | 腾讯科技(深圳)有限公司 | 终端控件测试方法及装置 |
CN106502890A (zh) * | 2016-10-18 | 2017-03-15 | 乐视控股(北京)有限公司 | 测试用例生成方法及系统 |
CN107622016A (zh) * | 2017-09-25 | 2018-01-23 | 无线生活(杭州)信息科技有限公司 | 一种页面测试方法及装置 |
CN107832774A (zh) * | 2017-10-09 | 2018-03-23 | 无线生活(杭州)信息科技有限公司 | 一种页面异常检测方法及装置 |
Non-Patent Citations (1)
Title |
---|
腾讯移动品质中心TMQ: ""【腾讯TMQ】看图测试指南——图像识别在测试中的应用"", 《HTTPS://BLOG.CSDN.NET/TMQ1225/ARTICLE/DETAILS/55211557》 * |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111143188A (zh) * | 2018-11-02 | 2020-05-12 | 中移(杭州)信息技术有限公司 | 一种对应用进行自动化测试的方法及设备 |
CN111143188B (zh) * | 2018-11-02 | 2023-09-22 | 中移(杭州)信息技术有限公司 | 一种对应用进行自动化测试的方法及设备 |
CN109784369A (zh) * | 2018-12-14 | 2019-05-21 | 深圳壹账通智能科技有限公司 | H5页面测试方法与装置、电子设备、存储介质 |
CN109359056A (zh) * | 2018-12-21 | 2019-02-19 | 北京搜狗科技发展有限公司 | 一种应用程序测试方法及装置 |
CN109359056B (zh) * | 2018-12-21 | 2022-11-11 | 北京搜狗科技发展有限公司 | 一种应用程序测试方法及装置 |
CN109871316A (zh) * | 2019-01-10 | 2019-06-11 | 北京云测信息技术有限公司 | 一种控件识别方法和装置 |
CN109815156A (zh) * | 2019-02-28 | 2019-05-28 | 北京百度网讯科技有限公司 | 页面中视觉元素的展示测试方法、装置、设备和存储介质 |
CN110716778A (zh) * | 2019-09-10 | 2020-01-21 | 阿里巴巴集团控股有限公司 | 应用兼容性测试方法、装置及系统 |
CN110716778B (zh) * | 2019-09-10 | 2023-09-26 | 创新先进技术有限公司 | 应用兼容性测试方法、装置及系统 |
CN112988531B (zh) * | 2019-12-18 | 2022-08-12 | 中国移动通信集团浙江有限公司 | 应用软件的易用性评估方法、装置及计算设备 |
CN112988531A (zh) * | 2019-12-18 | 2021-06-18 | 中国移动通信集团浙江有限公司 | 应用软件的易用性评估方法、装置及计算设备 |
CN111767228A (zh) * | 2020-06-30 | 2020-10-13 | 平安国际智慧城市科技股份有限公司 | 基于人工智能的界面测试方法、装置、设备和介质 |
CN111767228B (zh) * | 2020-06-30 | 2024-02-06 | 深圳赛安特技术服务有限公司 | 基于人工智能的界面测试方法、装置、设备和介质 |
CN111858331A (zh) * | 2020-07-16 | 2020-10-30 | 安徽听见科技有限公司 | 前端控件覆盖度检测方法、装置以及设备 |
CN111694758A (zh) * | 2020-08-04 | 2020-09-22 | 西安闻泰电子科技有限公司 | 测试代码自动生成方法、装置、计算机设备和存储介质 |
CN111694758B (zh) * | 2020-08-04 | 2024-01-16 | 西安闻泰电子科技有限公司 | 测试代码自动生成方法、装置、计算机设备和存储介质 |
CN112988573A (zh) * | 2021-02-08 | 2021-06-18 | 上海依图网络科技有限公司 | 电子设备及其ui自动化测试方法和可读介质 |
CN114168468A (zh) * | 2021-12-07 | 2022-03-11 | 广州掌动智能科技有限公司 | 软件测试系统及其控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108681508B (zh) | 2022-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108681508A (zh) | 一种基于视觉识别的测试方法及终端 | |
JP7398068B2 (ja) | ソフトウェアテスト | |
US9424167B2 (en) | Automated testing of an application system | |
Ledo et al. | Evaluation strategies for HCI toolkit research | |
US9740506B2 (en) | Automating interactions with software user interfaces | |
US9274742B2 (en) | Visual-symbolic control of remote devices having display-based user interfaces | |
US20170052824A1 (en) | Method and system for process automation in computing | |
US10073766B2 (en) | Building signatures of application flows | |
EP2705441B1 (en) | Automatic classification adjustment of recorded actions for automation script | |
US20120124495A1 (en) | System and method for object relationship identification in a user interface | |
US10380526B2 (en) | System and method for providing a process player for use with a business process design environment | |
US11635977B2 (en) | Enhanced target selection for robotic process automation | |
Zaraket et al. | Guicop: Specification-based gui testing | |
US9477399B1 (en) | Automated interaction for mobile applications | |
Xue | Automated mobile apps testing from visual perspective | |
Silva et al. | Analysis of WIMP and post WIMP interactive systems based on formal specification | |
Theis et al. | Behavioral Petri net mining and automated analysis for human-computer interaction recommendations in multi-application environments | |
US9201591B1 (en) | Automated coverage monitoring of mobile applications | |
US20220237110A1 (en) | Electronic product testing systems for providing automated product testing with human-in-the loop component and/or object detection | |
Xue et al. | Learning‐Replay Based Automated Robotic Testing for Mobile App | |
CN110032319A (zh) | 一种屏幕界面中特殊位置的识别方法及其应用 | |
Muratdağı | IDENTIFYING TECHNICAL DEBT AND TOOLS FOR TECHNICAL DEBT MANAGEMENT IN SOFTWARE DEVELOPMENT | |
Hellmann | Automated GUI Testing for Agile Development Environments | |
Walsh | Automatic Identification of Presentation Failures in Responsive Web Pages | |
Wu et al. | Intelligent Software Testing based on Visual Feedback |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |