这里的“数据流测试”,不是指的百度出来的,比较多讲到的结构性测试。
这里的“数据流测试”,指的是,通过写sql,检查数据在数据库中流转的测试。
数据流测试的好处
- 由表入里,知其然,知其所以然,理清逻辑,思路更清晰
- 通过写sql,执行sql,只关注筛选出来的数据,不用在表里面挨个挨个找,效率更高
- sql是可以多次复用的,节约bug回归时重复找数据的时间,排查更快
- 发现数据层面的bug,提高测试覆盖度
适用场景
有哪些常见功能会用到数据流测试呢?
- 查询
展现到界面上的数据,是如何从数据库中一层一层抽取查出来的。
每个表格字段,对应了数据库哪张表的哪个字段。
其中的数据转换逻辑和规则是怎样的。
这些都是数据流测试的范畴。其实这在一些公司称为“ETL测试”。 - 流程
显而易见,流程必然伴随着数据的流转。
每个流程节点,数据都有相应的变化。 - 增删
比较常规的测试,增加后数据存哪了,删除后改动了哪些数据,逻辑删除还是物理删除。
一般在功能测试用例中,也有体现的。 - 算法
算法其实质就是对数据的运算处理。
跟踪数据变化,能一步步复现算法步骤。
测试步骤
- 新建sql窗口
- 根据业务,找表找字段
- 写sql,写注释
- 保存sql文件
小技巧
- 找表找字段,有条件的话,可以捞应用sql,或直接看开发源码,更快速
- 不用把sql全部写到一个,join成一个大段sql,可以拆分成小步骤,每个步骤写段sql,手动传值,提高查询性能
产出物
做完数据流测试后,应产出一堆sql文件。
文件内容记录了查表比数的sql和注释。
注意事项
- 做好sql的注释,方便查看,不然一堆sql在那,看字母都要看半天。
- 不要一来就做数据流测试,而应先做黑盒功能测试,在功能测试过程中或之后进行数据流测试较好。因为数据流测试相对来说更费时,关注的是较底层的数据,需要理解数据含义。如果一开始就跟踪数据,看了半天,结果功能都跑不通,就因小失大了。