通过前面的系列文章,我们对于软件测试中人工智能系统测试的总的流程进行了阐述,分析了人工智能系统测试的挑战,探讨了人工智能系统测试的流程、方法及策略。明确了人工智能是一种新的编程范式,测试人员基本的测试知识仍然适用,但需要测试人员具备机器学习、统计学、大数据分析等综合知识和能力。
人工智能系统的全流程的测试将不仅仅是测试团队的任务,而需要算法开发人员、系统运营人员的共同参与。人工智能全流程的测试是一个循环迭代的过程,不仅仅需要测试团队,也需要开发人员、运营人员共同参与讨论,特别是确定一些测试的风险值以及测试的一些目标等等。
人工智能测试技术在不断的演进过程当中,我们也需要不断地学习一些新的技术,比如说蜕变测试、变异测试,新的对抗样本的生成方法等去适应并且解决人工智能测试的挑战。接下来就针对我们的研究成果跟大家进行一个人工智能测试技术的分享。
刚才我们说到了,人工智能系统测试分为很多步骤,其中比较典型的步骤包括模型离线的评估以及可靠性的测试。对于一些人工智能系统测试特有的问题,比如说测试结果准确与不准确难以确定、测试充分性难以确定的问题,我们之前的学术界也好,工业界也好,也研究出了一些方法去应对这些难点。比如说用蜕变测试或变异测试这些方法去测试AI系统,接下来我们会一个个进行详细的介绍。
模型离线评估:整体的准确率, 每一类别的准确率,灵敏性(sensitivity) (recall),特异性(specificity)等
系统测试:系统功能展示、 推断结果展示等
可靠性测试:不同类别、不同分辨率、 不同来源的输入数据、对抗样本、易出错样本、业务不相关样本等
性能测试:并发用户测试,关注响应时间、资源占用等
蜕变测试、变异测试……
接下来的文章会针对每一种具体的技术进行展开介绍。