• 【测试经验】Bug集锦


    一、重构时删除"无用"代码

    问题:

    某列表接口返回有图片链接数据,现发现原有链接的协议头缺失,导致在App端无法正常下载请求图片。

    原因:

    查看db中图片链接的数据源,db中存储的图片链接数据并没有带协议头;

    再排查App前端代码,是直接获取接口response中图片链接进行下载展示,没有拼接协议头操作;

    抓包查看生产环境该接口,接口返回图片链接带有协议头"https",故原来应该是在Api对图片链接进行过处理;

    但开发排查后发现该接口为透传调用依赖方service,service返回的图片链接并没有协议头,接口逻辑中未对response进行处理;

    我建议将代码切到release分支,使用“https”在代码中进行全局搜索,最终发现,Api逻辑中确实未对图片链接进行图片处理,但是在Model中图片链接字段get方法中进行了协议头拼接处理,

    但在接口迁移技改过程中,开发觉得原有get&set方法过于冗余,故将原有get&set删除,换为使用lombok@Getter、@Setter注解进行处理,也将图片链接协议头拼接逻辑删除,导致返回给C端的图片链接缺失协议头。

    二、使用异步操作优化性能

    问题:

    用户首次预约后,未自动绑定账号所对应的学生。

    原因:

    为使该接口的请求时间更短,故使用异步的方式调用的预约注册服务。

    当异步进行的注册操作未完成时进行绑定学生操作,会因查询不到学生信息而导致绑定失败。

    三、敏感操作未进行加锁,未考虑事务原子性,数据一致性

    问题:

    偶现实际购买次数>限制购买次数,消耗货币数量>发放货币数量。

    原因:

    1、没有考虑事务的原子性,要么都成功,要么都失败,并且扣减次数&货币的操作应该在发放商品之前

    2、没有进行加锁处理,导致并发处理情况下,还没进行扣减操作前,又使用未扣减前的状态进行了请求。

  • 相关阅读:
    C语言字母频率统计
    C语言文件操作相关函数
    【蓝桥杯】历届试题 回文数字
    【蓝桥杯】历届试题 蚂蚁感冒
    【蓝桥杯】历届试题 地宫取宝
    【蓝桥杯】历届试题 分糖果
    【蓝桥杯】历届试题 兰顿蚂蚁
    JDK的安装和配置
    【蓝桥杯】历届试题 错误票据
    【蓝桥杯】历届试题 带分数
  • 原文地址:https://www.cnblogs.com/6970-9192/p/11330486.html
Copyright © 2020-2023  润新知