在线上使用测试账号把某个字段清空,然后由于程序原因,把客户账号的字段也清空了
首先,BUG 描述写的再清晰些
遇到过类似的,正式环境,接口测试,删除操作
背景:前置接口返回要删除的条目 ID,后置接口使用进行删除,
结果:前置接口出错没拿到 id, 后置接口直接进行删除,全部数据都没了
处理方法:查日志,确认接口测试时间点,联系 dba 恢复数据,之后和开发确认问题原因,
1、开发接口增加限制条件
2、调整接口测试,报错停止运行,关注关键字段
使用多个测试账号测试
单从描述讲,测试环境应该也能测出这个问题。 还是特殊场景下才会误删?
接口用例加入清除字段,然后检查相关字段
看起来像是开发,代码逻辑有问题,既然发现这种,就要举一反三,后面测试功能的时候,都要写一条用例,专门测试,删除一条数据,能不能把全部数据给删了,或者是有那种全部删除的,删除一个系统的,会不会把其他系统也给删除了。
这接口的设计也有问题吧,不传 id 就全删,怎么有这种设计方案?
尽量不在生产环境做测试,风险太高。像银行业那样,搞一套准生产环境,从生产环境导入数据做测试验证。
研发侧也需要考虑, 怎么避免全删,要拦截这种操作。
那你不验证有没有问题,一旦到线上,生产事故,而且这种删除的话,如果是真删,不是假删,后果就更严重了,数据都找不回来。而且后端开发,理论上不应该出现这种低级错误,既然出现了,后面也会出现。
开发没有加用户 id,这是开发该避免的
建议开发进行 假删除(删除标志位)