一种结合深度学习技术的黑盒自动化测试系统和方法与流程

文档序号:22428556发布日期:2020-10-02 10:06阅读:552来源:国知局
一种结合深度学习技术的黑盒自动化测试系统和方法与流程

本发明涉及计算机软硬件测试技术领域,特别涉及一种结合深度学习技术的黑盒自动化测试系统和方法。



背景技术:

在自动化测试领域中认为,自动化测试分为3层:白盒单元测试、灰盒api测试、黑盒测试,其中大量测试人力集中在黑盒自动化测试。与白盒和灰盒测试不同,黑盒测试过程不需要了解内部实现,只需要对ui展示层或对附件外设的进行控制,易于实施,因此存在较多此类型的黑盒自动化测试开源框架工具。但是,ui层本身存在大量不稳定因素,甚至很多测试资深专家会建议尽量不用碰ui自动化测试。因此,有效、低成本、可靠地进行黑盒自动化测试一直是测试领域的难题。

目前已有一些自动化测试工具,但都存在一些缺陷,selenium是一款web自动化测试工具,支持多平台,支持多编程语言编写脚本,可以模拟终端用户操作,可以还原用户真实使用场景遇到的元素覆盖、遮挡问题。但是selenium只支持web测试,需要额外处理才能支持手机、嵌入式设备等测试。appium、uiautomator、espresso是安卓系统上的自动化测试工具,能获取或模拟用户对app中ui元素的操作,用于后续测试断言。但它们都只能在安卓系统上使用,而且需要往系统或app中植入监控程序,不适用于linux系统或低功耗低性能设备。这些工具使用时需要开发人员将接口暴露给测试人员,不仅增加了开发人员负担,还使得产品存在安全性漏洞。另外这些工具切入项目的时间非常靠后,一旦需求发生变化很可能导致已编写的测试用例、自动化脚本失效,例如出现测试人员还没编写完测试用例就发现软件已经迭代几个版本了的情况。



技术实现要素:

本发明的目的是克服现有技术缺陷,提供一种结合深度学习技术的黑盒自动化测试系统和方法,采用非侵入式的方式创新的将人工智能方法结合的技术,应用到测试的用例设计、测试实施、测试验收三大环节中,提高了测试效率,替代了部分人工,降低成本。

本发明的目的一方面是这样实现的:一种结合深度学习技术的黑盒自动化测试方法,包括以下步骤:

步骤1)用户校准机械臂、摄像头、测试与ai服务器的通讯以及判断是否存在ui原型图;

步骤2)摄像头拍摄被测系统屏幕页面,传递给ai服务器进行判断与检测,采用基于深度学习模型的用例设计的方法,实现覆盖性测试用例的生成;

步骤3)利用机械臂、扬声器、麦克风以及摄像头对被测系统进行非侵入式自动化测试。

作为本发明的进一步限定,步骤2)中所述传递给ai服务器进行判断检测,具体包括:将摄像头捕捉到的页面传递给ai服务器,与已经拍摄到的页面进行相似度匹配,若不匹配则判断该页面第一次出现,将该页面进行编号,保存到图片文件,并将利用深度学习的目标检测模型,识别页面上的元素,记录页面信息、元素信息以及页面跳转关系信息到数据库;若匹配则判断该页面之前遍历过,则直接利用数据库中该页面的信息。

作为本发明的进一步限定,所述述页面信息包括本张图片编号、图片文件名;所述元素信息包括所属图片编号、元素编号、元素尺寸大小、元素中心点坐标;所述页面跳转关系信息包括上一张图片编号、点击的元素编号、本张图片编号。

作为本发明的进一步限定,步骤2)中所述采用基于深度学习模型的用例设计的方法,实现覆盖性测试用例的生成,具体包括:存在完整的ui原型图以及基于原型图的跳转逻辑,则使用深度学习算法对比实际产品展示图和ui原型图,得到覆盖所有ui页面的路径,实现覆盖性测试用例的生成;不存在完整的ui原型图,则使用摄像头拍摄产品屏幕,根据深度学习的视觉技术识别可点击的屏幕图标和按钮,从中随机抽取进行点击,完成页面点击操作,将所有新页面进行记录,最终生成monkey随机测试热力图和覆盖性测试用例。

本发明的目的另一方面是这样实现的:一种结合深度学习技术的黑盒自动化测试系统,其特征在于,包括测试生成模块、测试定义模块、测试执行模块和测试适配模块;

所述测试生成模块,用于提供用户基于深度学习模型的用例设计的方式;

所述测试定义模块,用于分析用户生成的用例测试条件、测试步骤和测试数据,生成测试用例配置文件或脚本,并将用例组合成可批量运行的测试套件存放在用例数据库中;

所述测试执行模块,用于按照定义的测试流程,通过非侵入测试执行用例配置文件或脚本,同时记录测试日志和生成测试报告,并提供ai回溯功能;

所述测试适配模块,用于通过不同类型的驱动提供驱动支持、协议接口支持和定制化的控制支持。

作为本发明的进一步限定,所述测试生成模块和测试定义模块位于web端,所述测试执行模块通过网络协议与web端进行数据传输。

作为本发明的进一步限定,所述不同类型的驱动包括工具仪器驱动、测试接口协议驱动和ui适配驱动。

本发明采用以上技术方案与现有技术相比,有益效果在于:本发明可以通过已有的项目产品,直接进行随机性测试;可以通过已有的项目产品,直接生成功能页面覆盖性测试;可以通过已有ui原型图的项目产品,获得更加准确的用例路径,得到覆盖性测试用例,使得用例生成的效率提升。利用机械臂等外部设备,对被测设备进行测试操作,测试过程中以及过程后,均提供接口让用户对ai自动产生的结果做矫正,在下次ai模型训练时,系统将会添加并使用这些回溯后的结果数据,使得ai模型的结果更加准确;非侵入式测试方式避免了植入测试软件对被测系统的影响。

附图说明

图1本发明系统的框架图。

图2本发明中摄像头捕捉到页面示意图。

图3本发明中记录目标元素后的页面示意图。

图4实施例中用例文件中的页面信息示意图。

图5实施例中用例文件中的页面上的元素信息示意图。

图6实施例中用例文件中的生成用例信息示意图。

具体实施方式

如图1所示的一种结合深度学习技术的黑盒自动化测试系统,包括测试生成模块、测试定义模块、测试执行模块和测试适配模块;

测试生成模块,用于提供用户基于深度学习模型的用例设计的方式;还提供用户手工编写、录制回放、基于经验模型、基于交叉矩阵模型的用例设计方式;

测试定义模块,用于分析用户生成的用例测试条件、测试步骤和测试数据,生成测试用例配置文件或脚本,并将用例组合成可批量运行的测试套件存放在用例数据库中;用户对生成的用例进行测试条件、过程步骤以及测试数据进行修改与补充,如果不需要立即执行,可以进行保存操作,此时可以保存到本地或者数据库;

测试执行模块,用于按照定义的测试流程,通过非侵入测试执行用例配置文件或脚本,同时记录测试日志和生成测试报告,并提供ai回溯功能,测试工程师需要对非侵入的自动化测试结果做评价,从而进行ai模型的优化工作;

测试适配模块,用于通过不同类型的驱动提供驱动支持、协议接口支持和定制化的控制支持,不同类型的驱动包括工具仪器驱动、测试接口协议驱动和ui适配驱动;工具仪器驱动用于驱动机械臂、信号发生器、音频分析仪、频谱分析仪等;测试接口协议驱动将测试工具下发的命令转化成测试工具能使用的接口;ui适配层是在侵入式测试时,需要提供符合测试接口协议的软件植入被测设备,达到控制被测设备的目的。

生成模块和测试定义模块位于web端,所述测试执行模块通过网络协议与web端进行数据传输。

一种结合深度学习技术的黑盒自动化测试方法,包括以下步骤:

步骤1)用户校准机械臂、摄像头、测试与ai服务器的通讯以及判断是否存在ui原型图;

步骤2)摄像头拍摄被测系统屏幕页面,传递给ai服务器进行判断与检测,将摄像头捕捉到的页面传递给ai服务器,与已经拍摄到的页面进行相似度匹配,若不匹配则判断该页面第一次出现,将该页面进行编号,保存到图片文件,并将利用深度学习的目标检测模型,识别页面上的元素,记录页面信息、元素信息以及页面跳转关系信息到数据库;若匹配则判断该页面之前遍历过,则直接利用数据库中该页面的信息;页面信息包括本张图片编号、图片文件名;元素信息包括所属图片编号、元素编号、元素尺寸大小、元素中心点坐标;页面跳转关系信息包括上一张图片编号、点击的元素编号、本张图片编号;采用基于深度学习模型的用例设计的方法,实现覆盖性测试用例的生成,具体包括存在完整的ui原型图以及基于原型图的跳转逻辑,则使用深度学习算法对比实际产品展示图和ui原型图,得到覆盖所有ui页面的路径,实现覆盖性测试用例的生成;不存在完整的ui原型图,则使用摄像头拍摄产品屏幕,根据深度学习的视觉技术识别可点击的屏幕图标和按钮,从中随机抽取进行点击,完成页面点击操作,将所有新页面进行记录,最终生成monkey随机测试热力图和覆盖性测试用例。

步骤3)利用机械臂、扬声器、麦克风以及摄像头对被测系统进行非侵入式自动化测试。

具体实施例如下:

步骤1)用户校准机械臂、摄像头、测试与ai服务器的通讯以及判断是否存在完整的ui原型图;

步骤2)摄像头自动捕捉被测系统屏幕页面,该页面如图2所示,传递给ai服务器,若存在完整的ui原型图以及基于原型图的跳转逻辑,使用深度学习相似度对比算法,对比实际产品展示图和ui原型图,得到覆盖所有ui页面的路径,实现覆盖性测试用例的生成;

若不存在ui原型图,则将该页面与已经拍摄到的页面进行相似度匹配,若不匹配则对将该页面编号,分析该页面可点击的目标元素,得到如图3所示的页面,此时将会得到该页面的所有可点击的元素以及属性(元素大小、元素中心坐标、分类以及被点击次数等),系统会保存该图片以及图片内的元素信息到数据库;随机选择一个被点击次数最少的button,将该button的元素中心坐标转换成机械臂可以点击的坐标;机械臂进行点击操作,同时此button的被点击次数增加1次。重新通过摄像头获取点击后的页面,将上述数据导出成用例文件,用例包含3个sheet页,页面信息pagelist、页面上的元素信息keylist、生成的用例信息cases,如图4所示pagelist保存了摄像头捕捉下来的页面以及页面id,保存到本地后的名称,如图5所示keylist元素信息包含了对应的页面编号id,元素id,元素图片名称,元素的大小,元素的中心点坐标,元素的分类,元素上的文字信息,元素被点击到的次数;如图6所示cases里记录的是,当前页面编号page1,点击的该页面page1上的元素key1,那么下一个页面是page1,此时需要判断的是图片pic,后面两列testresult和errorpic是测试执行时的时候系统填入的,至此覆盖性测试用例自动生成,在该项目后续的测试过程中,只要导入该测试用例即可完成测试任务。

步骤3)在测试执行过程中利用机械臂、扬声器、麦克风以及摄像头对被测系统进行非侵入式自动化测试;机械臂、扬声器、麦克风以及摄像头,分别模拟测试工程师的手、嘴巴、耳朵以及眼睛,配合深度学习算法,达到非侵入式测试。

本发明采用非侵入式的方式创新的将人工智能方法结合的技术,应用到测试的用例设计、测试实施、测试验收三大环节中,提高了测试效率,替代了部分人工,降低成本;避免了植入测试软件对被测系统的影响。

本发明并不局限于上述实施例,在本发明公开的技术方案的基础上,本领域的技术人员根据所公开的技术内容,不需要创造性的劳动就可以对其中的一些技术特征作出一些替换和变形,这些替换和变形均在本发明的保护范围内。

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