主要内容是
第一部分:人工智能和测试的介绍
第二部分:人工智能系统的特性和验收标准
第三部分:机器学习
第四部分:机器学习的性能指标和基准
第五部分:人工智能系统测试简介
第六部分:人工智能系统的黑盒测试
第七部分:人工智能系统的白盒测试
第八部分:测试人工智能的测试环境
第九部分:使用人工智能进行测试

五、人工智能系统测试简介

5.1 基于AI系统测试的挑战

基于AI的系统通常由常规组件(例如用户界面)和AI组件(例如机器学习模型)组成。
而且,即使“纯”的AI组件也是在软件中实现的,因此可能会遭受与其他任何软件相同的缺陷。因此,当测试基于AI的系统时,仍然需要常规的软件测试方法。但是,基于AI的系统包含许多特殊属性,与传统软件系统相比,这些属性可能需要进行额外的测试

5.1.1 系统规格

基于AI的系统的规范可能是不完整和非正式的,这要求测试人员确定未指定的预期结果。
如果测试人员不完全了解所需的系统行为,并且很难从领域专家那里获取此信息,则可能会出现问题。
另一个问题是,基于AI的系统的要求通常是根据目标而不是所需的功能来指定的,这是一种更为传统的方法。这是因为许多基于AI的系统的本质是所提供的功能是不透明的(例如,很难想象深度神经网络的功能)。
许多基于AI的系统具有广泛的操作环境(例如,自主无人机),与典型的常规系统相比,完全定义操作环境可能更具挑战性。请注意,操作环境的复杂性通常意味着这些系统的测试环境可能同样具有挑战性。
ML模型的规范应包含一组必需的性能指标(参考第四部分描述),以用作ML模型的接受标准

5.1.2 测试数据集

基于AI的系统通常依赖大数据输入和/或来自多种来源的输入。
这可能意味着输入数据通常是非结构化的,并以多种格式提供。
在开发基于AI的系统时,管理此数据是数据科学家的一项专门任务,但是在测试时,此专业数据管理任务是测试人员执行的几项任务之一,通常很少或没有经过专门培训。
当需要包含个人信息的测试数据集时(如基于AI的系统经常需要这种情况),测试人员需要提供经过清理的测试数据。

5.1.3 概率性和不确定性系统

由于许多基于AI的系统具有概率性,因此并不总是有可以用作预期结果的精确值。
例如,当自动驾驶汽车在停止的公交车周围绘制路线时,它不需要计算最佳解决方案,而是需要一个可行的(而且是安全的)解决方案-因此我们接受了次优但足够好的解决方案。
基于AI的系统如何确定其路线的性质也可能意味着它们每次都不会得出相同的结果(例如,它们的计算可能基于随机种子,这会导致每次生成不同但可行的路线) 。
这使得此类系统具有不确定性,导致缺乏可重复性,并且意味着任何回归测试都需要具有更智能的预期结果,并考虑由于不确定性导致的可变性。
在这两种情况下,实际结果的不确定性都要求测试人员比常规系统得出更复杂的预期结果。
基于概率的基于AI的系统还可能要求测试人员多次运行相同的测试,以提供统计上显着的保证,以确保系统正常运行(例如蒙特卡洛Monte Carlo实验)。

5.1.4 自学习系统

随着AI技术变得更加先进,将会出现更多基于AI的系统,这些系统可以随着时间改变自己的行为。
这些可能是自适应系统(能够重新配置和优化自身),也可能是可以通过从过去的经验中学到的自我学习系统。对于这两种情况,很可能在原来系统上成功运行的一些测试在新的改进的系统上不再可行。尽管识别哪些测试不再有效可能相对容易,但是要确保已生成针对新功能的新测试要困难得多。

5.1.5 复杂性

许多基于AI的系统极其复杂,人类很难理解。
例如,一个仅用了3天就建立的“简单”汽车驾驶神经网络,估计有大约2700万个连接和250,000个参数。复杂ML系统的另一个示例是用于识别大数据中的模式的示例。
之所以使用这些系统,是因为它们可以找到人类,即使经过大量研究也无法找到的模式。
如果这些基于AI的系统是如此复​​杂,那么对它们的足够深入的理解以能够产生预期的结果可能超出了许多测试人员的范围。

5.1.6 AI特有的特征

第二部分中已描述各特征

5.2 基于AI系统预测性问题

在测试基于AI的系统时,经常遇到的挑战是测试预测性问题。
糟糕的规范,复杂的,概率性的,自学习的和不确定性的系统使生成预期结果成为问题。
有关黑盒测试的第六部分介绍了解决测试预测问题的测试方法和技术。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐