数据报表类系统测试

发表于:2014-9-01 11:22

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:玉浓    来源:51Testing软件测试网采编

  前段时间测试了一个数据报表类系统-VOC系统
  VOC:Voice Of Customer, 根据每天的电话求助量,机器人咨询量、人工咨询量、云客服咨询量等数据出发,关联到具体问题、产品、部门等信息上分析并展现出会员最大痛点。
  VOC 的数据报表的最终展现分为两个过程
  1、获取源数据并整合数据为最终表
  2、数据关联到问题、产品、部门后进行分析展现
  针对这两个过程,测试方法也分别两个步骤
  一、  获取源数据并整合数据为最终表-ETL过程
  实现方式:云梯、hive脚本、datax
  开发跟进业务需求了解原始表结构,编写hive脚本,“在云端”平台上运行,获取最终表,使用dataX工具将数据导入到线上数据库
  平台:在云端(内部系统)
  Datax:离线同步工具
  对应的测试方法
  1、最终表的正确性
  常见的测试方式:测试中间表的正确性、抽样或全量数据比对、hive脚本review
  因为voc对应的最终表的获取逻辑相对简单,所以选择的测试方式是hive脚本review,前提条件是要先了解各个源数据表的含义及结构,对原始数据表非常了解就很容易发现问题,尤其是一些特殊值的处理
  举个例子
create table if not exists r_yunong_rest ( #新建一个中间表
report_date         string,
prd_code            string,
question_code       string,
date_type           string,
value_type          string,
base_value          string,
gmt_create          string,
gmt_modified        string
) partitioned by (pt string)
row format delimited fields terminated by '\"'
lines terminated by '\n'
STORED AS TEXTFILE;
insert overwrite table r_yunong_test #表数据插入
PARTITION (pt='$env.lastPartition')
select  report_date,
prd_code,
question_code,
'D' as date_type,
'01'as value_type
count(case when sid is not null then sid when caseid is not null then caseid else null end) as  base_value,  #特殊字段的处理,验证重点
'$env.date' as gmt_create,
'$env.date' as gmt_modified
from r_test   #从另一个已创建的中间表r_voc_fact_question获取数据
where pt='$env.lastPartition'
and question_code <>'unknown'
group by  report_date,prd_code,question_code;
  这个过程中需要关注的问题
  1、     数据不完整
  2、     数据不准确
  3、     某些数据需要特殊处理,比如为null、为0的情况
  4、     发现原始表数据质量不理想,需要进行处理
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号