上周我们产品环境在分库后碰到一个奇葩的问题:存在一定概率,分库的查询会连到主库,结果因为找不到数据就出错了。同样的数据,可能再查又没有问题了。
分库相关测试我参与了,测试期间我从没有碰到过这种灵异事件啊!
多亏了我们机智又有责任心的克斯发现了端倪:可能和连接数有关。于是,他设计了以下场景,让大家一起人肉并发:
1.大家都用主库账号打开一个单据的历史记录页面待命
2.找一个人用分库账号打开一个单据待命
3.大家都做刷新当前这个页面的动作,看看分库那个账号会不会出现走错库的问题
结果,妖孽的bug重现了。能重现的bug都是好bug。当天立马修复并测试,第二天一早就上线了。
今天看《全程软件测试》正好看到一个关于这个做法的书面术语:消防测试(Firedrill Test)。它是指在公司内部,约定某个时间段,大家同时进行各种操作,以发现在大负荷、多任务互相影响情况下的问题。
不用这种方法,单个测试人员真的无法捕捉到这种缺陷呢。这个案例告诉我们:以后复现bug的思路可以打得更开一些,考虑一下并发的影响。
网友评论