测试设计:在写代码前就开始动脑筋
刚入行做测试那会儿,我以为测试就是点点页面、看看有没有报错。后来才发现,真正花时间的不是“点”,而是“想”。测试设计就是这个“想”的过程——在系统还没上线、甚至代码都没写完的时候,就得开始琢磨:用户会怎么用?哪里容易出问题?哪些路径可能被忽略?
比如开发一个登录功能,测试设计阶段就要列出各种可能性:正常输入账号密码、空用户名、错误密码、连续输错五次后是否锁定、用特殊字符尝试注入……这些都不是等到界面出来了再临时起意,而是在需求评审阶段就该梳理清楚的。
这时候产出的通常是测试用例,结构清晰,覆盖主流程、异常流和边界情况。它像一张地图,告诉后续执行的人该怎么走。
测试执行:按图索骥地验证现实
等开发把功能做出来,进入提测阶段,测试执行才算正式开始。这时候手上有之前画好的“地图”——也就是测试用例,一条条去跑,看实际表现和预期是否一致。
还是拿登录举例:你打开网页,输入预设的“超长用户名”,点击登录,观察系统是否正确拦截并提示。如果弹出了预料中的错误信息,这条用例就算通过;如果直接卡死或者跳转到奇怪页面,那就要记下问题,提交缺陷报告。
执行过程中也可能发现设计时没想到的情况。比如某个按钮在高并发下响应极慢,虽然单次点击没问题,但用户体验很差。这种现场暴露的问题,往往会反哺到下一轮的测试设计中。
两者的关系就像厨师和食客
你可以把测试设计理解为厨师写菜谱:选什么食材、火候多大、调味几成。而测试执行更像是照着菜谱做饭再尝味道的过程。没有好菜谱,饭可能做得乱七八糟;光有菜谱不去做,也永远不知道菜到底好不好吃。
现实中很多团队重执行轻设计,结果就是反复返工、漏测频发。其实前期多花一小时理清测试场景,能省掉后期三小时的救火时间。
举个生活化的例子
就像你要出门自驾游,测试设计相当于出发前查路线、定加油站、预判堵车点;测试执行则是真正开车上路,看导航说的是不是准,中途油够不够。哪怕计划再周全,也可能遇到修路改道,这时候就需要灵活应对,但前提是原本的路线图足够清晰。
所以这两个环节从来不是割裂的,只是分工不同。一个偏重规划与预见,一个强调落地与反馈。分不清它们的区别,很容易把测试干成机械点击的活儿,既累又没价值。