【AI测试】人工智能测试整体介绍

参考博客原址:https://blog.csdn.net/lhh08hasee/article/details/80306474加粗样式
第一部分:人工智能和测试的介绍

第二部分:人工智能系统的特性和验收标准

第三部分:机器学习

第四部分:机器学习的性能指标和基准

第五部分:人工智能系统测试简介

第六部分:人工智能系统的黑盒测试

第七部分:人工智能系统的白盒测试

第八部分:测试人工智能的测试环境

第九部分:使用人工智能进行测试

六、人工智能系统的黑盒测试

6.1 组合测试(Combinatorial testing)

成对测试(Pairwise Testing)又称结对测试、两两测试,是一种正交分析的测试技术。
成对组合覆盖这一概念是Mandl于1985年在测试Aad编译程序时提出来的。是当不可能遍历产品所有功能点时用到的一种测试手段,即如果用尽可能少的工作发现最多的缺陷(测试投入产出性价比)。
经验证,Cohen等人应用成对组合覆盖测试技术对Unix中的“Sort”命令进行了测试。测试结果表明覆盖率高达90%以上,可见成对成对测试是一种非常有效的测试用例设计方法。
成对组合覆盖要求任意两个因素(输入条件)的所有水平组合至少要被覆盖1次。实现成对组合覆盖的算法工具有很多,其中微软的PICT就是其中一个。

测试用例生成工具 —— PICT(Pairwise Independent Combinatorial Testing tool)
PICT 可以有效地按照两两测试的原理,进行测试用例设计.在使用PICT时,需要输入与测试用例相关的所有参数,以达到全面覆盖的效果。
常用的Pairwise工具集:http://www.pairwise.org/tools.asp 处下载PICT工具。
开源仓库:https://github.com/microsoft/pict

为了通过动态测试证明特定的测试项目在所有给定的情况下都符合所有要求,则需要测试所有可能状态下所有可能的输入值组合。这种不切实际的活动被称为“详尽测试”。
因此,实际上,软件测试是通过从(可能很大的)一组可能的输入值和状态中采样来得出测试集的。组合测试是一种从该输入空间派生有用的组合子集的系统方法。

最终组合是根据参数(即输入和环境条件)以及这些参数可以取的值定义的。
在可以组合多个参数(每个参数都具有多个离散值)的情况下,该技术可以显着减少所需的测试用例数量,理想情况下不会损害测试集的缺陷检测能力。

ISO / IEC / IEEE 29119-4定义了几种组合测试技术,例如所有组合,每种选择测试,基本选择测试和成对测试(All Combinations, Each Choice Testing, Base Choice Testing and Pairwise Testing)。实际上,成对测试是使用最广泛的测试,主要是由于易于理解,足够的工具支持和研究表明,大多数缺陷是由涉及很少参数的交互作用引起的。

基于AI的系统的参数数量可能非常多,尤其是当系统使用大数据或与外界交互(例如自动驾驶汽车)时。因此,通过使用组合测试技术(如成对测试),系统地将几乎无限个可能的组合减少到一个可管理的子集的方法是非常有用的。
以自动驾驶汽车为例,在较高级别上进行系统测试的场景需要同时考虑不同的车辆功能和预期的运行环境。

因此,参数将需要包括各种自动驾驶功能(例如,巡航控制,自适应巡航控制,车道保持辅助,车道变更辅助,交通信号灯辅助等)以及环境约束(例如,道路类型和路面,地理区域,一天中的时间,天气状况,交通状况,能见度等)。
除了这些参数之外,还应考虑来自传感器的输入的有效性水平(例如,摄像机的输入会随着旅途的进行而降低,并且变得更脏,或者GPS单元的精度会随着卫星数量的增加而变化。进入和离开视线)。

6.2 对比测试(BACK-TO-BACK TESTING)

back to back testing,在1998年由Somerville定义,一直使用在当存在多个版本的软件应用程序进行测试时。在这里,所有版本都经过一组类似的测试,然后如果存在任何系统/应用程序问题,则始终将结果进行比较。
背对背测试是一种软件测试,也称为对比/比较测试。
这是一种测试类型,其中组件的两个或多个变体始终使用相似的输入进行测试,并比较和检查其相应的输出,以防将来软件中出现任何差异。
因此,在背对背测试中,对软件产品的两个实现版本执行单个测试集,并比较结果。每当结果不匹配时,组件的两个版本之一就可能表明存在故障。
背对背测试不是测试用例生成技术,因为不会生成测试输入。

它可以同时测试两个系统,并将它们的结果相互比较。
例如1,测试新系统并将其与旧版本进行比较
或者 2,同时测试IOS应用程序和Android版本以检查差异

6.3 A/B测试(A/B TESTING)

A / B测试是一种统计测试方法,它允许测试人员确定两个系统中哪个性能更好–有时称为分批运行测试。
A / B测试是通过使用现有系统作为部分Oracle解决test oracle problem的方法。
“预言家难题”(oracle problem)指的是测试中最艰巨的任务之一,就是在运行一个测试用例时,如何才能知道被测试软件确实完成了它应该完成的任务?
oracle的中文术语为【结果参照物】、测试准则。
例如,用户界面设计者假设,通过将“购买”按钮的颜色从当前的红色更改为蓝色,销售额将会增加。使用蓝色按钮创建了界面的新变体,并且将两个界面分配给了不同的用户。
比较了这两种变体的销售率,并在统计上得出了有意义的使用次数之后,有可能确定该假设是否正确。如果蓝色按钮产生了更多的销售,则带有蓝色按钮的新界面将用红色按钮替换当前界面。

A / B测试不是测试用例生成技术,因为不会生成测试输入。

通过将新系统与当前系统进行比较,可以确定新系统是否在某种程度上更好。
当用于数字营销时,成功的衡量标准可能是更多的销售,但是对于基于ML分类器的基于AI的系统,可以使用性能指标(参考第四部分描述)。

6.4 蜕变测试(Metamorphic testing)

蜕变测试(Metamorphic testing)是一种用来缓解“测试准则问题”的软件测试技术。 测试准则是一种让测试人员判定程序是否能通过测试的机制。当测试人员对于所选择的测试用例难以确定预期的正确结果,或无法判定程序输出是否满足预期的结果时,便认为存在“测试准则问题”。
以下图片为百度百科内容:
在这里插入图片描述
蜕变测试是一种生成测试用例的方法,该方法部分处理通常在基于AI的系统中发现的测试oracle problem,在该系统中生成预期结果可能是有问题的(例如,由于复杂性,不确定性和概率性系统)。使用蜕变测试生成的测试用例与常规测试用例设计技术之间的主要区别在于,蜕变测试中的预期结果可能不是固定值,而是由与另一个预期结果的关系定义的。

蜕变测试使用蜕变关系从已知正确的源测试用例生成后续测试用例。
被测软件的变形关系描述了从源测试用例到后续测试用例的测试输入变化如何影响从源测试用例到后续测试的预期输出的变化(或不影响)。

举例:一个测试项目根据一组生活方式参数来预测个人的死亡年龄。
一个源测试用例具有各种测试输入,包括每天抽10支香烟,以及从运行该测试用例到58岁的预期结果。变质关系表明,如果一个人抽更多烟,那么他们的预期死亡年龄可能会减少(而不是增加)。因此,可以使用相同的生活方式参数输入集生成后续测试用例,不同之处在于每天吸烟量增加到20支。现在可以将此跟踪测试用例的预期结果(预计死亡年龄)设置为小于或等于58岁。

                                </div>
            <link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-60ecaf1f42.css" rel="stylesheet">
                            </div>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值