本发明涉及自动化测试领域,具体涉及一种基于深度学习的嵌入式设备缺陷追踪的自动化方法。
背景技术:
目前,现有的嵌入式设备或任何有实体硬件的测试大多数还是由人工实施,测试结果也是由人工分析,对于纯软件产品本身的测试,有多种成熟有效的自动化测试工具,然而对于嵌入式设备来说,由于产品形态千变万化,并没有一个现成的自动化测试工具,只有一些平台性的框架性的工具,并且测试结果仍然需要大量人工分析和处理,耗费了人力物力,且测试时间长,如何解决上述技术问题,是本领域技术人员致力于解决的事情。
技术实现要素:
本发明的目的是克服现有技术的不足,提供一种基于深度学习的嵌入式设备缺陷追踪的自动化方法,该方法替代了人工分析,大大简化了测试完成后,分析的工作量。
为达到上述目的,本发明采用的技术方案是:一种基于深度学习的嵌入式设备缺陷追踪的自动化方法,包括自动化测试系统上位机、硬件设备,具体步骤如下:
s1、自动化测试系统上位机根据测试计划下发测试指令至硬件设备;
s2、硬件设备内部的计数器根据事件计数,并将计数结果反馈给自动化测试系统上位机,所述的事件即为硬件设备内部各种运行状态的实时反映;
s3、自动化测试系统根据计数器所反馈的计数结果进行循环神经网络的训练;
s4、对步骤s3中的循环神经网络进行判断,判断其是否训练完毕,如是,进入步骤s5;如否,继续训练循环神经网络至训练结束;
s5、自动化测试系统上位机利用训练完成的循环神经网络,根据硬件设备运行过程中采集的数据,对测试结果预测,并将预测结果与实际测试结果进行比较,如预测结果与实际测试结果一致时,进入步骤s6;如预测结果与实际测试结果有误差,进入步骤s8;
s6、对实际测试结果进行分析,如测试结果为失败,则进入步骤s7,如测试结果为成功,则测试结束;
s7、当步骤s6中的测试结果为失败时,根据激活的循环神经网络节点输出判断依据,而后测试结束;
s8、判断步骤s5)中预测结果与实际测试结果的错误率是否大于设定阈值,如是,继续训练循环神经网络至训练结束;如否,则测试结束。
优选地,所述硬件设备有多个,所述自动化测试系统上位机同时采集所有所述硬件设备内的运行数据,并将运行数据输入循环神经网络进行训练。
优选地,所述循环神经网络的训练过程如下:
1)每个硬件设备,在一次测试过程中,所采集的若干计数器的实时结果组成的序列为一个数据集ai,其中,测试结果作为所述数据集的标签bi,将数据送入循环神经网络模型进行训练,并计算循环神经网络的输出结果记为y;
2)计算循环神经网络模型测试的误差d,d=bi-y;
3)根据误差d调整循环神经网络模型中的权重矩阵w;
4)对每个测试重复上述训练过程;
5)单个测试项目可以重复进行,每次测试结束后对过去一段时间内的测试组成的数据集统计预测误差率,
若误差率超过设定阈值,返回步骤1)以继续对循环神经网络模型进行训练;
若误差率小于设定阈值,则训练结束;
6)训练结束后,每次测试完成,神经网络都对测试结果做一次预测,并和实际结果比对,统计一段时间内的误差率,如果超过设定阈值,重新开始训练,否则不做改变。
由于上述技术方案的运用,本发明与现有技术相比具有下列优点:本发明的基于深度学习的嵌入式设备缺陷追踪的自动化方法,其通过自动化测试系统上位机来跟踪采集硬件设备运行过程的运行数据,根据计数结果逐步训练循环神经网络,当数据量够大时,能够建立起硬件设备行为的精确模型,当测试结果出错时,可报告硬件设备哪些运行状态异常,帮助使用者快速定位问题点,处理过程简单,大大节约了人工操作,且准确度高。
附图说明
图1为本发明所述的基于深度学习的嵌入式设备缺陷追踪的自动化方法的流程图;
图2为本发明中循环神经网络训练流程图;
图3本发明中训练完成的循环神经网络结构图。
具体实施方式
下面结合附图及具体实施例来对本发明的技术方案作进一步的阐述。
一种基于深度学习的嵌入式设备缺陷追踪的自动化方法,包括自动化测试系统上位机、硬件设备,具体步骤如下,参见图1所示:
s1、自动化测试系统上位机根据测试计划下发测试指令至硬件设备;
s2、硬件设备内部的计数器根据事件计数,并将计数结果反馈给自动化测试系统上位机,所述的事件即为硬件设备内部各种运行状态的实时反映;
s3、自动化测试系统根据计数器所反馈的计数结果进行循环神经网络的训练;
s4、对步骤s3中的循环神经网络进行判断,判断其是否训练完毕,如是,进入步骤s5;如否,继续训练循环神经网络至训练结束;
s5、自动化测试系统上位机利用训练完成的循环神经网络,根据硬件设备运行过程中采集的数据,对测试结果预测,并将预测结果与实际测试结果进行比较,如预测结果与实际测试结果一致时,进入步骤s6;如预测结果与实际测试结果有误差,进入步骤s8,这里的实际测试结果即为由硬件设备内部的计数器所采集到的运行数据;
s6、对实际测试结果进行分析,如测试结果为失败,则进入步骤s7,如测试结果为成功,则测试结束;
s7、当步骤s6中的测试结果为失败时,根据激活的循环神经网络节点输出判断依据,而后测试结束;
s8、判断步骤s5)中预测结果与实际测试结果的错误率是否大于设定阈值,这里,将该阈值设置为5%,如是,继续训练循环神经网络至训练结束;如否,则测试结束。
这里,硬件设备有多个,自动化测试系统上位机同时采集所有硬件设备内的运行数据,并将运行数据输入循环神经网络进行训练。
这里,该循环神经网络的训练过程如下,参见图2所示:
1)每个硬件设备,在一次测试过程中,所采集的若干计数器的实时结果组成的序列为一个数据集ai,其中,测试结果作为数据集的标签bi,将数据送入循环神经网络模型进行训练,并计算循环神经网络的输出结果记为y;
2)计算循环神经网络模型测试的误差d,d=bi-y;
3)根据误差d调整循环神经网络模型中的权重矩阵w;
4)对每个测试重复上述训练过程;
5)单个测试项目可以重复进行,每次测试结束后对过去一段时间内的测试组成的数据集统计预测误差率,
若误差率超过设定阈值,返回步骤1)以继续对循环神经网络模型进行训练;
若误差率小于设定阈值,则训练结束,这里的阈值根据实际情况进行设定;
6)训练结束后,每次测试完成,神经网络都对测试结果做一次预测,并和实际结果比对,统计一段时间内的误差率,如果超过设定阈值,重新开始训练,否则不做改变。
本方案需要硬件设备内部运行数据采集程序,记录自动化测试期间所有必要的运行状态,最后记录测试成功或失败的结果,作为循环神经网络所需的标记数据一起保存下来,然后将各嵌入式设备收集的数据统一收集到自动化测试系统上位机,进行循环神经网络训练,随着自动化测试结果的积累,该模型将越来越精确反应嵌入式设备的运行特性,并逐步给出越来越精确的设备缺陷所在位置,该位置可以由输入层激活能量最高的若干神经节点给出,其直接对应了若干跟踪计数器,也可以是神经网络中间层的激活节点,其代表了运行状态的某种特定流程或者工作模式所触发的缺陷,参见图3所示。
本方案替代了测试结果的人工分析工作,将无定形态的测试结果数据化,并由循环神经网络分析建模,找出缺陷所在,从而简化了测试完成后研发端的分析工作,加快了产品研发的迭代效率。
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。