单位 3 / 11

探索性测试和测试创意生成:利用 AI 进行创造性 Bug 搜寻

收益:

  • 能够理解人类基于好奇心的探索性测试本质,并使用人工智能作为合作伙伴来生成测试章程和直观线索
  • 能够使发现轴多样化,例如输入、计时、格式、授权和中断,并再次记录生产步骤中的每个异常情况
  • 能够限制仅在准备和总结中使用人工智能,而发现会议本身是由人类进行的

每个编写的测试用例都会检查已经考虑过的内容。但最危险的错误往往隐藏在以前没有人想到的地方。探索性测试——一种测试人员通过探索产品同时学习、设计和运行产品的测试方法,而不依赖于预先编写的脚本——正是针对这一差距。在探索性测试中,专家自由地使用产品,询问“如果我这样做会怎样”,并捕获系统的意外行为。这种测试最依赖人类的直觉和好奇心,这就是为什么人工智能 (AI) 在这里的作用不是“取代”,而是放大好奇心、唤起盲点并产生想法。

在本单元中,您将学习如何使用人工智能作为探索性测试伙伴:从打印测试章程、激发启发式方法到总结会话后笔记。

为什么探索性测试仍然是人类的工作?

脚本化测试——预先编写步骤并逐字重复的测试——确认已知的内容;探索性测试寻找未知事物。探索性测试的价值来自于测试人员看到产品并感觉到“这里有一些奇怪的东西”的那一刻。人工智能无法像你看到的那样看待产品,它无法感知什么会打扰真正的用户,它不能通过说“这个按钮在错误的位置”来打扰它。但人工智能在三个方面提供了非常强大的帮助:(1) 生成系统的测试想法列表,(2) 提醒您忘记的测试轴,(3) 将分散的发现笔记变成有组织的报告。

提示:在开始发现会话之前,请 AI 进行“测试想法预热”;会议期间不要将屏幕留给AI。人工智能在会议前后都有帮助;会议本身是由您的好奇心驱动的。

启发式和人工智能

探索性测试人员使用启发式方法,这是一种简短的提醒,为寻找错误提供方向。人工智能可以根据您的具体情况来提醒您这些内容。几部经典:

  • CRUD:尝试每个数据的创建、读取、更新、删除流程;打断某人。
  • Goldilocks(少量/全部/大量):在字段中输入很少、完整和大量数据(0 个字符、1 个字符、10,000 个字符)。
  • CRUD + 调度:同时在两个选项卡中编辑同一记录,然后保存这两个选项卡。
  • 中断:刷新页面,断开网络,按退格键。
  • 反向顺序:以相反的顺序执行步骤(先付款,然后添加到购物车)。

当你告诉人工智能“通过在该屏幕上应用这些直观提示来建议具体试验”时,你会得到一份现场准备好的清单。

编写测试条件(章程)

探索性测试不是徘徊,而是徘徊。它重点关注测试章程(一个简短的指令,定义探索会话将探索什么以及目的)。一份好的章程遵循以下模式:“探索[目标领域],使用[工具/数据],发现[什么信息/风险]。” AI 很快起草了这些条款。

平衡脚本测试与探索性测试

健全的测试策略结合使用脚本化(自动化、可重复)测试和探索性测试。脚本化测试可以廉价地验证已知行为在一个又一个版本中没有被破坏;另一方面,探索性测试寻找这些脚本从未考虑过的新风险。两者不是竞争者,而是互补者。一个常见的错误是认为“让一切自动化,这样就不需要发现”;虽然自动化仅检查您已知的内容,但它永远无法找到您不知道的内容。另一个错误则相反:依赖于每个版本的手动发现而不设置任何自动化——这会导致相同的基本错误一遍又一遍地出现。

人工智能有助于建立这种平衡:您可以通过将发现会话中发现的异常交给人工智能,将其转变为永久性脚本化回归测试。因此,一旦在发现中发现错误,就永远不会再次未被检测到。发现负责“发现新风险”,自动化负责“不要放弃发现的风险”;人工智能加速了两者之间的桥梁。

提示:将每个发现会话的输出分为两个部分:“立即修复的错误”和“永久自动化的场景”。第二个桶将发现的长期价值带入回归包中。

弱提示/强提示

弱者:“我应该在这个屏幕上测试什么?”
Strong:“对于‘个人资料照片上传’功能,将 90 分钟的探索性测试会话分为 3 个测试条件。对于每个条件:给出目标、要使用的直观线索(文件大小/格式/完美/截断)、要尝试的 5 个具体操作以及要注意的风险信号(速度变慢、图像损坏、安全)。特别要防御性地解决恶意文件上传的风险(文件太大、扩展名错误)。”

强大的提示功能;给出持续时间、结构、线索和风险焦点。其结果是您在整个会议期间都可以随身携带的路线图。

探索轴表

要问的问题

范文

输入限制

该场在极值时会发生什么?

10,000个字符的名字

时机

并发/中断处理时会发生什么?

在两个选项卡中保存相同的记录

格式

如何处理意外的格式?

表情符号、从右到左文本、HTML

权威

未经授权的用户可以访问吗?

手动更改网址

状态

是否可能发生无效的状态转换?

尝试支付已取消的订单

扣除

网络/会话中断时数据是否一致?

录音时断网

四个可复制模板

1) 测试条件生成器:

您的角色:高级探索性测试员。将 [持续时间] 分钟的探索会话分成 3-4 个功能测试条件:[功能]。每个条件:目标、可使用的直观线索、可尝试的 5 个具体行动、可观察的风险信号。条件模式:“使用[工具/数据]探索[领域]以获取[风险/信息]。”

2) 直观的提示适配器:

将这些直观的线索转化为以下屏幕的具体实验:CRUD、金发姑娘(少/满/多)、中断、逆序、绕过授权。屏幕:[屏幕/流程描述]。为每条线索编写 2 个特定于屏幕的实验。

3)盲点提醒:

我正在测试以下功能:[功能]。列出经验丰富的测试人员最错过此类功能的 10 个案例。包括可访问性、本地化(语言/日期/货币)、并发性、安全性和性能轴。

4) 会议记录摘要:

以下是我的发现会议的原始笔记。按以下结构组织它们: - 发现的异常(估计严重程度) - 具有已知复制步骤的异常 - 需要进一步调查的异常 - 对下一次会议的建议 原始注释:[粘贴注释]

三个迷你箱子

案例 1——盲点提醒的实际应用。一位专家正在测试多语言应用程序中的搜索功能。在 AI 提醒“不要忘记定位轴”后,他尝试了土耳其语特有的“i/I”字母转换。搜索“伊斯坦布尔”没有产生任何结果;检测到小写转换错误。 AI轴提醒,专家尝试找到了。

案例 2——章程的焦点。一位新测试人员花了 2 个小时在支付屏幕上“冲浪”,但只做了 2 个小笔记,因为它是非结构化的。在将 AI 计划为 3 个测试条件的会话后,它在同一时期记录了 11 个异常;其中两个人很严重。由于该结构,同样的时间效率提高了 5 倍。

案例 3 — 防御性文件上传测试。一个团队在他们自己的产品中尝试了 YZ 建议的“错误扩展名/太大文件”上传个人资料照片。发现一个50MB的文件导致服务器崩溃40秒,并添加了大小限制和超时。出于防御目的,测试仅在其自己的产品上进行。

常见错误

  • 用会话代替人工智能。发现的价值在于你的观察和直觉;人工智能有助于准备和恢复。
  • 无需预约即可浏览。花几个小时注意力不集中,却一无所获。测试条件给出了焦点。
  • 不收集笔记。如果您不再次使用生产步骤保存在发现中发现的异常,则该发现将丢失。
  • 被卡在一个轴上。不断测试输入的极限;绕过权威、调度、本地化轴。
  • 进行未经授权的安全测试。仅在获得许可的情况下尝试对您自己的产品进行文件/URL 操作。

总之

探索性测试是最依赖人类好奇心的测试类型,寻找不成文的东西。人工智能不会在这里取代你;它概述了测试条件,根据您的上下文调整直观的线索,提醒您盲点,并将杂乱的会话笔记变成有组织的报告。价值来自于你的观察和直觉;人工智能聚焦并倍增这一价值。写入条件,改变轴,再次记录生产步骤的结果,仅在授权范围内执行安全测试。

应用任务

从您自己的产品中选择一个功能。使用带有 AI 的“测试条件生成器”模板将 60 分钟的会话分为 3 个条件。进行会话(没有人工智能,手动探索),保留原始笔记。完成后,使用“会议笔记摘要器”模板组织笔记。结果:至少 5 个异常、每个异常的再生步骤和严重程度估计。请注意哪个测试条件和直观线索导致了您发现的最有价值的异常。

清单

  • [ ] 在会议之前,我用人工智能创建了测试条件并确定了焦点。
  • [ ] 我尝试了至少 4 个不同的发现轴(输入、计时、格式、授权、中断)。
  • [ ] 我出于自己的好奇心手动进行了会话;我没有取代AI。
  • [ ] 我记录了每个异常及其再现步骤和严重性估计。
  • [ ] 我用 AI 将笔记变成了定期报告。
  • [ ] 我仅在授权的情况下尝试对我自己的产品进行安全/操纵。