做数据测试时,有黑盒测试和白盒测试,其中黑盒测试就是通过查询语句,检查目标表的表结构是否与设计文档一致,主键是否唯一非空,有无异常值,极值是否超出正常范围,枚举值检查数据是否合理分布,对应字段和字段内容是否一致。白盒测试就是检查开发老师的源码,字段信息(字段长度,最大最小值,异常值),字段拼接是否有空是否去重,数学计算要考虑分母为0的情况,null值,计算单位是否统一等,默认值设置是否合理,关联约束条件时,关联条件约束和where条件约束,是否符合需求文档、口径。
- 风格1可以单个字段新建子查询,然后left join。子查询里查询主键+加工的字段
- 风格2可以将每个子查询都新建一个临时表格,最后构建大宽表时,可以left join多张临时表,这种思维更加清晰,更符合编程思维,一个小模块一个小模块的解决问题
- 风格2强调主表,主表的条数与目标表一致,null值置空(coalesce)。这里的主表字段可以少一点,比如简单的客户号。其他临时表,可以有多个字段
- 步骤一,union之后字段条数对不上
- 步骤二,一个字段一个字段对比,检查出条数不一致的字段
- 步骤三,提取不一致的字段下面的某些行数据,对比目标表和测试表,找出差异点,返回主键(客户号)
- 步骤四,根据主键,找出目标表,测试表,以及源表中的相关数据,进行对比
步骤一
方法1:大体上看条数是否一致
方法2:找出不一致的
步骤二
一个字段一个字段对比,看条数是否一致,a表与b表中的字段1/字段2条数是否和目标表一致。
方法1:
union 个数与单个表个数一致,就表示两张表字段内容与个数都一致。union有去重功能,union all不去重。
方法2:
对比不同时,获取到(主键)
步骤三
- 方法1:目标表与测试表,通过字段2(主键)左连接,对比字段1是否相等
这里where后面的字段限制条件,还可以添加一些,
- 方法2:子查询替换上面的目标表和测试表
- 方法3:下面可以看出同一个字段在不同表里的一些情况,同一列下面,我多的是哪些行。
步骤四
将步骤三中返回的主键(客户号、字段2),字段2下面的具体参数提取出来,在目标表,测试表,源表中对比数据
- 如果字段1等于消费,就返回字段2,
否则返回0,对返回结果求和,作为字段3 - 去掉字段前后空格
- 来判断字段是否为空
- 如果字段不为空,则返回1,等同于if函数
- 如果字段不为空,则返回1
- 如果字段为null值,则返回1
- 如果字段表达式为空,则返回1
- 返回第一个不为空的参数值
- 删除末尾的‘号’字
- 从第1个位置开始截取10个字符(从左向右)
- 返回字段长度
- 置空
- 将字段1的字段类型转化为varchar(30)
- 等同于单元格下拉框效果
- 日期增加函数
- 返回日期部分
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/1481.html