随着软件行业的快速发展,为了实现高质量的快速迭代,越来越多的公司开始促进测试自动化以缩短测试周期,并且越来越成熟的软件公司已开始追求80%或更高测试自动化速率。一周手动测试可以在自动化后以一个或更少的方式完成。在每一轮自动测试中,失败案例的根本原因分析是一项非常重要的工作,并且对大规模测试日志的人工分析开始成为一个瓶颈。这篇文章将介绍如何使用AI技术实现失败的测试用例的智能分析。
基于支持开发人员进行日志分析的发现和定位系统,它并不是一个新的话题,并且在过去几十年中已经进行了广泛的研究。随着数据的持续积累,学术研究和工业实践试图使用机器学习解决的方法,包括监督方法和非Supervision方法。在问题的术语中,2017年“ DeepLog:系统日志的异常检测和诊断”引起了广泛关注。该文章介绍了由Multi -LSTM模型组成的时机数据特征,学习日志模板和日志参数,对系统行为和系统状态的异常检测,并协助开发人员事先了解系统的潜在风险。从定位问题的角度来看,本文将介绍如何使用日志分析技术来协助该技术来协助该技术在测试方案中案例失败的根本原因。
本文中使用的算法要简单得多,但是对测试日志和历史分析的要求更高。首先,基于大数字定律,样本量越大,接近数据的原始分布越近,因此,未能分析的失败情况必须具有足够的幅度,否则它不仅会怀疑杀死鸡,而且效果不会很好。本文介绍了一种有关监督和学习的解决方案。带有标签的数据质量将决定学习效果。
好吧,由于它出现了,因此揭示了这个谜:使用文本分类模型来实现故障测试案例的根本原因。让我首先向您展示一个完整的解决方案。
图1:故障测试日志分析服务施工过程
如图1所示,故障测试日志分析服务施工过程的构建过程可以概括为以下步骤:
1.测试日志分析的准备数据:确认测试日志已正确记录和保存,并且也正确保存了故障测试日志的根本原因分析。日志应包含可用于定位原因的高价值信息,例如系统返回的错误代码,错误信息等。
2.模型培训:根据现有的分析数据培训模型。
这是训练早期阶段中必不可少的关键步骤。例如,实际上,发现几乎所有失败的案例都有系统返回的错误消息。如果不是,您需要仔细检查日志设计是否不合理,或您可以直接识别测试环境。测试人员获得了故障测试案例,并看到错误信息基本上定位了失败的大致原因。因此,当日志清洁时,仅删除了错误消息,这是预处理在当前练习下取得更好的效果。
示例示例:
case001配置问题参数比较失败
CASE002无法连接环境问题*。*。*。*
本国的
b)记录处理:参与的人越少,后期的维护成本就越少,因此在日志的预处理阶段,仅对日志的简单预处理(例如单词),删除停产的单词等。
C)模型培训:将历史分析数据加载到TextCNN文本分类模型中。TextCNN的最大优点是网络结构很简单,并且很容易超过多个数据集的基准。网络结构很简单,参数数量很小,计算量很小,训练速度更快。想要了解模型的细节的学生可以戳卷积神经网络以进行句子分类。
d)模型音调人参:通过修改嵌入的长度昏暗,调整随机策略等,您可以尝试获得最佳模型。当模型可以在实验室中实现火车测试的准确性时,可以考虑使用它作为准备去的典范。
3.步骤2培训的模型是在线分析服务。
4.在执行测试自动化期间,故障测试案例的日志在预处理后自动发布到预测服务,包括预测的根本原因和置信度。
测试执行后,测试可以立即获得测试结果分析报告。
首先,测试人员将历史经验结合起来及时地位,并处理可以感知失败原因的测试案例。
其次,结合模型输出的信心,预测结果被分类。历史上大量的错误日志通常是自信的,并且根本原因是直接给出的。高低 - 声明失败案例可能是新问题,并发出警告。时间。
不同的业务场景将生成不同的日志。随着业务场景的继续增加,日志的特征空间是无限的,并且不能使用相同的模型适应所有方案。这是在工业世界中可以实现的一个非常重要的功能。需要提高模型的准确性,结合积极学习以提高数据质量以及引入小型样本学习以减少手动依赖性的术语将是随后的关键点的探索方向。
参考
1.体验港口:2016年异常检测的系统日志分析。
本文分享了华为的真诚云社区,作者:敏捷小米。