项目场景:
提示:这里简述项目相关背景:
项目场景:系统有一个拦截功能,通过设置可以实现基于版本号拦截APP【用户使用的版本<指定版本号】及基于登录账号拦截,强制用户去更新APP.。强制更新的场景:在开发过程中,遇到一些API及前端代码的改动,若用户不更新app,会使得前后端代码不一致导致异常,故需要根据上线内容确定是否设置拦截功能
问题描述
提示:这里描述项目中遇到的问题:
该功能代码一直未动,突然有一天部署UAT后发现这两种拦截方式都失效了。
原因分析:
提示:这里填写问题的分析:
1.版本号拦截失效原因:开发是基于数字个位数判断比较,最初设计约定的是版本号都是个数,比如V0.0.1,超过一位就升级为V0.1.0;实际开发过程中,因项目延续时间较长,中间有开发离职新入职,对这个约定已经忘记了。开发默许的版本号是基于上线功能来确定,当有bugixuf,则算小版本,每次最末位版本号加1.只有大的功能发布时,才算大版本,则中间版本号加1.所以导致目前上线的版本是V0.1.10,在设置拦截规则时:当版本号<V0.1.10时提醒用户强制升级。因为用户可能使用的版本是V0.0.9,最末尾数字位数不一致,导致拦截失败。
2.登录账号拦截失败原因:拦截功能是去年开发的,账号是基于登录的信息是否满足设置规则拦截。今年年初时我们优化了代码安全性,对账号信息进行了加密处理。当时加密后,测试了登录相关的功能,未考虑到拦截也和登录信息相关,加密后的账户信息,拦截未做揭秘处理,导致拦截失败。
解决方案:
提示:这里填写该问题的具体解决方案:
1.修改代码逻辑
2.对拦截API请求的登录信息进行解密后与设置的规则比对。【从测试角度来看,这类问题比较多,考虑去做一个功能关联图谱,避免后期问题改动影响被忽视的问题。】