随着人工智能技术的迅猛发展,AI概念已经渗透到各行各业,使得众多领域焕发出新的活力。然而,我们也需要认识到,AI目前仍处于早期发展阶段,其技术发展超前于应用层面。当前,AI在智能硬件、机器人、翻译、医疗诊断及推荐系统等领域已有较为成熟的应用。
在AI浪潮的推动下,大公司纷纷加大算法研究和平台建设的投入,如TensorFlow和Apollo等项目的兴起,标志着AI领域正朝着类似于iOS和Android的生态系统发展。与此同时,中小型公司则在垂直领域深耕细作,如科大讯飞在语音识别领域,Face++在计算机图像识别领域的卓越表现。
对于测试人员而言,面对AI的浪潮,他们该如何自处呢?个人建议有两个方向:一是转型研究算法,参与框架和平台的搭建,成为炙手可热的算法工程师;二是利用现有成熟框架,结合数据训练模型,解决AI带来的问题。本文将在第二种选择的基础上,探讨在测试行业中,如何利用AI提升测试质量和效率。
在基于他人计算框架的基础上选择网络和深度学习算法训练模型时,面对众多的网络和算法,如何做出选择呢?目前,深度学习算法主要分为有监督学习、无监督学习和强化学习三大类。其中,监督学习基于带标签数据进行模型训练,是当前应用最为广泛的方法。例如,在广告推荐系统和新闻推荐等商业化成功的系统中,均依赖于用户日常浏览、搜索和用户画像标签数据。
因此,在测试领域运用AI的关键在于数据。拥有足够的数据,我们才能明确AI的潜在应用。那么,测试人员通常拥有哪些类型的数据呢?
- 系统运行时的日志信息
- 移动App运行中的连续性能数据
- 测试人员提交的bug数据,包括标题、描述和截图等
- 网站或App运营数据、埋点数据、用户访问路径和用户评论数据等
假设我们拥有大量的报错日志片段及其对应的责任人模块信息,那么可以通过机器学习训练一个模型,该模型能够自动识别并分配错误日志给相应的模块负责人。同样地,如果我们有App运行一段时间的性能指标数据及其达标情况标签,也可以训练一个模型来自动判断性能是否达标。
但是,如果没有人为标注的格式化数据积累怎么办?对于需要构造数据的测试场景,AI同样可以提供解决方案。例如,使用GAN(对抗生成网络)可以自动生成与训练数据相似的数据。其中DCGAN是一个有趣的变形,它使用卷积神经网络处理图像数据,能够生成高质量的图像。
此外,迁移学习也是一种有效的技术。它基于别人训练好的模型来完成自己的任务而无需重新训练。例如谷歌的Inception-v4模型通过几百万张图片训练出来用于图片分类识别其识别准确率非常高。我们可以利用这个模型来截取最后输出的特征向量代表图片并计算两张图片的相似度。例如通过计算余弦距离来判断两张图片的相似程度。
综上所述在测试行业中利用AI技术不仅可以提高测试效率和准确性还能降低人力成本是一种值得推广和应用的趋势。当然在具体实施过程中还会遇到诸多挑战和问题需要我们不断探索和完善。