代码改变世界

【AI测试】也许这有你想知道的人工智能 (AI) 测试--第二篇

2019-09-24 07:30  zouhui  阅读(731)  评论(0编辑  收藏  举报

概述

说明:内容都为自己学习,以及项目思考而来,个人认知有限,所说内容不保证专业性及全部正确性。如果有造成误导,还请谅解。欢迎交流。

测试执行

如果执行测试?

最好就是测试脚本实现了批量运行、测试结果保存、测试结果和预期结果的比对,并计算评价指标,输出评价指标等功能。这样对于测试执行就是点一下运行就可以了。

当然还可以加上一些其他方便的内容。比如执行完成发送钉钉消息,因为批量执行可能要一段时间 。执行完成把评价指标出图出来,更直观显示。贴到测试报告中也好看。

也可以开发一个平台,记录测试结果,并展示评价指标。这样项目组人员或其他人员可以随时在平台上了解算法测试结果。

当然上述是比较理想的情况,实际测试,可能有些功能通过代码比较难实现或者实现成本高。还是会有些人工的操作。

测试工具

测试用例

人工智能 (AI) 测试 或者说是 算法测试,个人认为主要做的有三件事。

  1. 收集测试数据

  2. 跑测试数据

  3. 查看数据结果

而编写测试用例,主要是围绕数据来进行。为更好的设计测试用例,首先需要了解一些项目的情况。这些东西如果在《需求文档》中就有描述是最好的。如果没有需要找算法工程师沟通了解。

测试用例的思考点

  • 项目落地实际使用场景,根据场景思考真实的数据情况,倒推进行测试数据收集

  • 模型的训练数据有多少,训练数据的分布情况,训练数据的标注是否准确

  • 算法的实现方式

  • 选择模型评价指标

  • 评价指标的上线要求

  • 项目的流程,数据流

  • 模型的输入和输出

  • 算法外的业务逻辑

测试结果

测试人员做测试工作,其实大部分测试的核心内容就是:测试结果和预期结果对比

AI(人工智能)测试也是一样。不同的是不像APP,一条用例执行结果和预期不一致就会记录为一个Bug。算法测试不太关注单个结果的一致性,关注整体。有点类似于计算得出整个测试用例的通过率。

不管是自然语音处理语音语义识别还是计算机视觉的图像处理,都需要有一些标注数据,也就是知道预期结果。才能开展做测试。推荐系统有些不一样,你不会知道具体会推荐出哪一条,可能只会知道大概类别范围,所以无法给出标注,预期结果。(这块以后有时间再写)

AI(人工智能)测试是计算测试集运行的测试结果和测试集的标注结果,得出评价指标来衡量算法的泛化能力。

算法运行得到算法结果之后,就需要做结果数据分析了。曾经我公司和某公司使用,提供了http接口给对方调用算法,对方调用来测试算法。后来把测试结果发给我们看时,发现对方测试人员,简单的把  正确数 除以 总数,得到准确率。并没有关注数据结果。

重点需要关注预期结果和实际结果不一致的数据,是怎么样的。再次检查标注是否错误。查看错误的数据的分布,是否有共同的特征。如果有的话,数据允许的情况下,可以再找些这样的数据单独来进行验证,是否带有此特征的数据都会识别错误。

测试问题

测试过程会遇到什么问题

科学计算即数值计算,是指应用计算机处理科学研究和工程技术中所遇到的数学计算问题。比如图像处理、机器学习、深度学习等很多领域都会用到科学计算。有很多语言和库都提供了科学计算工具。这其中,Numpy以其简洁易用的语法和强大的性能成为佼佼者,并以此为基础形成了庞大的技术栈(下图所示)。640?wx_fmt=png640?wx_fmt=png

自动化测试

可以自动化测试吗

测试报告

测试结果最终通过测试报告展现,一份详见的测试报告,可以让别人清晰的了解测试什么,怎么测试的,测试结果是怎么样。

最后附一个用pyecharts画的图。640?wx_fmt=png

版权声明:本文为CSDN博主「凌晨点点」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/lhh08hasee/article/details/100534862