作为一名经验丰富的开发者,你是否和我一样,在面对日趋自动化的代码编写流程时,开始思考如何提升自身的测试能力?或者你是一名对代码底层逻辑不甚了解的 “vibe coder”,更需要借助工具来保障代码质量?本文将分享一种利用大模型 LLM 进行探索性测试的有效方法,让你告别枯燥的测试流程,并通过持续的提醒机制,将测试融入日常工作,确保你的 Flutter 应用质量无忧。
探索性测试:告别线性思维,拥抱无限可能
传统的软件测试往往依赖于预先编写好的测试用例,按照既定的步骤进行验证。这种方法虽然严谨,但容易陷入线性思维,忽略潜在的缺陷。探索性测试则是一种更灵活、更具创造性的测试方法。它强调测试人员在测试过程中不断学习、发现和调整测试策略,从而更全面地评估软件的质量。探索性测试并非漫无目的的随机点击,而是需要结合测试人员的经验、知识和对软件的理解,有针对性地进行探索。
James Whittaker 的《探索性软件测试:技巧、诀窍、巡视和技术,指导测试设计》一书为我们提供了丰富的探索性测试技巧。其中,“巡视(Tour)” 启发法,提供了一种结构化但灵活的探索性测试方法,通过模拟不同的场景和视角,帮助测试人员系统性地识别潜在问题。
例如, “地标巡视(Landmark Tour)” 强调关注应用的核心功能和关键路径。将其应用于一个待办事项应用(Todo App),我们可以将任务创建界面、任务编辑流程和完成状态指示器视为“地标”。测试人员需要确保这些关键功能操作直观、易于访问,并且运行正常。
大模型 LLM:你的专属探索性测试助手
大模型 LLM 的出现为探索性测试带来了新的可能性。我们可以利用 LLM 的强大语言理解和生成能力,将其转化为一名智能的探索性测试助手。本文介绍的 prompt,就是利用 LLM 实现这一目标的关键。
这个 prompt 的核心思想是,让 LLM 模拟 James Whittaker 书中描述的 “巡视” 启发法,并定期提醒你进行测试。具体来说,prompt 包含以下几个关键部分:
- 角色设定: 将 LLM 定义为你的 探索性测试 助手。
- 目标设定: 帮助你将 James Whittaker 的探索性测试方法应用于你的 Flutter 应用。
- 工作流程: 详细描述了 LLM 应该如何与你互动,包括收集软件背景信息、设定提醒时间、生成测试巡视方案等。
这个 prompt 包含以下几个步骤:
-
收集软件背景信息: LLM 首先会询问你关于被测软件的简短描述,例如 “一个 EMS 临床决策支持模块”。这有助于 LLM 更好地理解软件的功能和目标。
-
设定提醒时间: LLM 会询问你希望何时以及以何种频率收到测试提醒,例如 “工作日每天上午 10:25”。
-
生成巡视方案并设定提醒: 一旦 LLM 收集到足够的信息,它将根据 James Whittaker 书中的 “巡视” 方法,随机选择一个巡视方案,例如 “地标巡视”、“金钱巡视” 或 “后巷巡视”。对于每个巡视方案,LLM 会提供:
- 巡视名称和描述(来自书中)。
- 一个将巡视方案应用于你的软件的实际例子。
- 2-3 个探索性测试问题,以引导测试人员的思考。
- 建议的测试时长。
- 关于如何记录测试结果的明确说明。
-
确保巡视方案的多样性: LLM 会尽量避免重复使用相同的巡视方案,以保持测试的新鲜感和多样性。它还会轮流涵盖 UI/UX、性能、状态管理、安全性、兼容性等不同的测试领域,以确保测试的全面性。
通过这种方式,LLM 能够将 James Whittaker 的 “巡视” 启发法转化为持续不断的测试灵感,即使是没有读过这本书的团队也能轻松上手,获得结构化的测试指导。
Prompt 示例及应用
以下是一个可以直接粘贴到你的 LLM 中的 prompt 示例:
Role: You are my Exploratory‑Testing Assistant.
Objective: Help me apply James A. Whittaker’s Exploratory Software Testing: Tips, Tricks, Tours, and Techniques to Guide Test Design to my Flutter app and send me recurring testing‑tour reminders.
Workflow (follow in order)
1 ▷ Gather software context
• Ask: “Before we begin, please give me a short description of the software or feature you want to test (e.g., ‘an EMS clinical‑decision‑support module’).”
• Wait for me to answer.
2 ▷ Gather reminder schedule
• Ask: “Great — at what time & frequency should I remind you? (e.g., ‘10:25 AM every weekday’).”
• Wait for my reply.
3 ▷ Deliver tour & setup reminder
• Once you have both answers, each time the reminder runs:
1. Pick a random tour from the book, cyclically covering different testing areas (UI/UX, performance, state management, security, compatibility).
2. Include:
• Tour name & description (as given in the book).
• Short, practical example showing how to apply the tour to the described software.
• 2‑3 exploratory testing questions to guide testers’ thinking.
• Recommended duration for conducting the tour.
• Clear documentation guidance on how testers should record findings.
• Ensure tours don’t repeat until all have been used (or as many as possible) to keep variety high.
• After composing the first message, confirm that the recurring reminder has been scheduled for the specified timeframe.
将这个 prompt 粘贴到你的 LLM 中,并根据提示提供软件描述和提醒时间,你就可以开始享受 LLM 带来的 探索性测试 体验了。
例如,如果你的软件是一个在线购物应用,你可以这样描述:“一个允许用户浏览商品、添加到购物车并进行支付的在线购物应用。” 然后,你可以设置每天上午 10:00 提醒。
LLM 可能会在第一次提醒时建议你进行 “地标巡视”,并提供以下信息:
- 巡视名称: 地标巡视
- 巡视描述: 识别应用的关键功能和核心路径,并确保它们运行正常。
- 实际例子: 在购物应用中,主要地标包括:商品浏览页面、商品详情页面、购物车页面、结算页面和订单确认页面。
- 测试问题:
- 用户是否可以轻松找到并浏览商品?
- 添加到购物车的过程是否流畅?
- 结算过程是否安全可靠?
- 建议时长: 30 分钟
- 记录方式: 记录发现的任何问题,并提供截图或视频作为证据。
按照 LLM 的指引,你可以花 30 分钟的时间,重点关注这些关键功能,并记录下任何发现的问题。第二天,LLM 可能会建议你进行 “金钱巡视”,重点关注与支付和财务相关的流程。通过这种方式,你可以系统性地测试你的应用,并发现潜在的问题。
告别拖延症:利用习惯叠加的力量
为了确保 探索性测试 能够真正融入你的日常工作,你还需要克服一个常见的障碍:拖延症。 James Clear 在《原子习惯》一书中提倡 “习惯叠加” 的方法,即在已有的习惯之上叠加新的习惯。
你可以将 探索性测试 与你现有的习惯联系起来,例如每天早上喝咖啡的时间。在喝咖啡之前,先花 15 分钟进行 探索性测试。通过这种方式,你可以更容易地将 探索性测试 培养成一种新的习惯。
同时,设置固定的测试时间,也能避免你因为懒惰而放弃测试。就像安排会议一样,将 探索性测试 视为一个重要的任务,并严格执行。
大模型 LLM 在测试领域的更多应用
除了本文介绍的 prompt 之外,大模型 LLM 还可以应用于测试领域的其他方面,例如:
- 生成测试用例: LLM 可以根据软件的需求规格说明书,自动生成测试用例,从而提高测试效率。
- 分析测试结果: LLM 可以分析测试结果,自动识别潜在的问题和缺陷。
- 辅助缺陷修复: LLM 可以根据缺陷报告,提供修复建议,从而加速缺陷修复过程。
- 代码审查: 利用LLM进行代码审查,提升代码质量和安全性
随着 大模型 LLM 技术的不断发展,它将在测试领域发挥越来越重要的作用。掌握 LLM 的应用,将成为未来测试人员必备的技能。
总结:拥抱大模型 LLM,开启趣味测试之旅
大模型 LLM 为探索性测试带来了革命性的变化。通过巧妙地设计 prompt,我们可以将 LLM 转化为一名智能的测试助手,帮助我们更高效、更全面地评估软件的质量。告别枯燥的测试流程,拥抱 LLM 带来的趣味测试之旅,让你的软件质量更上一层楼!
你是否也有一些利用 大模型 LLM 提升代码质量的技巧?欢迎在评论区分享,让我们一起学习,共同进步!