智能手机、智能扬声器、智能汽车、智能咖啡机…列表继续。似乎我们周围的一切正在变得栩栩如生,变得聪明。尽管科幻类型因我们对敌对机器人接管的恐惧而蓬勃发展,但智能设备绝不是反乌托邦式的——它们实际上是为了让我们的生活更轻松,这样我们可以花更多的时间在重要的东西上,而不是单调乏味的繁忙工作。
科技公司知道,提高自动化是未来的方式,就像福特率先开发装配线时一样。人工智能 (AI) 和机器学习 (ML) 等先进技术正在推动近代史上最激动人心的创新 — 例如自动驾驶汽车、虚拟和增强现实、自动化投资、改进的医疗成像等。这项技术的好处越来越明显,公司正争先恐后地采用并争先恐后地将其构建到他们的产品中。
随着该技术开始在敏感、高风险空间(如汽车、医疗和金融行业)越来越普遍,DevOps 团队对 QA 测试采取强有力的方法至关重要。当公共安全、客户的生计或患者数据受到威胁时,即使是最聪明的算法也必须由人工工程师再次进行检查和检查。
在深入了解测试智能产品的方法之前,让我们先区分人工智能和机器学习。虽然术语经常互换使用,但有一些关键区别。
人工智能 |
机器学习 |
应用知识或技能 |
随着时间的推移获得知识或技能 |
将成功优先于准确性 |
将准确性优先于成功 |
模拟自然智能 |
不断从一组数据中学习 |
模拟人类对问题的反应 |
创建持续学习算法 |
搜索最佳解决方案 |
搜索任何解决方案,无论是否最佳 |
简而言之,人工智能是指以我们人类认为智能或高效的方式执行任务的系统,而机器学习是由利用预先存在数据的系统执行的自动化、持续的自我训练。
测试人工智能系统
挑战和潜在的并发症
- 大量收集的数据带来了存储和分析方面的挑战 – 清理这些数据可能非常耗时
- 数据可能在意外事件或情况下收集,因此难以收集和用于培训目的
- 人工偏见可能出现在训练和测试数据集中
- 在 AI 系统中,缺陷会迅速恶化并变得更加复杂
测试的关键方面
数据验证
成功的 AI 的关键是良好的数据。在将数据提供给 AI 系统之前,应对数据进行清理、清理和验证。您的 QA 团队应警惕人类偏见和多样性,这些偏见和多样性会使系统对数据的解释复杂化 – 想想汽车导航系统或智能手机助手试图解释一种罕见的口音。
原理算法
AI 的核心是处理数据和生成见解的算法。一些常见的算法与可学习性(Netflix 或 Amazon 了解客户偏好和提供新建议的能力)、语音识别(智能扬声器)和真实传感器检测(自动驾驶汽车)有关如果算法出现问题,肯定会有更严重的后果。
性能和安全测试
与任何其他软件平台一样,AI 系统需要密集的性能和安全性测试以及法规遵从性测试。如果没有适当的测试,利基安全漏洞(使用录音来愚弄语音识别软件或聊天机器人操纵)将变得更加常见。
系统集成测试
AI 系统旨在连接到其他系统,并在更大的上下文中解决问题。要使所有这些集成正常工作,有必要对 AI 系统及其各种连接点执行完整的评估。随着越来越多的系统吸收 AI 特性,仔细测试它们至关重要。
测试机器学习系统
ML 系统的目标是自己获取知识,而无需显式编程。这需要将一致的数据流输入到系统中,这是传统测试基于的更动态的方法(固定输入 = 固定输出)。因此,QA 专家需要以不同的方式考虑 ML 系统的测试策略。
培训数据和测试数据
训练数据是用于训练系统模型的数据集。在此数据集中,输入数据与预期输出一起提供。这通常是通过以半自动化方式收集数据来准备的。
测试数据是训练数据的子集,逻辑构建是为了测试所有可能的组合并确定模型的训练情况。根据测试数据集的结果,对模型进行微调。
模型验证
应创建测试套件以验证系统的模型。主算法分析所提供的所有数据,查找特定模式,并使用结果开发创建模型的最佳参数。从那里,它随着迭代次数和数据丰富性的增加而得到改进。
传达测试结果
QA 工程师习惯于在质量方面表示测试结果,例如缺陷泄漏或缺陷的严重性。但是,基于机器算法的模型验证将产生近似值,而不是精确的结果。工程师和利益相关者需要确定每个结果在一定范围内可接受的保证水平。