事情的背景:入职新公司刚满三个月,测试组六个人离职了四个···做业务功能测试的就我一个了。由于项目较复杂,我一直是边测边问之前的老员工,很多功能里面的数据流转 和后台交互并不清楚,
属于知其然不知其所以然的状况,刚好这次版本有迭代了l
发现的现象:系统中的人口管理中添加了人口(称之为实有人口)后,发现有些人口没有AID,有些人口有AID,只有AID的人口有实口绑定按钮。(AID是一个人的虚拟身份)
之前版本我了解的内容:只要监控设备抓拍到了人脸图片,系统会分配一个AID,在人口管理添加人口后,就能在人口档案详情页点实口绑定按钮,选择需要绑定的抓拍人脸,这里抓拍的人脸和添加的人口人脸相似度达到90%才能搜索到进行绑定。
绑定后,后面抓拍的该人脸的信息,自动存在人口上了,从而对该人口进行大数据分析。
到此为止我的疑惑是:1.为什么有些抓拍的人脸信息有AID,有些没有 2.为什么实口绑定按钮有些实有人口有,有些没有
解决办法:1.问产品AID和实有人口的关系
产品的回答是:绑定实有人口有自动和手动两种方式,只要添加了人口,实有人口信息界面无论如何应该都有实有绑定按钮,至于AID怎么生成的具体得问开发。
反正纠结了半天,没问出所以然。其实我对产品说得内容保持怀疑态度,据我之前测这功能的经验,上一个版本的实口绑定绝对只有手动绑定,根本不存在自动一说,因为之前不手动绑定的话,依赖的功能都用不了。
2.问前端,为什么有些实有人口有绑定按钮有些没有?
前端的回复:这个按钮是根据AidHas字段来的,接口返回的ture就有按钮,否则无。
然后我又问以前的设计是无论如何都有绑定按钮,产品也确认说有
前端回复:那加上也没用啊,没有AID的话,按钮点开是空白页。
到这里我没有和前端继续纠结 了,以前的版本没AID,绑定按钮点开确实也是空白页,我也觉得设计有问题,这里我只是找前端要到了返回AidHas字段的接口,然后去找到对应的开发。
插曲:在我趁着问他们的时间,我发现同一张人脸只要抓拍两次就会产生AID,一次是不会产生的。
3.问开发,这个AidHas字段什么情况下是ture?
开发的回复:只有实有人口和AID绑定了,这里就是ture。
矛盾来了,前端说接口返回AidHas是ture才能绑定,开发说要先绑定才能是ture······
然后我问了一句,代码是怎么判定人口有没有绑定呢?
这时候得到一个关键信息:开发说是查看的数据表A
一说到表A,我是有点印象的,之前老测试都在的时候,我问过得知人口绑定的信息就放在这里,我一查数据库数据很少,说明很多实有人口没有绑定Aid
我又问你知道这些表里的数据怎么来的吗?
开发说是定时任务生成的,这时候我想到xxljob定时任务系统,经过一番关键字查询,找到一个任务,直觉经验告诉就是它了,然后我手动执行了一下
再去查看数据库,多了很多数据,我再到页面一看,实有人口都绑定了AID。
我再查看任务历史的执行日志,发现任务都是每天早上六点准时执行,任务的功能就是将人口和AID进行绑定
结语:到此,问题基本弄清楚了。现版本绑定人口的逻辑是:添加人口后,抓拍到两次该人脸,抓拍的图片就会生成AID自动和实有人口绑定,完全不用手动执行了,只不过这个是每天早上六点执行绑定而已。
在开发了解的过程中,我还查到有个接口是查询相似人脸的,接口响应了查到了具体相似照片的地址,另外有一个type参数是-1,问开发才知道-1代表未绑定,0代表自动绑定,1代表手动绑定。
经过一连串的分析,本版本的实有人口绑定,根本不存在了手动绑定一说。
后续:不得不说下做测试难做,特别是面对复杂的系统时,不仅要知其然,还要知其所以然。开发也是只对自己的模块清楚,涉及到很多模块交互的时候,他们也只能互相推脱!常常就是你问A开发,A让你找B,B让你找C,C又说找A!