【AI测试】人工智能测试整体介绍——第二部分

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

二、人工智能系统的特性和验收标准

2.1 AI特有的特征

与任何系统一样,基于AI的系统具有功能性和非功能性需求。
基于AI的系统具有 模型质量 未包含的一些独特特征,例如适应性,自主性,演化,灵活性,偏差,性能,透明度,复杂性和不确定性。
这些非功能特性将在下面进行更详细的描述,并提供有关对其进行测试的建议。
基于AI的系统的全套质量特征可用作测试计划期间使用的checklist的基础,以用于确定需要通过测试缓解的风险。
请注意,与任何一组非功能性需求一样,这些特性之间可能存在一些相互作用,重叠和可能的冲突。

2.1.1 适应性(Adaptability)

适应性是系统对环境变化做出反应以继续满足功能性和非功能性需求的能力。
自适应系统的属性包括自我配置,自我修复,自我保护和自我学习。
适应性要求系统主动或被动地收集有关其操作环境的信息。
探索(主动收集信息)为自我完善提供了有用的信息,但也危险,并且系统在探索时应格外小心安全相关情况。
适应性要求应指定系统应适应的环境变化,并且还应包括对适应过程本身的要求,例如适当时的最大适应时间。
适应性测试通常基于环境修改或突变。功能性和非功能性需求均应进行测试,并且最好以自动化方式进行回归测试是一种合适的方法。
还应该测试系统执行的适应过程,以确定例如系统是否在所需时间范围内适应,以及系统是否处于为实现适应而消耗的资源的约束范围内。

2.1.2 自主性(Autonomy)

自主是系统在没有人工干预的情况下持续工作的能力。
应该为系统指定预期的人工干预水平,并且应该是系统功能要求的一部分(例如,“系统将保持巡航状态,直到发生以下情况之一……”)。
自主也可以与适应性或灵活性结合起来考虑(例如,系统应该能够在没有人工干预的情况下保持给定水平的适应性或灵活性)。
在某些情况下,基于AI的系统可能会表现出过多的自主性,在这种情况下,人类可能有必要从中夺取控制权。
测试自主性的一种方法是尝试迫使系统脱离其自主行为,并在未指定的情况下请求干预(一种否定性测试)。
负样本测试也可以用来尝试欺骗系统,使其认为应该在何时进行干预(例如,通过在其业务范围边界处创建测试方案,以建议将边界值概念应用于方案测试)来控制系统。

2.1.3 演化(Evolution)

演化与系统应对两种类型的变化的能力有关。
第一种类型的更改是用户需求更改时-这可能有多种原因,甚至可能是由于用户与系统本身的交互所引起的。
第二种类型的更改是系统更改其行为时,这可能是由于系统在使用时学习了新的行为。系统行为的变化并不总是积极的,而这种系统特性的消极形式可以称为退化,漂移或陈旧。
系统演化测试通常采取维护测试的形式,需要经常运行。
此测试通常需要监视指定的系统目标,例如性能目标(例如,准确率,精确率和召回率),并确保没有数据偏差引入系统。
该测试的结果可能是对系统进行了重新培训,也许使用了更新的培训数据集。

2.1.4 灵活性(Flexibility)

灵活性是系统在超出其初始规格的环境中工作的能力(即根据实际情况更改其行为以实现其目标)。灵活性应在要求中明确规定。
这可以通过使用严格程度不同的动词来非正式地实现,例如“必须”,“可能”和“接近”,或者可以通过规范中的概率和可能性(例如RELAX)更正式地实现。
需求语言)。
可以使用不同的技术机制来实现灵活性,例如反应性,主动性,交互性,适应性或自学。
测试灵活性需要进行测试以扩展系统的原始性能。
变形测试(请参阅第6.4节),其中包括使用变形关系扩展初始规范(在指定限制内​​)可用于测试灵活性

2.1.5 偏差(Bias)

偏差是对机器学习模型提供的预测值与实际值之间的距离的度量。
在机器学习(ML)中,其思想是识别并归纳训练数据中的模式,并在模型中实施这些模式以对其进行分类和预测。
如果训练数据不能代表预期可用于操作的数据,则该模型很可能会显示出偏差。
偏差测试可以分两个阶段执行。
首先,可以通过评审将其从训练数据中删除,但这需要专家评审员,他们可以识别可能造成偏见的特征。
其次,可以通过使用无偏差测试集的独立测试来对系统进行偏差测试。当我们知道训练数据存在偏见时,就有可能消除偏见的根源。
或者,我们可以接受该系统包括偏差,但是通过发布训练数据来提供透明度。

2.1.6 性能指标(Performance Metrics)

性能指标是为机器学习(ML)模型定义的,其中最流行的是准确率,精确率和召回率。accuracy, precision and recall
通常在ML框架(例如TensorFlow)中提供对性能模型的测试,该框架将为给定的测试数据集计算这些度量。

2.1.7 透明性/可解释性(Transparency)

透明性(也称为可解释性)是衡量基于AI的系统得出结果的难易程度的一种度量。
与许多非功能性需求一样,可能会与其他非功能性特征发生冲突-在这种情况下,可能需要权衡透明度以达到所需的准确性。
解决潜在透明度问题的一种方法是发布用于创建(不透明)部署模型的框架,训练算法和训练数据的选择细节。
可解释的AI(XAI)领域涵盖了使基于AI的系统更易解释的方法。
透明度测试是一项定性活动,理想情况下,要求目标受众(或一组有代表性的测试人员)执行测试,以确定基于AI的系统的工作是否可以理解或所提供的解释是否令人满意。

2.1.8 复杂性(Complexity)

基于AI的系统(尤其是通过深度学习实现的系统)可能非常复杂。
由于问题的复杂性,基于AI的系统通常用于无法解决的问题(例如,基于大数据进行决策)。如前所述,深度神经网络拥有超过1亿个参数并不罕见。
这种系统的复杂性产生了一个预测性的问题。
它可能需要一些专家花费一些时间和讨论才能就复杂的基于AI的系统的单个测试用例结果达成共识,并且理想情况下,我们希望运行许多测试,这是不可行的如果我们不得不依靠专家(缓慢地),产生预期的结果。
可以使用多种测试技术来解决测试预测性的问题,包括 A/B testing, back-to-back testing and metamorphic testing

2.1.9 不确定性(Non-Determinism)

不能保证非确定性系统每次运行都会从相同的输入产生相同的输出(与确定性系统相反)。对于非确定性系统,使用相同的前提条件和测试输入集的测试可能会有多个(有效)结果。确定性通常由测试人员假设-它允许重新运行测试并获得相同的结果-当将测试重新用于回归或确认测试时,这非常有用。然而,许多基于AI的系统是基于概率实现的,这意味着它们并不总是从相同的测试输入中产生相同的结果。基于ai的系统还可以包含其他非决定论的原因,比如并发处理(尽管这些通常出现在复杂的传统的、非ai的系统中)。非确定性系统的测试要求测试人员解决以下问题:对于同一测试案例,多个实际结果可能被认为是正确的。
对于确定性系统,对正确性的检查是对“实际结果是否等于预期结果”的简单检查,而对于非确定性系统,测试人员必须对所需的行为数据有更深入的了解,以便可以得出合理的结论,验证测试是否通过。

2.2 用人类的价值观对基于AI的系统进行预警

基于AI的系统的两个主要问题。
首先,指定的功能可能无法与人类的价值观完美地吻合,而人类的价值观(最多)很难确定。
第二个问题是,任何功能强大的智能系统都将希望确保其自身的持续存在并获取物理和计算资源-不是为了他们自己,而是为了成功完成其分配的任务。

2.3 副作用

2.4 奖励黑客(reward hacking)

2.5 规范基于AI的系统的道德要求

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值