学习【AI测试】人工智能 (AI) 测试--开篇经验分享

人工智能(AI)的定义

通俗点定义,AI就是让机器实现原来只有人类才能完成的任务

目前最广泛的AI的四种测试类型:

  • 机器学习项目的测试
  • 推荐系统项目的测试
  • 图像识别项目的测试
  • 自然语言处理项目的测试

要明确项目具体要测试什么?要进行什么样的类型测试。

  1. 模型评估测试
    模型评估主要是测试模型对未知新数据的预测能力,即泛化能力,泛化那能力越强,模型的与测试能力就越好,衡量模型泛化能力的评价指标是性能度量,性能度量一般有错误率、准确率、精确率、召回率等
  2. 稳定性测试
    主要测试算法多次运行的稳定性,以及算法在输入值发生较小变化时的输出变化,若是输入小产生巨大的输出变化,则说明算法是不稳定的
  3. 系统测试
    将整个基于算法模型的代码作为一个整体,通过与系统的需求定义作比较,发现软件与系统定义不符合或与之矛盾的地方。系统测试主要是三个方面:
    1)项目的整体业务流程
    2)真实用户的使用场景
    3)数据的流动与正确
  4. 接口及测试
    接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
  5. 文档测试
    文档测试是检验用户文档的完整性、正确性、一致性、易理解性、易浏览性。在项目的整个生命周期中,会得到很多文档,在各个阶段中都以文档作为前段工作成果的体现和后阶段工作的依据。为避免在测试的过程中发现的缺陷是由于对文档的理解不准确,理解差异或是文档变更等原因引起的,文档测试也需要有足够的重视。
  6. 性能测试
  7. 白盒测试-代码静态检查
  8. 竞品对比测试
  9. 安全测试

AI的测试数据

不管是机器学习,推荐系统,图像识别还是自然语言处理,都需要有一定量的测试数据来进行运行测试。算法测试的核心是对学习器的泛化误差进行评估。为此是使用测试集来测试学习器对新样本的差别能力。然后以测试集上的测试误差作为泛化误差的近似。测试人员使用的测试集,只能尽可能的覆盖正式环境用户产生的数据情况。正式环境复杂多样的数据情况,需要根据上线后,持续跟进外网数据。算法模型的适用性一定程度上取决于用户数据量,当用户量出现大幅增长,可能模型会随着数据的演化而性能下降,这时模型需要用新数据来做重新训练。上线只是完成了一半测试,并不像APP或者WEB网站测试一样,测试通过后,发布到正式环境,测试工作就完成了。测试集如何选取很关键,一般遵循两个原则:

测试集独立同分布

测试数据的数量和训练数据的比例合理

1、测试集独立同分布

不能使用训练数据来做为测试数据,此为独立。测试数据需要和训练数据是同一个分布下的数据,此为分布。举个例子,训练数据中正样本和负样本的分布为7:3,测试数据的分布也需要为7:3,或者接近这个分布,比较合理。

2、测试数据的数量和训练数据的比例合理

当数据量比较小时,可以使用 7 :3 训练数据和测试数据

(西瓜书中描述 常见的做法是将大约 2/3 ~ 4/5 的样本数据用于训练,剩余样本用于测试)

或者 6: 2 : 2 训练数据,验证数据和测试数据。

如果只有100条,1000条或者1万条数据,那么上述比例划分是非常合理的。

如果数据量是百万级别,那么验证集和测试集占数据总量的比例会趋向于变得更小。如果拥有百万数据,我们只需要1000条数据,便足以评估单个分类器,并且准确评估该分类器的性能。假设我们有100万条数据,其中1万条作为验证集,1万条作为测试集,100万里取1万,比例是1%,即:训练集占98%,验证集和测试集各占1%。对于数据量过百万的应用,训练集可以占到99.5%,验证和测试集各占0.25%,或者验证集占0.4%,测试集占0.1%。

一般算法工程师会将整个数据集,自己划分为训练集、验证集、测试集。或者训练集、验证集 等等。(这里的测试集是算法工程师的测试数据)

算法工程师提测时,写明自测时的准确率或其他指标。测试人员另外收集自己的测试集。

测试数据可以测试人员自己收集。或者公司的数据标注人员整理提供。或者爬虫。外部购买。

测试人员可以先用算法工程师的测试集进行运行测试查看结果。再通过自己的测试集测试进行指标对比。

原文链接:https://blog.csdn.net/lhh08hasee/article/details/81748680

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
人工智能在软件测试中的应用,并不仅仅是指AI测试AI测试人工智能在软件测试领域中的一种具体应用方式。人工智能在软件测试中的应用还包括但不限于以下几个方面: 首先,人工智能可以应用于测试用例的生成与优化。传统的测试用例生成往往是人工编写,费时费力且可能漏掉一些特殊情况。而借助人工智能技术,可以通过数据驱动的方式,对软件进行学习和探索,从而自动生成更全面的测试用例,提高测试效率和覆盖率。 其次,人工智能可以用于软件缺陷的自动发现与定位。通过对软件运行时的行为进行监测和分析,结合机器学习和数据挖掘算法,可以实现对潜在缺陷的预测和及早发现,提早修复,从而提高软件的质量和稳定性。 此外,人工智能还可以应用于自动化测试。自动化测试是软件测试中常用的一种方式,通过编写测试脚本和使用自动化测试工具,可以提高测试执行的效率和一致性。而人工智能技术可以进一步增强自动化测试的能力,例如利用机器学习算法,自动分析测试结果并进行错误分类和定位,提高自动化测试的准确性和可靠性。 综上所述,虽然AI测试人工智能在软件测试中的一种具体应用方式,但人工智能在软件测试中的应用远不止于此,还包括测试用例生成与优化、缺陷自动发现与定位以及自动化测试等多个方面,共同推动了软件测试领域的发展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值