网站上线前没跑过完整测试,网站等于把用户当小白鼠。测试上个月帮一个朋友看他的网站电商站,首页加载4.8秒,测试移动端点“加入购物车”按钮没反应——他居然说“我自己电脑上没问题”。网站这种事儿见得太多了。测试测试不是网站走形式,是测试拿真金白银的时间换用户的耐心。
先搞清楚测什么。网站功能测试排第一,测试但别只点主流程。网站比如注册页面,测试正常填手机号能收到验证码,网站那手机号带空格呢?测试验证码输错三次呢?密码框粘贴超长字符串呢?我习惯拿一张A4纸,左边写“用户会怎么乱来”,网站右边写“系统该怎么回应”。上周测一个后台管理系统,发现删除按钮连续点两次,第二条请求返回500错误——前端没做防抖,后端没做幂等。这种坑不测出来,上线就是事故。
兼容性测试别偷懒。Chrome跑通不算数,Edge、Firefox、Safari各来一遍。移动端更麻烦,iOS的微信内置浏览器和安卓的UC浏览器能差出半个屏幕的布局错位。有个做教育网站的朋友,PC端课程表显示正常,iPhone 12上表格直接撑出屏幕外,横向滚动条都找不到。他后来加了媒体查询才解决。我自己的做法是:借三台旧手机(一台iPhone 8,一台红米Note,一台华为Mate 20),再开BrowserStack跑几个主流机型。花不了多少钱,省心。
性能测试看两个数:首屏时间和接口响应。首屏超过3秒,一半用户会走。用Lighthouse跑分,低于70分就得查图片压缩、JS阻塞、缓存策略。接口响应更隐蔽——列表页加载20条数据要2秒,用户觉得卡;改成每页10条加懒加载,体感立刻不一样。测并发用JMeter,模拟50个用户同时下单,看数据库连接池会不会爆。小站不用搞太复杂,但至少压一下登录和支付接口。
安全测试别只依赖扫描工具。SQL注入、XSS这些老问题,手动试几个payload比啥都管用。在搜索框输入' OR 1=1 --,看返回什么;在评论里写<script>alert(1)</script>,看会不会弹窗。还有越权——普通用户能不能直接访问/admin/userlist?改一下URL里的用户ID,能不能看到别人的订单?这些漏洞扫描器经常漏报。我见过一个站,前端隐藏了删除按钮,但接口没做权限校验,用Postman发个DELETE请求就把数据删了。
测试方案不用写几十页文档。一张Excel表,列清楚:测试项、操作步骤、预期结果、实际结果、是否通过。每天跑一轮回归,新功能加用例,老功能抽检。发现bug别只写“有问题”,要写清楚环境、复现步骤、截图或录屏。开发最烦“我这儿好好的”这种反馈。
最后说句实在的:测试不是找茬,是帮团队省钱。上线后一个严重bug的修复成本,是上线前的十倍。花两天跑完这些,比半夜被叫起来改数据库强。