印象深刻的Bug(第一弹) -- 都是空格惹的祸

测试:

    当时测一个功能,登录页面强制绑定手机号,手机号去重逻辑简单描述为不能重复(实际上逻辑要复杂,这里简单理解为去重)

现象:

    强制绑定,校验手机号时,有时候去重逻辑正常,有时候去重逻辑又不对(即某个账号能绑定已使用的手机号)

排除思路:

    假定某个账号已经绑定了手机号:phone1

    1、新拿一个账号,触发强制绑定。获取验证码时,F12查看前端请求,请求中没问题,手机号确实是已经使用过的手机phone1

    2、验证码。手机号phone1收取验证码也是成功的

    3、输入验证码,确实新账号强制绑定phone1绑定成功了,这样就有两个账号都使用了相同手机号

    4、开发查日志,日志中,打印手机号确实是 phone1,在代码计算是否重复时,返回的确是空,即手机号没重复,导致绑定成功了

    5、重复 1~4,这次绑定失败,提示手机号已重复,开发查看日志,日志中,打印手机号确实是 phone1,在代码计算是否重复时,返回是 phone1,导致绑定失败

    6、多次重复 1~4,有时候能绑定成功,有时候有绑定失败并提示手机号重复

陷入困境:

    我操作一步,开发看一步日志,没发现啥问题,现象还是存在...暂时记录了一个偶发性 bug

峰回路转:

    几天后,测试一个输入框时,复制了一个文本,发现有时候提示:不能有空格(输入框有校验,不能带空格)。 我发现有时候文本前面或者后面有个空格,突然就想到前面的问题,是不是有空格导致的

    说干就干,于是我输入手机号的时候,在 phone1 前面/后面带个空格,果真就正常绑定了,不带空格,就提示手机号重复

破案了:

    复制手机号的时候,不知道为啥前面或者后面有时候会带一个空格,导致校验失败。

    回想一下排除步骤,由于空格在前面/后面,真没发现手机号后面带了一个空格,后续有了怀疑后,选中手机号字段,发现后面还真带了一个空格;获取验证码的代码,开发对传入的手机号,去掉了前后的空格,故获取验证码没问题;开发的日志,没有把手机号前后的空格展示,故查日志也没发现问题

结语:

    测试时一定要注意空格!一定要注意空格!一定要注意空格!

    

posted @ 2023-07-23 16:13  Lipx9527  阅读(79)  评论(0编辑  收藏  举报