第 20 天:探索 AI 自愈测试的有效性

挑战进入倒数第十天,今天我们将深入探讨自愈测试的概念。自愈测试是测试中引入 AI 的早期构想之一,我们想解答三个关键问题:

  1. 自愈测试到底是什么意思?
  2. 自愈测试有哪些潜在风险?
  3. 这项功能真的有用吗?

我们知道,并不是每个人都有兴趣学习新的自动化工具,因此,就像昨天的任务一样,这里提供两个选项供你选择(或者两者都尝试)。

任务步骤

选项 1:如果你目前使用的工具包含自愈测试功能,或者你对深入了解自愈测试感兴趣并愿意花时间学习新工具,那么这个选项适合你。具体步骤包括:

  • 你的工具声称能解决哪类问题? 阅读你所选工具的文档,理解其对自愈测试的定义。尝试弄清楚该工具声称能解决的测试问题种类及其工作机制。
  • 验证其中一个声明:安排一个 20 分钟的定时测试,以测试工具的某个自愈功能。执行测试,并评价自愈机制的表现如何。一些建议包括:
    • 如果该工具声称能检测到元素定位符的变化,你可以在测试中故意更改定位符使测试失败,然后运行工具,检查其如何修复失败的测试。
    • 如果该工具声称能修正操作顺序,你可以故意调换测试中的两个步骤使其失败,然后运行工具,检查其修复效果如何。
  • 这项功能可能在哪里失效? 基于你测试的声明,假设自愈成功了,自愈功能可能在哪些情况下会失败?你能构想出一个确实会失败的场景吗?

选项 2:如果你对了解更多关于自愈测试感兴趣,但没有时间学习新工具,那么这个选项适合你。具体步骤包括:

  • 寻找并阅读一篇关于自愈测试的文章或论文:这可以是研究论文、博客帖子或供应商文档,涉及自愈测试的具体信息。
    • 尝试理解该工具声称能解决的测试问题类型。
    • 尽可能地了解问题是如何被检测和解决的。
  • 这样的功能对你的团队有多重要? 考虑你的团队所面临的挑战,评估自愈测试对你们是否有价值。
  • 可能的失败情形? 根据你的阅读,自愈测试在哪些重要方面可能会失败?比如,它是否可能以一种改变测试原有目的的方式来“修复”测试?

分享你的洞见:无论选择哪种探索方式,都请以你的见解回复这篇帖子,分享以下内容:

  • 你选择了哪个选项。
  • 你对自愈测试的看法(它解决了什么问题,以及如何解决)。
  • 自愈测试可能如何给你的团队带来好处或失败。
  • 你将多大概率使用(或继续使用)带有此功能的工具。

为什么参加

  • 加深对自我修复测试的理解: 迭代的过程中维护测试可能具有挑战性,因此能够减少这种困难的工具非常有价值。通过参与这项测试任务,你将深入理解自愈测试的真正含义以及它们如何帮助你的团队。

  • 提高对供应商声明的批判性思考:在选择支持测试的工具时,我们经常会遇到许多听起来很美好的声明。这个任务让你能够批判性地思考这些声明及其局限性,以及它们可能如何影响你的团队。

任务链接

https://club.ministryoftesting.com/t/day-20-learn-about-ai-self-healing-tests-and-evaluate-how-effective-they-are/75314

我的第 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

挑战

推荐阅读


欢迎关注软件测试同学的公众号“软件测试同学”,原创 QA 技术文章第一时间推送。