您现在的位置是:百科 >>正文
挖掘测试
百科351人已围观
简介测试部的老周把一台用了三年的笔记本电脑拆开,主板上的电容鼓了三个包,像发酵过度的馒头。他拿万用表量了量,又用示波器看波形,最后拿螺丝刀把整个供电模块撬下来——那动作不像在修电脑,倒像在考古现场清理文物 ...
测试部的挖掘测试老周把一台用了三年的笔记本电脑拆开,主板上的挖掘测试电容鼓了三个包,像发酵过度的挖掘测试馒头。他拿万用表量了量,挖掘测试又用示波器看波形,挖掘测试最后拿螺丝刀把整个供电模块撬下来——那动作不像在修电脑,挖掘测试倒像在考古现场清理文物。挖掘测试他管这个叫挖掘测试。挖掘测试
挖掘测试不是挖掘测试功能测试。功能测试是挖掘测试拿说明书对着流程走一遍,看按钮能不能点,挖掘测试页面跳不跳转,挖掘测试数据存不存得进去。挖掘测试挖掘测试是挖掘测试反过来,先不看说明书,挖掘测试直接往系统深处挖,挖到哪算哪,挖出什么算什么。老周说过一句糙话:“功能测试是体检,挖掘测试是解剖。”
他给我看过一个案例。某银行系统升级后,所有正常操作都通过了,唯独某天凌晨三点,一个客户用老版本手机银行登录,转账金额恰好是1000.01元,系统直接崩了。开发部查了三天没查出来,老周接手后,没去查代码逻辑,反而先翻数据库的索引碎片率,又去看日志文件里一个毫秒级的时间戳偏差。最后发现是底层一个C语言写的日期转换函数,在处理闰年二月二十九日跨时区操作时,整数溢出把金额字段的符号位给冲了。这种问题,功能测试永远测不出来,因为没人会在凌晨三点用老版本客户端转一个带零头的金额。
挖掘测试讲究的是“逆向拆解”。先假设系统某个角落藏着不可告人的毛病,然后故意制造极端条件把它逼出来。老周工具箱里常年备着一堆东西:断网模拟器、延迟注入器、随机数据生成器——最狠的是那个“脏数据包”,往系统里灌入各种格式错误的字段,有些字段长度超过规定值一万倍,有些字段值直接是乱码。他管这叫“给系统灌辣椒水”。
有一次他测试一个物流调度系统,往GPS数据流里塞了一个虚构的坐标点——南纬89.9999度,东经179.9999度。系统居然没有任何异常反应,正常派单了。结果那辆货车在系统里“开”到了南极洲中部,配送时间显示需要四十七天。老周把这个bug报上去的时候,开发负责人脸都绿了——因为那个坐标点理论上确实存在,只是现实中永远不会有人在那里下单。
挖掘测试最反直觉的一点是:它不追求“通过”,反而追求“失败”。系统越早暴露问题,代价越小。老周有句口头禅:“现在爆是爆在测试环境,最多丢点脸。等上线了再爆,那就是丢钱丢人丢客户。”他去年挖出过一个支付系统的隐蔽漏洞——当用户连续点击“确认支付”按钮超过13次时,系统会生成一笔负数金额的交易记录,直接导致商户账户余额增加。他为了复现这个场景,写了个脚本模拟人类手速的随机抖动,而不是简单循环点击。因为真实用户不会以固定频率点按钮,他们的点击间隔总带着微小的不规则性。
测试部墙上贴着一张纸,是老周手写的:“挖到问题不是本事,挖到别人想不到的问题才是本事。”旁边还有一行小字,字迹潦草:“挖完记得填回去,别留坑。”
那张纸贴了五年,纸边已经卷起来发黄了。但每次有新项目上线前,老周还是会拎着他那台鼓包电容的旧笔记本,坐进测试间,开始新一轮挖掘。他挖的不是bug,是系统里藏着的那些“意料之外”——那些开发人员写代码时根本没想过会发生的事,那些用户永远不会按常理出牌的操作方式。挖掘测试测到最后,测的其实是开发者的想象力边界。
Tags:
相关文章
常州精研科技有限公司
百科常州精研科技有限公司的车间里,机器声像潮水一样涌过来。我站在参观通道上,隔着玻璃看那些五轴联动加工中心,刀具在金属表面划出细密的弧线,火花溅起来又暗下去。操作工穿着灰色工装,手里拿着游标卡尺,在工件上 ...
【百科】
阅读更多救人心唯圣学网站
百科```html 救人心唯圣学网站 救人心唯圣学网站 凌晨三点十七分,我第无数次点开那个熟悉的灰色图标。服务器又崩了。留言板上最后一条消息停在两小时前,ID叫“阳明门下走狗”的用户发了句“心 ...
【百科】
阅读更多接入网安全日工作总结
百科上午九点,核心机房那台老旧的接入交换机又告警了。端口G0/23流量异常,单口下行跑到了940Mbps,几乎打满千兆。登录上去一看,MAC地址表里同一个MAC在三个端口间反复跳——典型的环路。查了十分钟 ...
【百科】
阅读更多