带新人这些年,我发现一个有意思的现象。
十年前,刚入行的测试问的是:"这个功能我该设计多少条用例?"现在的新人,坐下来第一句话变成了:"咱们用哪个 AI 工具?"
问题没错。但顺序错了。
这就像一个刚进后厨的学徒,不先问"这道菜该用什么刀、什么火候",张口就问"店里那台最贵的料理机在哪"。工具再先进,你得先知道这道菜要怎么做。测试方法,就是后厨里那套刀工和火候——它比任何一台料理机都更基础,也更不会过时。
AI 大模型来了之后,很多人以为这套老手艺要被扔进垃圾桶了。
恰恰相反。 AI 没有取消这些方法,它只是悄悄改了每一种方法的"性价比"。你越搞不清它们各自是干嘛的,越容易被工具牵着鼻子走。
今天就把测试方法里最经典的 3 组配对掰开揉碎,再说说 AI 时代到底该怎么挑。
本文速览
· 测试方法分 3 组:静态 / 动态、白盒 / 黑盒、手工 / 自动化
· 静态测试在 AI 时代翻了身——大模型代码审查能识别 85% 以上的规范违规
· 自动化接管 80% 基础执行后,手工的探索性测试反而更值钱
· 选方法不是挑"哪把刀最好",是看"这道菜用哪把刀"
· 文末有一张"按阶段选方法"的行动清单
第一组:静态 vs 动态——下不下锅,是道分水岭
先说最容易混的一组。
判断一个测试是静态还是动态,其实只有一条标准:你到底有没有真的把软件跑起来。
静态测试,是不下锅。不运行程序,光检查代码、界面和文档里的毛病——代码风格规不规范、函数逻辑有没有错、注释全不全、算法还能不能再优化。就像备菜时盯着食材看:这块肉新不新鲜、刀工齐不齐,不用下锅尝,眼睛和手就能判断个八九。
举个最简单的例子。一段求两个实数最大值的 C++ 代码,max 函数没写返回值类型,主函数里又把 float 结果硬塞进 int 变量——精度当场丢了。这些毛病,根本不用运行,扫一眼代码就该揪出来。这就是静态测试的活。
动态测试,是真下锅。把程序跑起来,喂进去一组组测试数据,看实际输出跟预期对不对,顺带量一量性能、内存、接口。还拿那段代码说事:你得真的输入两个实数,确认它输出的真是那个更大的数。
🔍 静态测试 · 不运行
查代码 / 界面 / 文档的毛病,做代码检查、静态结构分析、质量度量。成本低,越早做越省钱。
▶️ 动态测试 · 真运行
喂数据、看输出,做功能确认、覆盖率分析、性能和内存分析。能抓到真实执行中的问题。
过去静态测试有点尴尬——靠人工评审代码,又慢又累,扫描工具还动不动误报一堆,看得人头大。所以很多团队草草走个过场。
AI 来了之后,这块第一个翻身。
现在主流的 AI 代码审查工具,核心就是个静态分析引擎,用抽象语法树去深度解析代码,规范匹配能识别超过 85% 的代码风格违规。邮储银行这类机构已经在用大模型来压低扫描工具的误报率——这恰恰是过去静态测试最劝退的地方。再加上大模型顺手就能生成单元测试,把原来要几天的活压到几小时。
静态测试这把"备菜的刀",被 AI 磨得前所未有地快。
第二组:白盒 vs 黑盒——锅盖揭不揭得开
这一组,看的是你对"锅里"的了解程度。
白盒测试,锅盖是透明的。你完全清楚程序内部结构和处理逻辑,照着代码里每一条路径去测,确认每条分支都按规格说明跑通。它还有几个别名——程序员测试、结构测试、逻辑驱动测试,听名字就知道,得懂代码。
黑盒测试,锅盖焊死了。你把软件当成一个打不开的黑盒子,里面怎么实现的不管,只在接口处喂输入、看输出,对照需求文档判断功能对不对。集成测试、系统测试、验收测试,主力打法都是黑盒。
黑盒有个特别实在的好处:它跟内部实现没关系。哪天程序内部改了,只要功能不变,原来那批测试用例照样能用。而且用例设计能跟开发同步进行,等于偷偷把项目周期压短了一截。
⬜ 白盒测试 · 看得见逻辑
懂内部结构,按代码路径测。适合开发期、单元测试,揪逻辑漏洞。
⬛ 黑盒测试 · 只看输入输出
不管实现,按需求测功能。适合集成 / 系统 / 验收,实现一改用例照用。
AI 在这一组里玩了个有意思的双面把戏。
一面,它让白盒更省力。大模型读得懂代码逻辑,能帮你梳理函数调用关系、自动补上那些没覆盖到的路径分支——这本来是白盒里最磨人的体力活。
另一面,它又造出了一个史上最黑的黑盒:大模型应用本身。
传统软件你还能假设"同样的输入得到同样的输出"。可你测一个大模型应用,同一个问题问两遍,答案可能都不一样,它还会一本正经地胡说。这种概率性的、带幻觉的输出,传统黑盒那套"对照固定预期"的打法直接失灵。锅盖不光焊死了,锅里还在自己变魔术。
第三组:手工 vs 自动化——这把面,机器揉还是手揉
最后这组,吵得最凶,也最容易站错队。
先把话挑明:手工和自动化,从来不是二选一,是相辅相成。两者都以测试用例为核心。理论上所有手工测试都能改成自动化执行——但前提是,自动化省下的那点效率,得能抵得过买工具、写脚本、养脚本的成本。抵不过,那就是赔本买卖。
自动化擅长什么?重复、枯燥、量大的活。性能测试灌十万并发,回归测试一遍遍跑——这种交给机器,就像和大批量的面,机器揉又快又稳,没人会跟一台和面机比耐力。经典工具一抓一大把:功能测试的 QTP 、 Rational Robot ,性能测试的 LoadRunner ,都是吃这碗饭的老将。
手工擅长什么?判断、临场、靠经验拐弯的活。这就是手工揉面的价值——师傅手一搭,就知道这团面软硬够不够,机器量不出这个手感。
🤖 自动化 · 机器揉面
重复、量大、要稳定的场景:回归、性能、接口批量。前提是效率增益盖得过工具和维护成本。
✋ 手工 · 师傅手感
探索性测试、体验判断、需求理解。靠人的经验和直觉, AI 替不了这双手。
AI 把这组的天平又往自动化推了一大把。
现在的趋势很明确:基础执行类的活,正被自动化和智能体大批接管。有说法是智能体能吃下 80% 的基础测试工作,测试工程师的角色,正从"埋头执行"往"AI 训练师""质量指挥官"上挪——定规则、设策略、判断 AI 给的结果靠不靠谱。
但请注意,越是这样,手工里那块"探索性测试"反而越值钱。
机器能把你写好的菜谱执行一万遍,可它尝不出这道菜"差点意思"。哪里体验别扭、哪个边界透着古怪、用户会从哪个刁钻角度撞上 bug——这些得靠人去探。 AI 工具的定位从来不是替掉测试人,是给测试人装上外骨骼。基础执行被接管得越多,你那双能做判断的手,越是稀缺。
那到底该怎么挑?看菜下刀
讲到这儿,最关键的问题来了:这 3 组、 6 种方法,实战里到底怎么选?
我的答案就一句:别问"哪把刀最好",要问"这道菜用哪把刀"。
没有哪种方法是万能的,它们本来就分属不同的测试阶段、对付不同的目标。开发阶段,静态测试加白盒先上,趁早把代码里的逻辑坑和规范问题揪出来——这时候改最便宜。到了集成、系统、验收,黑盒加动态测试唱主角,站在用户角度看功能对不对。重复回归交给自动化,体验和边界探索留给手工。
AI 没有改变这套"看菜下刀"的逻辑。它改的是每把刀的性价比——静态测试因为大模型变得又快又准,自动化的覆盖面铺得更广,但拿主意的那个人,还得是你。
留一份清单,下次定测试方案时照着走一遍:
工具会一直换,今年的 AI 神器,明年可能就没人提了。
但"什么菜用什么刀"这套手艺,是会一直跟着你的。新人要是肯先把这 3 组配对吃透,再去挑 AI 工具,路会走得稳得多。
少问一句"用哪个工具",多问一句"这一步,我到底想测什么"——
后厨里真正的好厨子,都是这么熬出来的。
你团队现在这几种方法的配比,是有意识定的,还是跟着工具走的?评论区聊聊。
夜雨聆风