112
社区成员
发帖
与我相关
我的任务
分享| 项目 | 内容 |
|---|---|
| 这个作业属于哪个课程 | 202501 福大-软件工程实践-w 班 |
| 这个作业要求在哪里 | 站立式会议+α 冲刺 |
| 这个作业的目标 | 描述测试相关 |
整体分 4 天推进:
第一天搭建测试环境,比如安装 Go 运行时、MySQL 数据库,再准备测试账号、图片文件之类的测试数据,把邮件服务、OSS 存储这些外部工具的模拟环境配置好,最后出环境检查清单。
第二天写单元测试和主要接口的成功场景脚本,如用户注册成功、登录成功等正常情况,结束后出单元测试报告和 API 脚本初稿。
第三天扩展测试用例,重点测失败和异常情况,像密码错误、验证码过期这些,同时手工跑一遍主要功能冒烟测试,分析日志找问题,最后产出缺陷单和接口测试报告。
第四天重新测试修复好的问题,再把 token 刷新、登出这些关键流程整体回归一遍,最后出最终的测试报告和风险列表。
主要有三类工具可以选:
用 Postman、newman 或者 httpexpect 做 API 自动化测试,适合放在持续集成里反复跑,能把 token 生成、使用、失效整个过程串起来,还能自动检查返回结果、生成报告。需要准备好测试账号,还要模拟邮箱、OSS 这些外部服务。
手工测试加 SQL、Redis 命令行,适合刚开始功能验证或者紧急上线前确认。好处是快,能直接看数据库和缓存里的数据对不对,缺点是靠人工,测的范围有限,还不好重复用。
单元测试工具(比如 gomock、testify),主要测 Service 层,把数据库、Redis 这些依赖换成模拟的。能专门测一些异常情况,比如验证码过期、OSS 上传失败,不过需要维护,还得跟实际逻辑保持一致。
另外,环境里还需要 MailHog 这类工具模拟邮件服务,避免真发邮件;用 MinIO 或者本地文件模拟 OSS 存储,方便测试头像上传;数据库和 Redis 也得单独弄个测试用的,定期清理数据,避免干扰。
测试的时候得跟着用户使用流程走,从注册开始,到激活、登录、改资料,再到登出,一步一步测,这样才能保证每个环节的前后状态都对。
输入数据要考虑各种情况,比如用户名太短、密码太简单,还有验证码过期这些边界情况,不光要测成功的,失败和异常的也得覆盖到。
外部服务很关键,像 Redis 挂了、OSS 上传失败这些情况,都得试试,看系统返回的错误信息合不合理。
光看接口返回还不够,得查数据库和 Redis 里的数据对不对,比如用户状态改了没、密码是不是加密存的,这样才能确保数据一致。
Token 的有效期、黑名单这些时间相关的功能,得想办法控制时间来测,比如改改过期时间,看看刷新和登出功能是否真的管用。
项目的测试覆盖得全面,从单元测试到 API 自动化,再到手工验证,各种测试策略都已使用,能从不同层面发现问题。
对外部依赖的测试考虑较为周到,像邮件、OSS、Redis 这些,都有对应的模拟方法,能在不影响真实服务的情况下测试。
测试用例设计得细,每个接口的正常、异常场景都列出来了,还明确了前置条件和要验证的点,照着测不容易漏。
不过也有需要注意的地方,比如更新密码的时候没检查新密码复杂度,这可能有风险,得跟产品确认要不要加强;外部服务失败时返回的错误比较笼统,前端可能不好给用户明确提示;多次发验证码可能会覆盖之前的,得测测并发和频率控制的情况。
整体来说,按照这个测试方案执行,能比较全面地验证 user 模块的功能,保证数据对得上、用着安全,也能在上线前发现大部分问题。