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