如何测试人工智能软件?

上一篇 / 下一篇  2020-10-13 17:27:36 / 个人分类:测试

  人工智能(AI)经常成为头条新闻,它提供各种各样的可能性,使我们的生活更容易,并且它也能推动我们生活中各个领域的创新。在几乎所有领域都有人工智能应用的机会,包括家庭自动化、个人虚拟助理、自动化服务代理、欺诈检测、预防性维护、个性化体验、财务咨询、医疗保健建议等等。许多研究报告都预测人工智能和相关技术具有巨大的市场潜力。
  但就像大多数新兴领域一样,人工智能的发展也并非一帆风顺——比如说无人驾驶汽车的致命交通事故、人工智能系统的种族主义反应、图像标签软件不恰当的标签等。这就提出了一个至关重要的问题——这些系统是如何进行测试的?更重要的是,我们是否已经准备好测试这些软件,并且让大家对使用人工智能进行一些重大决定时保持信心?
  那么为什么我们需要担心测试策略呢?软件测试是一个先进并且是在不断进步的领域,已经存在了几十年。测试人工智能应用程序与其他传统应用程序有何不同?
  答案是:基本的区别是很少的。
  人工智能应用程序的特点是是不确定性和概率性、对大数据具有依赖性、随机性的输入/输出、难以预测所有应用场景、需要从过去的行为中不断自我学习。传统的方法和测试工具将不能满足测试这些系统的需要。
  在了解需要测试的内容之前,让我们先了解基于AI的应用程序的基础组件。
  所有人工智能系统都是由巨大而多样的数据驱动的,在做出任何决定之前都需要进行处理。这些数据可以是任何格式——文本、语音、图像、视频……来源也各不相同。这些数据可能是一次性摄入的,也可能是一个连续的过程。数据极其重要,是人工智能系统所采取的任何预测、决定或行动的基础。
  接下来是机器学习系统或核心算法——这构成了人工智能系统的核心,因为系统是在这里训练来执行某些动作的。根据需要和上下文,这些算法可能在种类和复杂性上有所不同,可以组合多个算法来给出特定的期望输出。
  最后,还有与第三方系统的接口。人工智能系统将被应用于其他更大的应用程序以满足最终的业务目标。
  举一个例子:某个推荐系统可能无法实时地独立地工作,它将集成到一个互联网应用程序之中,为用户提供实时产品推荐。
  现在,让我们看看在各个层级我们将如何进行测试。
  1、在数据摄取层,验证系统能够接受来自各种来源和各种格式的数据是很重要的。其次,需要验证所摄入的数据是否按照目标系统所期望的格式转换。很少有查询来验证正确的数据和数据类型的摄入,但这将是有很用的,并且可以防止由于数据而出现的异常。
  2、在选择算法时验证系统的准确性(在这里,对选择使用哪种算法不做讨论)。作为至关重要的一步,将基础数据七三开,用于培训和测试。它使用训练数据集来理解和建模系统行为,并使用测试数据来验证系统的准确性或响应。对于分类算法,可以通过计算分类精度或混淆指标来获得模型的准确性。像平均平方误差(MSE)、均方根误差(或RMSE)或R方可以用来评估回归算法的预测。
  3、需要测试第三方接口。测试人工智能系统如何满足总体业务目标是很重要的。为了验证这一点,需要结束业务驱动的测试。
  这些指导原则将帮助测试人员从这个方向开始。需要大量的努力来生成正确的测试数据,构建适当的测试模型,并确定正确的度量标准集,以将其与正在测试的系统相关联。机会是巨大的,我们准备得多么好,这一切都是不同的!

TAG: 人工智能

 

评分:0

我来说两句

Open Toolbar