当前位置:首页 > 时尚

测试工程师做什么

测试工程师做的测试活儿,说白了就是工程找茬。但找茬的测试方式,远没有外人想的工程那么随意——不是点开一个页面到处乱戳就完事了。我见过不少新入行的测试人,头一个星期就对着产品一顿狂点,工程然后兴奋地跑过来:“我发现了一个Bug!测试” 那多半是工程个文案错别字,或者某个按钮颜色不对。测试这确实算Bug,工程但测试的测试价值远不止于此。

真正的工程测试工作,是测试从“拆解”开始的。拿到一个需求,工程你得先把它在脑子里掰碎了。测试比如一个简单的登录功能,表面上是输入账号密码点登录。但背后呢?密码加密传输没?连续输错五次要不要锁定?锁定之后是等半小时还是找管理员?用户点“记住我”之后,token存哪儿了?怎么防止别人从浏览器里拷走这个token?这些问题,产品经理不会全写在文档里,开发也未必想得那么周全。测试工程师的活儿,就是把这些没写出来的“暗礁”一个个摸出来,然后变成一条条具体的测试用例。

写用例是个手艺活。好的用例不是“输入正确账号密码,点击登录,验证能登进去”这种废话。而是会写“输入已注销的账号,密码正确,点击登录,验证提示‘该账号不存在’”。会写“输入账号时首尾带空格,验证系统自动去除”。会写“连续点击登录按钮十次,验证没有生成十个重复的会话”。这些看起来琐碎到近乎刁钻的细节,才是测试用例的真正血肉。有一次我为了测一个支付接口的并发,写脚本模拟了五百个用户同时下单,结果还真把库存扣成了负数。那个Bug后来被列为P0级紧急修复,你说这活儿有没有意思?

但测试工程师又不能只盯着细节。你得有那种“跳出来看全局”的劲儿。功能测通了,性能呢?用户量涨十倍,页面会不会卡死?网络从WiFi切到4G,会不会丢数据?还有兼容性——同一个功能,在Chrome上好好的,换到Safari上就布局错乱,这种事我遇到太多次了。更别提那些老旧的IE浏览器,简直是测试工程师的噩梦。你永远不知道用户在用什么样的设备打开你的产品,而测试工程师的职责之一,就是替用户先把这些“不完美”的环境体验一遍。

说到跟开发打交道,这活儿也讲究方式方法。直接扔一句“这个功能坏了”是最没用的。有经验的测试会带上日志截图、复现步骤、甚至抓好的网络请求包。开发一看,哦,是这里的问题,三分钟就修完了。你要是只说“坏了”,人家还得花半小时自己复现,一来二去,效率全耗在沟通上了。而且,报Bug的时候最好别用“我觉得”开头,要用“数据显示”或“操作步骤是”开头。这不仅是专业,也是一种尊重——你尊重开发的时间,开发才会认真对待你报的问题。

还有一部分工作,是大多数人看不见的——那就是回归测试。开发改了一个Bug,往往像打地鼠,这边按下去了,那边又冒出来。所以每次版本更新,测试得把核心流程重新跑一遍。这事儿枯燥吗?确实枯燥。但正是这种枯燥,才能守住产品的底线。我有个同事,每次回归测试都自己写自动化脚本,把重复点击的活儿交给机器去跑,自己腾出精力去琢磨那些机器发现不了的逻辑漏洞。这大概就是测试工程师的进阶之路——从手动点鼠标,到写代码让机器替你点鼠标,再到设计测试策略,让有限的资源覆盖到风险最高的地方。

说到底,测试工程师是那个在产品上线前,最后一个拦在用户和Bug之间的人。我们不写功能代码,但我们的工作,是让那些功能代码真正变得可靠。这份工作没什么光环,甚至经常被误解成“随便点点就能干”。但懂的人自然懂——一个优秀的测试工程师,眼里看到的不是界面,而是界面背后每一个可能出错的分支。这种视角,不是谁都能有的。

分享到: