记一次印象有点深刻的坑(bug)
1.该模块的主要功能介绍
- 该系统是一个网上课程预约系统。
- 学生进行口语预约(没上课前可以进行取消)--> 等待上课 --> 上完课老师进行完成的确认操作。
2.问题描述
- 看下图,现在出现的问题是:
- 同一个课程可以取消很多次,按道理来说一个课程只能取消一次

这么严重的问题都会出现(测试干什么吃的。。。此处省略好多个字),是的,这种问题怎么会出现呢。
这个问题是这样出现的,当网络特别不好的时候,这个“取消”按钮点击的时候,没那么快跳转,然后可以连续点击,然后会出现连续取消的情况。

3.问题排查
- 公司现在是前后端分离进行项目开发,就是说在网络没有问题的情况下,老师点击取消后,这个课程的状态就会变成“老师取消”,然后就操作栏就会变为“详情”(即没有了取消的这个按钮)。正常情况下是这样个流程。
- 然后就想那应该是后台接口的问题,于是用postman工具模拟老师取消课程,真的可以无限次取消。
4.解决方案
- 当点击取消后,状态变为老师取消,下一次点击该课程的“取消”按钮,还有判断该课程的状态,只有“已预约”的状态才能点击取消,其他状态点击取消,会给一个错误提示。
如图,通过postman进行课程取消,当课程状态不是“已预约”,点击取消,都会提示一个错误信息:状态有误。这样就不能进行连续取消了。

- 所以,进行接口测试还是挺有必要的。。。
还遇到的坑是,比如一个输入框,前端提示限制:只能输入十个字符,后端接口限制输入五个字符。根据边界值的测试方法嘛,输入10个字符测试。然后就报错了。。。
记一次印象有点深刻的坑(bug)的更多相关文章
- 【踩坑记录】记一次MySQL主从复制延迟的坑
最近开发中遇到的一个MySQL主从延迟的坑,记录并总结,避免再次犯同样的错误. 情景 一个活动信息需要审批,审批之后才能生效.因为之后活动要编辑,编辑后也可能触发审批,审批中展示的是编辑前的活动内容, ...
- 记一次 Spring 事务配置踩坑记
记一次 Spring 事务配置踩坑记 问题描述:(SpringBoot + MyBatisPlus) 业务逻辑伪代码如下.理论上,插入数据 t1 后,xxService.getXxx() 方法的查询条 ...
- 记一次RabbitMq 安装和配置坑
记一次RabbitMq 安装和配置坑 正常情况下安装 先安装erl ,在安装rabbitmq 这个在windows下的安装没什么技巧,按照默认一路下一步就ok.安装好后可以到cmd测试是否安装好. 测 ...
- 记一次UICollectionView中visibleCells的坑
记一次UICollectionView中visibleCells的坑 项目的要求是这样的 其实也是一个轮播图,而已,所以依照轮播图的实现原理,这里觉得也很简单,还是利用UICollectionView ...
- 印象最深的一个bug:sessionStorage缓存在移动端失效
无bug,不程序:作为程序员的我,不是修bug就是在写bug的路上. 移动端sessionStorage缓存失效是我"印象最深的一个bug"之一,为啥呢,因为这个问题导致我加班到很 ...
- 解Bug之路-记一次JVM堆外内存泄露Bug的查找
解Bug之路-记一次JVM堆外内存泄露Bug的查找 前言 JVM的堆外内存泄露的定位一直是个比较棘手的问题.此次的Bug查找从堆内内存的泄露反推出堆外内存,同时对物理内存的使用做了定量的分析,从而实锤 ...
- 芝麻HTTP:记scikit-learn贝叶斯文本分类的坑
基本步骤: 1.训练素材分类: 我是参考官方的目录结构: 每个目录中放对应的文本,一个txt文件一篇对应的文章:就像下面这样 需要注意的是所有素材比例请保持在相同的比例(根据训练结果酌情调整.不可比例 ...
- 记一次项目使用webuploader爬坑之旅
因前端页面开发使用的为VUE开发,又要支持IE9,遂只有基于webuploader封装一个上传组件.地址:https://github.com/z719725611/vue-upload-web ...
- 记一次Socket编程踩的坑
闲来无事研究了下Socket,想用它做个简单的聊天室模型,结果踩了个坑,整半天才出来,惭愧啊,先上完成的代码吧 服务端: public partial class Form1 : Form { pub ...
随机推荐
- HDU 5704
题意:n个人参加一个游戏,每个人选择0-100范围的数.m为选择的所有数的平均数*2/3,选择的数<=m且距离m最近的人获胜,若同时有多人满足条件则随机抽取胜者.如果一个人选的数,比m小,且相距 ...
- Window修改git-bash默认路径
每次打开git-bash都默认到c盘,解决办法:修改git-bash的快捷方式 1. 删除目录后面的 --cd-to-home 2. 修改起始位置路径为你的项目路径 3. 还可以设置一个快捷键,在任何 ...
- nginx限制ip并发数
nginx限制ip并发数,也是说限制同一个ip同时连接服务器的数量 1.添加limit_zone 这个变量只能在http使用 vi /usr/local/nginx/conf/nginx.conf l ...
- 某些编辑器运行C程序闪退的解决办法
在某些C语言编辑器中运行C语言程序或点击生成的.exe文件出现闪退现象的解决办法,主要有两种,还有其它方法欢迎交流. 包含头文件<windows.h>,在程序末尾添加system(&quo ...
- linux下fifo,mq,shm
最近想为系统添加一个统计脚本,但是系统内的模块是有perl和java两种语言编写,且模块是通过crontab定时调用的,所以需要使用IPC传输信息. 第一个想到的是socket方式,感觉需要统一设定一 ...
- combobox默认值为第一个数据,修改为空值
以前用combobox的时候默认是空的,可是昨天不知道为什么,默认的居然为第一个数据,实在让人烦恼.百度了很多,有些人说默认本来就是为空的,而有些也和我一样默认是第一个数据. 我想造成这个现象的原因应 ...
- STL标准容器特征
一. vector vector类是一种顺序容器,可以看作动态数组,容器中的元素存放在连续存储区域. vector容器自动分配.释放.扩展.收缩存储空间,不需要使用new或delete关键字. vec ...
- SQL正则表达式
(转自:http://blog.csdn.net/xu1314/article/details/10174067) 当我们要进行一些简单的糊涂查询时用百分号(%),通配符(_)就可以了.其中%表达任意 ...
- 如何切换到自定义的Activity
一. 新建一个空的工程,并添加一个按钮 二.新建一个布局文件,命名为my_aty, 并添加一个文本 三.新建一个类,命名为MyAty,并重写onCreate函数 public void onCreat ...
- 2017.11.18 IAP下载(STM8,PIC,STM32)
客户要求用IAP下载,mark一下,客户还给了stm32的引导码.仅供参考. 1 PIC单片机的IAP 2 STm32 IAP https://www.cnblogs.com/WeyneChen/p ...