引言
99大促有淘宝、天猫、聚划算等全员参与,上千个页面形式的展现。其中,测试是保障活动页面的正常发布的一个必不可少的关键环节。传统的测试方法,需要测试人员去分析这个页面是否正常生成,以及是否实现正常地跳转等。这样通常会占用大量的测试资源。那么能否利用机器学习等相关技术为测试赋能呢?
带着这个问题,我们分析了页面的特性。经过分析后发现页面具有高度的相似性,很多模块是复用的。因此,可以利用机器学习去学习模块特征,进而达到识别这些模块的目的。最终,我们实现了对淘宝99大促几十个活动页模块的自动识别。
处理流程
深度学习技术通常由两部分构成: 模型训练和模型预测。
深度学习通常是有监督学习的方式,因此在模型训练环节中,需要输入训练样本,“告知”它输入和输出是什么。 此外,我们还需要选择合适的深度学习网络来训练。 相关细节会在后续两个小节中详细描述:
样本生成:样本生成过程中使用的三种方法
模型选择:fpn + Cascade R-CNN
在模型预测环节,由于页面内容理解部分不止需要识别模块,还需要识别模块内部的元素。 此外 ,受限于目标检测模型本身的局限性,会导致识别出来的位置没法达到像素级别的精确性,因此需要对位置做修正。 为了近一步提高准确度,本文引入了位置修正模块。 因此,本文的模型预测分为如下三个部分做介绍:
模块识别:识别页面中模块类别和位置
元素识别:基于模块的识别区域,识别内部元素
位置修正:通过传统图像的方式修正内部元素位置
模型预测
样本制造
样本 制造我们演进了三个版本:
第一个版本是手动打标,基于lab