在日常的测试工作中,我们经常遇到一个棘手的问题:当场景复杂、需求模糊或文档不全时,该怎么开展探索性测试?
这时候,测试人员靠的是经验、直觉以及一点“灵光一现”。但人的思路终究有限,当灵感耗尽,该怎么办?这正是大语言模型(LLM)可以发挥作用的地方。
本文将结合一个日历系统的测试案例,拆解真实测试流程,并演示如何结合启发式方法与 LLM,为探索性测试带来更多可能性。
真实案例:一个加载缓慢的日历系统
我们假设你在测试一个 Web 日历系统,支持显示多个预订。功能简单,但交互不轻松。你在执行探索性测试时,提出了几个关键问题:
页面加载时的表现如何?
导航控件是否响应流畅?
额外预订信息能否顺利查看?
能否通过键盘访问日历内容?
在实际测试中,你发现页面在预订多时非常缓慢,“查看更多”弹窗会超出页面顶部,某些预订根本看不到。键盘导航功能大体正常,但在弹窗中无法聚焦。这些问题并不是显而易见的功能性缺陷,但确实影响用户体验。
这类问题的发现,依赖的是你提出问题的能力。探索性测试的核心不是点点点,而是问对问题。
问题来了:思路枯竭时怎么办?
当你对页面的常规交互都测试了一遍,测试思路开始变得“干瘪”——还有哪些场景没覆盖?是否有隐蔽的交互没触发?从哪里寻找下一个测试切入点?
这时,你可以借助一些启发式方法(Heuristics)来帮你跳出已有思维框架。例如,PAOLO 就是一种专门用于可视化界面测试的助记符:
Portrait:竖屏视图下的表现
Audio:是否涉及音频输出
Objects:界面中是否有其他影响交互的对象
Landscape:横屏视图是否适配
Overlay:是否有遮挡层影响内容展示
每个关键词都能引导你提出一个新的问题,从而激发新的测试路径。虽然这些方法不能代替测试经验,但它们是测试思路的“加速器”。
LLM登场:让大模型帮你“脑暴”测试点
你也可以把启发式方法转化为提示语(prompt),让大语言模型帮你生成测试想法。
试试这样的设计思路:
“你是一位探索性测试人员。以下是五个测试维度(###Portrait、Audio、Objects、Landscape、Overlay###),请针对每个维度提出适用于高预订日历系统的测试点,格式为:维度名称 + 测试建议。”
将提示语输入 ChatGPT 或其他 LLM 工具后,你可能会得到如下输出:
Portrait:在移动设备的竖屏模式下,是否存在横向滚动问题?“查看更多”按钮是否超出可视区域?
Overlay:弹窗是否与底层内容冲突?多个弹窗叠加时是否能正常关闭?
Audio:是否考虑语音辅助功能,是否支持屏幕阅读器?
这些测试点并非模型凭空想象,而是基于上下文和提示生成的逻辑推理。对于熟悉 prompt 工程的测试人员来说,这是另一种形式的“思维外包”。
Few-shot技巧:训练模型理解你的“节奏”
为了让模型给出你想要的答案格式,你可以先示范一两个例子,即 few-shot learning。
例如:
Portrait:检查竖屏下按钮是否重叠。
Overlay:确认弹窗是否会遮挡导航元素。
接着告诉模型按照同样格式,继续输出剩下几个测试点。这种“以例带学”的方式,能大幅提高模型回答的质量和实用性。
你甚至可以将这些 prompt 封装成脚本、自动化流程或测试模板,实现“批量脑暴”,提升测试覆盖效率。
手工与智能:不是对立,而是协作
需要强调的是,LLM 并不是要取代你的判断,而是帮助你提出你可能没想到的问题。它可以补充经验的盲区,也可以用不同的语言风格表达你的思考,反过来激发新的思路。
测试人员应该把它视为一个智能助手,尤其适合在以下场景中使用:
探索性测试初期,快速构建测试覆盖范围
遇到思维瓶颈时,拓展问题维度
编写结构化测试记录或测试报告时
LLM是一种测试思维增幅器
、
探索性测试的难点从来不只是操作页面,更在于持续提出“有价值的问题”。人类的经验和判断力不可替代,但也有局限。而 LLM 提供了一种低门槛、高回报的方式,帮你在关键时刻激发新思路、探索未知场景。
也许,未来的探索性测试,会在“人脑 + 大模型”的协作模式下,走得更快、更深。
你是否尝试过将大模型用于测试场景的灵感激发?大家有需要也可以加入软件测试交流群: