人工智能技术正在世界范围内以一种前所未有的速度发展,大量的AI应用在短时间内被构建出来,当开发人员正在热火朝天的追赶进度时,测试人员也需要及时跟上这个时代的步伐。
值得庆幸的是,随着人工智能的快速进步,测试、自动化和质量保证 (QA) 的新方法也正在出现,为 AI 应用程序测试打开了新的大门。测试人员该如何在现在与将来测试AI和ML应用程序?以下是你应当了解的一些主要方法。
1.数据质量测试
数据测试环节需要使用基准来评估数据的状态,虽然每家公司的目标可能有所不同,但高质量的数据通常是AI应用的最核心要求:
无误差:所使用的数据没有结构和格式的任何问题。
合并:数据在一个集中式系统中得到保护,而不是分散在多个系统中。
唯一性:数据不重复。
实时性:信息是及时和相关的。
准确性:提供准确的信息,帮助应用做出明智的决策。
测试数据质量意味着通过将企业信息与既定的已知事实进行比较来识别标记错误、过时或不相关的数据。在此级别的测试中,它可以像为数据集创建数据配置文件一样简单,此过程称为合成数据生成。使用此数据集的定义验证,公司可以对其数据是否有效进行分类,从而衡量其质量。
2.偏差测试
另一个越来越受欢迎的重要测试是偏差测试。人工智能系统的偏见在很大程度上取决于它收集的数据。
例如,2016年的一份报告发现亚马逊偏向于男性IT申请人。当这家电子商务巨头训练其人工智能机器人找到最适合这份工作的候选人时,它使用现有员工的简历作为数据库,这些数据库主要是男性。根据这些信息,他们的人工智能推测只有男性候选人才能成为最好的IT员工,但事实并非如此。
为了避免犯同样的错误,你应该在将算法推送到网上时进行偏差测试。
早在 2016 年,偏差测试只是分析需求以建立对一组输入的适当响应的问题。现在,它没有那么明确。你需要更多种类和更多选择。你希望创建多个测试用例来考虑所有可能的变量,而不是使用一个数据集仅生成一个方案。虽然结果可能并不总是完美的,但它们仍然提供了一种更好、更公平、更全面的方法来消除偏见和开发更具包容性的人工智能应用。
3.AI 模型评估与测试
AI 模型评估和测试可帮助你预测分析和评估的结果,它涉及三个步骤:在 AI 测试的第一阶段,收集的数据分为训练集、验证集和测试集。训练集包含多达 75% 的数据集,并分配模型权重和偏差。验证集由训练期间 15% 到 20% 的数据组成,以评估初始准确性并查看模型如何适应、学习和微调超参数。
在此阶段,模型仅考虑验证数据,但尚未使用它来学习模型的权重和偏差。测试集则占整个数据集的 10% 到 15%。这用于最终评估,作为一个受控集,没有偏见。
测试过程的第二阶段是调整超参数。在此阶段,开发人员可以控制训练算法的行为,并根据第一阶段的结果调整参数。在人工智能和深度学习的背景下,可能的超参数可能包括学习率、卷积核宽度、隐藏单元数量、正则化技术等。
最后,执行批量规范化涉及两种技术:规范化和标准化,以便在训练准备期间以相同的比例转换数据。一旦AI模型经过充分的训练、微调和标准化,就应该通过混淆矩阵、AUC ROC、F1分数和其他精度/准确度指标来衡量其性能。经历这一严格的过程对于了解你的算法执行的有效性和准确性至关重要。
4.安全测试
测试你的AI应用程序的安全性需要结合传统的安全性测试方法和特定于AI系统的考虑。从以下几点开始考虑:
确定安全目标和风险:确定与AI应用程序相关的安全目标和潜在风险。考虑数据隐私、模型完整性、对抗性攻击和对输入变化的鲁棒性等方面。这一步将有助于形成你的测试策略。
数据安全性:评估用于训练、验证和推断的数据安全性。评估数据隐私、存储、处理实践和访问控制。确保敏感数据得到适当保护,并遵守隐私法规。
系统架构和基础设施:分析人工智能应用程序的架构和基础设施。考虑安全性方面,如身份验证、授权和加密。验证在系统的设计和实施中是否遵循了安全最佳实践。
输入验证和净化:注意输入验证和净化机制。验证应用程序是否正确处理输入数据,以防止常见的漏洞,如注入攻击或缓冲区溢出。
第三方组件:评估AI应用程序中使用的任何第三方库、框架或组件的安全性。确保它们是最新的,没有已知的漏洞,并且配置正确。
文件和报告:记录你的发现、建议和测试结果。创建全面的安全测试报告,概述已识别的漏洞、风险和缓解措施。
5.性能和可扩展性测试
要对AI应用进行性能测试,需要全面了解应用的架构、组件和数据流至关重要。容量测试、耐久性测试和压力测试是最重要的性能测试类型,必须在AI应用程序上执行,以评估其性能和可扩展性。
这可以通过不同的测试数据来实现,包括大的和小的测试数据集,因为大量的测试数据会占用更多的计算资源。此外,硬件资源的并行监控有助于设置正确的配置,以支持人工智能应用程序的预期用户请求。
6.聊天机器人测试
随着聊天机器人在人工智能应用中越来越受欢迎,确保这些机器人向用户提供的信息是准确的至关重要。如果你的企业使用聊天机器人的功能,你必须测试聊天机器人的功能和非功能组件。
领域测试:聊天机器人旨在处理特定的领域或主题。领域测试包括在与其指定领域相关场景中彻底测试聊天机器人。这确保聊天机器人理解并准确响应其预期范围内的查询。
极限测试:极限测试评估聊天机器人如何处理不适当或意外的用户输入。这包括测试聊天机器人对无效或无意义问题的反应,并在聊天机器人遇到故障或错误时识别结果。极限测试有助于发现潜在的漏洞,并改善错误处理和用户体验。
对话因素:聊天机器人依靠对话流来提供有意义和引人入胜的互动。验证不同的对话流对于评估聊天机器人在各种场景下的响应至关重要。这包括评估聊天机器人理解用户意图、处理对话中的多个回合以及提供相关和连贯响应的能力。评估对话因素有助于优化聊天机器人的对话技能,并增强用户体验。
7.机器人测试
机器人测试需要模拟真实世界的场景,并评估这些场景中系统或算法的行为。基于模拟的行为测试包括算法调试、对象检测、响应测试和验证定义的目标。
为了确保全面的测试,你应该采用低保真度2D模拟和高保真度3D模拟。前者用于模块级行为测试,后者用于系统级行为测试。这允许你在模拟中检查不同级别的复杂性和准确性。该过程还测试硬件可用性场景和硬件不可用性场景。这些场景评估系统或算法在不同硬件条件下的行为和性能,确保在不同环境下的稳健性和适应性。
8.优先考虑测试
对于AI/ML应用的测试与传统软件测试有着很大不同,且存在着一些技术挑战。但伴随着越来越多AI/ML应用的诞生,对AI/ML应用的测试方法和实践也在迅速发展和逐步完善。
以上便是目前为止对于AI/ML应用的一些有效且合理的测试方法及思路。如果你的企业使用或提供人工智能解决方案,你必须优先考虑全面的测试方法,以确保准确性,安全性和包容性。