您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 订阅
  捐助
AI测试的思考与探索
 
作者:陈敏刚
   次浏览      
 2020-4-14 
 
编辑推荐:
人工智能(AI) 已无处不在, AI正在为各行各业赋能,改变人们生活、生产的方式。AI是一种新的编程范式,无论是学术界还是工业界,对于AI测试的研究还刚刚起步。
本文来自于搜狐,由火龙果软件Anna编辑、推荐。

1. AI测试及挑战

AI 作为一项变革性的技术已经渗透到了各行各业,随着AI在各行各业的应用日益广泛,对AI系统测试的需求也与日俱增。以自动驾驶为例,如果自动驾驶的智能系统做出错误的决策或响应时间慢,则将大大增加车祸的风险。类似地,金融领域AI的错误决策可能导致不可估量的经济损失。

我们首先来分析为什么AI测评那么困难。经典的程序设计中,我们输入的是规则(程序)和需要这些规则处理的数据,系统输出的是答案。因此,经典的软件测试,我们可以通过对比答案来验证和确认程序的正确性。然而,数据驱动的AI系统,不是通过编写明确的逻辑,而是通过数据来训练程序,输入是数据和从这些数据中预期得到的答案,AI系统输出的是规则,这些规则可应用于新的数据,自动计算出答案。可见,数据驱动的AI系统是一种新的编程范式,这种编程范式给测试带来了极大的挑战。

(1)AI系统输出结果很难预测。比如,基于深度神经网络的图像分类问题,网络的输入是图像(高维空间的分布),模型学到的规则是图像中模式的统计规律,因此输出的是图像属于某个类别的概率,这个概率值是无法事先预测的。

(2)AI系统测试通过的准则很难确定。比如,生成对抗网络(GAN)中如何判定GAN生成图像的质量与真实样本足够相似?这个问题,目前只能靠人眼主观判定,定量测评方式的研究才刚刚起步。

(3)AI 系统的输出结果随时间变化。比如,推荐系统的准确率,在某一段时间可以满足业务需求,但随着用户数据的变化,一段时间后其准确率可能会下降,而无法满足需求,模型则需要重新训练,重新评估与测试。

(4)AI系统需要更高效的持续测试方法。由于AI模型随着时间的变化,数据的演化,性能会下降,这时说明该模型已经无法拟合当前的数据,因此需要高效的测试方法,尽快训练、测评、部署更新版的模型。

(5)AI系统的性能依赖于数据。模型训练的数据规模、数据质量、数据类别的平衡性都会影响AI系统的性能。而且,在验证阶段性能好的模型,未必在真实测试环境中也表现出好的性能。比如,一个过拟合的模型,在验证阶段可以获得很高的准确率,但在真实的用户数据中准确率却大大降低。

综上所述,数据驱动的AI系统相对于传统软件测试更复杂,更具有挑战。同样,还需要测试人员掌握更加全面的知识,比如机器学习、统计学、大数据分析等。

2. AI测试的方法论

AI测试从流程上来分大致可以分为5个步骤,分别为测试需求分析、测试环境准备、测试数据准备与验证、AI测试执行与分析、模型上线与监控。

2.1AI测试需求分析

AI测试需求分析与传统软件测试的要求基本一致,需要明确测试的对象、测试的范围、测试的方法和工具、测试通过的准则等。但是测试需求分析不再仅仅是测试团队的任务,而需要算法开发人员、测试人员、系统运营人员共同参与讨论,确定AI系统测试通过的准则。而且,由于AI系统的行为或结果无法完全确定或预测,因此还需要开发、测试和系统运营人员共同定义可允许的风险,风险可根据技术的限制和社会共识来确定。

2.2 测试环境准备

目前AI算法,比如推荐系统、搜索引擎、图像分类、自然语言处理都依赖于大数据基础架构,因此AI算法模型的测试环境准备,通常需要考虑数据量、计算量、测试时间等因素。此外,AI测试需要高效的持续测试,所以AI测试尤其需要测试环境快速部署的能力。

2.3测试数据准备与验证

AI系统,不管是机器学习、推荐系统、计算机视觉,还是自然语言处理,都需要一定量的测试数据来进行模型的评估与测试。测试人员使用的测试数据集,需要尽可能的覆盖真实环境用户产生的数据情况。测试数据集的验证可遵循以下原则:

(1)测试数据与训练数据的比例要合适,这个比例应根据实际算法和应用场景确定。

(2)测试数据与训练数据需要独立同分布。

(3)测试数据与训练数据正负样本的比例也需要尽量保持一致。

(4)对于监督模型,测试数据的标签需要保证正确。

2.4 AI系统测试与分析

比如,模型离线评估主要是评测AI模型对未知新数据的预测能力,即泛化能力。泛化能力越强,模型的预测能力越好。可靠性测试,包括了鲁棒性、可用性、容错性、易恢复性等指标。对于无人驾驶、人脸识别等安全攸关的AI系统,需尽可能采用异常数据来进行测试,如对抗样本、易出错的样本等;对于推荐系统和搜索引擎等智能程序则需要测试反作弊能力。

2.5 AI模型上线与监控

AI模型上线后,根据实际业务每隔几天或几星期,对模型各类指标进行评估。指标应设置对应阀值,当低于阀值时应触发报警。如果模型随着数据的演化而性能下降,说明模型在新数据下性能不佳,就需要利用新数据重新训练模型。此外,在一些场景中,我们还需要对用户输入数据进行监控。比如,2016年微软在Twitter上发布的一款聊天机器人Tay开始表达法西斯思想,其原因就是用户输入数据的失控,人们“教坏”了聊天机器人。

3. 结语

AI是一种新的编程范式,需要测试人员具备机器学习、统计学、大数据分析等综合知识和能力,因此AI测试人员的稀缺将成为AI企业的现实问题。AI的全流程的测试将不仅仅是测试团队的任务,而需要算法开发人员、系统运营人员的共同参与。

此外,AI测试技术也需要不断演进,来适应并解决AI测试带来的挑战。比如,蜕变测试可以缓解输出结果很难预测的问题;对抗样本与对抗训练,则可大大提升AI系统的鲁棒性;

众包测试技术可以实现用户体验类指标的测评;DevOps技术可提供高效的持续测试。

目前,AI测试虽然实现了部分的自动化,但我们相信未来能够实现自我评估、自我测试的自循环AI测试系统将会出现,并为AI的广泛应用提供质量保证。我们期待这一天的到来!

 
   
次浏览       
相关文章

微服务测试之单元测试
一篇图文带你了解白盒测试用例设计方法
全面的质量保障体系之回归测试策略
人工智能自动化测试探索
相关文档

自动化接口测试实践之路
jenkins持续集成测试
性能测试诊断分析与优化
性能测试实例
相关课程

持续集成测试最佳实践
自动化测试体系建设与最佳实践
测试架构的构建与应用实践
DevOps时代的测试技术与最佳实践
最新活动计划
Node+Vue3.0前端全栈开发 7-5 [特惠]
Spring Cloud微服务架构 7-5[特惠]
SysML和EA系统设计与建模 7-26[特惠]
Python、数据分析与机器学习 8-23[特惠]
嵌入式软件架构设计 8-22[线上]
Linux内核编程及设备驱动 7-25[北京]
 
最新文章
大数据平台测试
微服务架构下的测试之道
从零开始掌握微服务软件测试
如何进行测试需求分析:从接收需求到用例设计
python_selenium自动化测试框架
最新课程
测试需求分析与测试用例设计
性能测试方法与技术
自动化测试框架设计高级实践
接口自动化测试方法与工具
软件测试方法与实践(贯穿案例)
更多...   
成功案例
某支付企业 单元测试与重构培训
北京 用户体验、可用性测试与评估
某军工研究单位 自动化测试方法、案例与工具
知名消费金融公司 探索性测试与测试分析
北京 航天科工某子公司 软件测试架构师
更多...