验证密码重置功能从发起请求到成功登录的全流程正确。测试范围包含前端界面交互、后端逻辑处理、电子邮件或短信通信及数据库状态更新。
测试环境数据
需搭建独立测试环境,配置邮件服务器或短信网关模拟器(如MailHog、Mockaroo)以捕获发送的验证消息。准备注册好的测试账户、有效及无效的邮箱/手机号数据。
测试内容场景
正常重置路径验证
步骤:在登录页点击“忘记密码”,输入已注册邮箱/手机号,提交请求。检查是否收到包含重置链接/验证码的消息。点击链接或输入验证码进入重置页面,设置新密码并提交。尝试使用新密码登录。
结果:系统提示请求已发送;正确接收消息;链接有效且指向重置页面;新密码成功设置并使用新密码登录成功。
异常与错误处理验证
1.未注册账户检测:输入未注册邮箱/手机号提交请求。
结果:系统提示“请求已受理”(避免信息枚举漏洞),且未实际发送消息。
2.无效验证码/链接检测:输入错误验证码或使用过期重置链接。
结果:系统提示“验证码错误”或“链接已失效”,阻止重置操作。
3.弱密码规则检测:在设置新密码时尝试输入“123456”等弱密码。
结果:系统前端或后端校验拦截并提示密码复杂度要求。
安全性验证
1.链接时效性:等待重置链接超过规定有效期(如30分钟)后尝试访问。
结果:链接失效,页面提示错误。
2.Token单次有效性:使用已生效过的重置链接第二次进行重置操作。
结果:链接失效,阻止重复使用。
会话管理:重置过程中检查是否清除了原有会话,强制重新登录。
加密传输:使用抓包工具(如Wireshark)检查重置请求、链接传输是否全程使用HTTPS。
后端数据一致验证
步骤:重置成功后,直接检查数据库用户表字段。
结果:用户密码字段更新为新密码的加密散列值(如bcrypt、SHA-256),明文密码不应存储。旧密码失效。
测试方法与工具
采用黑盒测试与灰盒测试结合。功能测试主流程可使用Selenium、Cypress进行UI自动化;API接口测试使用Postman验证请求与响应;安全测试使用Burp Suite拦截修改请求;数据库验证使用SQL查询工具。