第 20 天:探索 AI 自愈测试的有效性
挑战进入倒数第十天,今天我们将深入探讨自愈测试的概念。自愈测试是测试中引入 AI 的早期构想之一,我们想解答三个关键问题:
- 自愈测试到底是什么意思?
- 自愈测试有哪些潜在风险?
- 这项功能真的有用吗?
我们知道,并不是每个人都有兴趣学习新的自动化工具,因此,就像昨天的任务一样,这里提供两个选项供你选择(或者两者都尝试)。
任务步骤
选项 1:如果你目前使用的工具包含自愈测试功能,或者你对深入了解自愈测试感兴趣并愿意花时间学习新工具,那么这个选项适合你。具体步骤包括:
- 你的工具声称能解决哪类问题? 阅读你所选工具的文档,理解其对自愈测试的定义。尝试弄清楚该工具声称能解决的测试问题种类及其工作机制。
- 验证其中一个声明:安排一个 20 分钟的定时测试,以测试工具的某个自愈功能。执行测试,并评价自愈机制的表现如何。一些建议包括:
- 如果该工具声称能检测到元素定位符的变化,你可以在测试中故意更改定位符使测试失败,然后运行工具,检查其如何修复失败的测试。
- 如果该工具声称能修正操作顺序,你可以故意调换测试中的两个步骤使其失败,然后运行工具,检查其修复效果如何。
- 这项功能可能在哪里失效? 基于你测试的声明,假设自愈成功了,自愈功能可能在哪些情况下会失败?你能构想出一个确实会失败的场景吗?
选项 2:如果你对了解更多关于自愈测试感兴趣,但没有时间学习新工具,那么这个选项适合你。具体步骤包括:
- 寻找并阅读一篇关于自愈测试的文章或论文:这可以是研究论文、博客帖子或供应商文档,涉及自愈测试的具体信息。
- 尝试理解该工具声称能解决的测试问题类型。
- 尽可能地了解问题是如何被检测和解决的。
- 这样的功能对你的团队有多重要? 考虑你的团队所面临的挑战,评估自愈测试对你们是否有价值。
- 可能的失败情形? 根据你的阅读,自愈测试在哪些重要方面可能会失败?比如,它是否可能以一种改变测试原有目的的方式来“修复”测试?
分享你的洞见:无论选择哪种探索方式,都请以你的见解回复这篇帖子,分享以下内容:
- 你选择了哪个选项。
- 你对自愈测试的看法(它解决了什么问题,以及如何解决)。
- 自愈测试可能如何给你的团队带来好处或失败。
- 你将多大概率使用(或继续使用)带有此功能的工具。
为什么参加
加深对自我修复测试的理解: 迭代的过程中维护测试可能具有挑战性,因此能够减少这种困难的工具非常有价值。通过参与这项测试任务,你将深入理解自愈测试的真正含义以及它们如何帮助你的团队。
提高对供应商声明的批判性思考:在选择支持测试的工具时,我们经常会遇到许多听起来很美好的声明。这个任务让你能够批判性地思考这些声明及其局限性,以及它们可能如何影响你的团队。
任务链接
我的第 20 天任务
基于之前任务中尝试试用了支持 AI 自愈测试的工具 Katalon Studio,所以今天的任务我选择选项 1
1. 你的工具声称能解决哪类问题?
Katalon Studio 的 AI 自愈测试官方文档中宣传能解决 WebUI 自动化测试中 UI 定位导致的测试失败问题
Katalon Studio 的 AI 自愈测试的工作机制:
- 启用自我修复后,当 Katalon Studio 无法使用默认定位器找到对象时,Katalon 会尝试与该对象关联的其他预配置定位器。
- 如果 Katalon Studio 通过任何替代定位器找到对象,测试将继续运行。一旦损坏的对象自我修复,成功找到该对象的替代定位器将用于剩余的执行。这有助于防止同一损坏对象反复发生自我修复,从而缩短执行时间。
- 测试执行结束后,Katalon Studio 建议用找到该对象的定位器替换损坏的定位器。除非 Katalon Studio 可以找到目标对象,否则根据设计的故障处理选项,测试执行可能会停止或继续进行。
对应文章链接为:https://docs.katalon.com/katalon-studio/maintain-tests/self-healing-tests-in-katalon-studio
2. 验证其中一个声明
为了验证 Katalon Studio 的 AI 自愈测试功能,我使用 Katalon Studio 录制了 Swag Labs在线购物网站的登录,选择商品,加入购物车,并下单成功的流程,Katalon Studio 生成的代码如下
当前的 demo 测试用例能运行通过
2.1 故意更改定位符验证 AI 自愈测试功能
为了验证工具的 AI 自愈测试功能中的检测到元素定位符变动后的修复功能,我将测试脚本中更改了两处错误定位,调整后的用例如下:
运行测试失败后,查看工具的 AI 自愈测试功能,发现并没有提供定位失败修复建议
2.2 故意调换测试中的两个步骤验证 AI 自愈测试功能
为了验证工具的 AI 自愈测试功能中的检测到元素定位符变动后的修复功能,我将测试脚本中更改了 测试步骤的顺序,调整后的用例如下:
运行测试失败后,查看工具的 AI 自愈测试功能,发现并没有提供定位失败修复建议
3.这项功能可能在哪里失效?
目前看起来我验证的两次都失效了,AI 自愈测试都没给出定位的修复建议,与官方宣传中的存在较大差异。
之后我也尝试运行错误的 demo 用例多次,Katalon Studio 的 AI 自愈测试功能在某一次确实给出一条建议,但是我使用它的建议,并没有修复错误的用例。
目前还不太确认 Katalon Studio 的 AI 自愈测试功能是不是有什么限制条件或者我使用的方法不太对。
声明一下,我使用的版本也是试用版本,且 AI 自愈测试功能配置为默认配置
4.谈谈我的看法
最近参加这个 30 天 AI 测试挑战任务,也试用了好多新的关于 AI 测试的工具,发现大部分工具都名不符实,都有夸张宣传的嫌疑,建议大家在选择 AI 测试工具时,还是要多试用,以试用结果为参考来选择合适的工具。
关于活动
30 天 AI 测试挑战活动是 Ministry 测试社区发起的活动,上一次我了解这个社区是关于他们发起的 30 天敏捷测试的活动。
社区官网:https://www.ministryoftesting.com
活动链接:https://www.ministryoftesting.com/events/30-days-of-ai-in-testing
挑战:
- 第一天:介绍你自己以及你对人工智能的兴趣
- 第二天:阅读有关测试中的人工智能的介绍性文章并分享
- 第三天:AI 在测试中的多种应用方式
- 第四天:观看有关测试中人工智能的任何问题视频并分享主要收获
- 第五天:确定一个测试中的人工智能案例研究,并分享你的发现
- 第六天:探索并分享对 AI 测试工具的见解
- 第七天:研究并分享提示词工程技术
- 第八天:制作详细的 Prompt 来支持测试活动
- 第九天:评估提示词质量并努力加以改进
- 第十天:批判性分析人工智能生成的测试
- 第十一天:使用 AI 生成测试数据并评估其功效
- 第十二天:评估你是否信任 AI 支持测试并分享你的想法
- 第十三天:开发你的测试方法并成为 AI 测试的先行者
- 第十四天:生成 AI 测试代码并分享你的体验
- 第十五天:衡量测试计划中的短期人工智能
- 第十六天:评估采用 AI 进行无障碍测试并分享你的发现
- 第十七天:利用人工智能实现缺陷报告自动化,并分享你的流程和评估结果
- 第十八天:分享你在 AI 测试中遇到的最大难题
- 第十九天:探索 AI 在测试优先级排序中的作用,并评价其利弊
推荐阅读
- 使用 Bruno 进行接口自动化测试快速开启教程系列
- 使用 Postman 进行接口自动化测试快速开启教程系列
- 使用 Pytest 进行接口自动化测试快速开启教程系列
- 使用 SuperTest 进行接口自动化测试快速开启教程系列
- 使用 Rest Assured 进行接口自动化测试快速开启教程系列
- 使用 Galting 进行性能测试快速开启教程系列
- 使用 K6 进行性能测试快速开启教程系列
欢迎关注软件测试同学的公众号“软件测试同学”,原创 QA 技术文章第一时间推送。