记一次印象有点深刻的坑(bug)
1.该模块的主要功能介绍
- 该系统是一个网上课程预约系统。
- 学生进行口语预约(没上课前可以进行取消)--> 等待上课 --> 上完课老师进行完成的确认操作。
2.问题描述
- 看下图,现在出现的问题是:
- 同一个课程可以取消很多次,按道理来说一个课程只能取消一次
这么严重的问题都会出现(测试干什么吃的。。。此处省略好多个字),是的,这种问题怎么会出现呢。
这个问题是这样出现的,当网络特别不好的时候,这个“取消”按钮点击的时候,没那么快跳转,然后可以连续点击,然后会出现连续取消的情况。
3.问题排查
- 公司现在是前后端分离进行项目开发,就是说在网络没有问题的情况下,老师点击取消后,这个课程的状态就会变成“老师取消”,然后就操作栏就会变为“详情”(即没有了取消的这个按钮)。正常情况下是这样个流程。
- 然后就想那应该是后台接口的问题,于是用postman工具模拟老师取消课程,真的可以无限次取消。
4.解决方案
-
当点击取消后,状态变为老师取消,下一次点击该课程的“取消”按钮,还有判断该课程的状态,只有“已预约”的状态才能点击取消,其他状态点击取消,会给一个错误提示。
-
如图,通过postman进行课程取消,当课程状态不是“已预约”,点击取消,都会提示一个错误信息:状态有误。这样就不能进行连续取消了。
-
所以,进行接口测试还是挺有必要的。。。
-
还遇到的坑是,比如一个输入框,前端提示限制:只能输入十个字符,后端接口限制输入五个字符。根据边界值的测试方法嘛,输入10个字符测试。然后就报错了。。。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现