报表测试心得
最近一直在做web端的报表测试,把自己测试的点滴记录下来,以后做个参考吧。
一、背景
目前的项目是web端,采用的是水晶报表(嚓,这个水晶报表问题真多啊,各种显示问题,导出成excel样式那叫一个乱,辛苦了俺们的程序猿们,O(∩_∩)O哈哈~)
二、基本的测试思路
1. 分析报表中涉及的业务 (也就是这个报表中的数据从什么地方来的),比如下面的报表
![](https://images0.cnblogs.com/blog/785080/201507/141400076267879.png)
这个报表涉及到以下几个业务:
(1) Shipment --> 上面的Vessel / Jetty 来自这个模块
(2) Order --> 报表中的Product / Nomination No来自这个模块
(3) Bill ---> 报表中的OBS / NETT / MTON来自这个模块
(4) Doc --> 报表中的CQ Date来自这个模块
2. 分析完具体得业务之后,我们要确定报表中的这些字段 对于那些数据中的表字段
![](https://images0.cnblogs.com/blog/785080/201507/141400092205593.png)
3. 接下来,我们要分析这些业务直接的关系
(1) 分析主次关系 (比如:我们的项目里面shipment -> order -> bill -> doc, 在此表中数据不存在的情况下,主表的数据是否正常显示,
比如:上面OBS / NETT /MOTNS 可能暂时还没有数据的情况,主表的数据是否能在报表中显示,从表数据显示为空)
(2) 分析一对多 还是一对一的关系 (比如,我们项目里面一个shipment对于多个order,一个order对于多个bill和doc)
(3) 分析不同模块间数据的关联和依赖关系。
(4) 分析报表中涉及的计算 (数据是否为空、汇总、除0等)
4. 确定查询条件和具体得业务范围(可以根据业务编写相应的sql数据 进行查询)
比如: 这个报表里面只涉及Loading Order中的bunker业务类型( Loading order 有三种业务类型)
5. 构造查询数据
6. 生产报表
7. 查看报表的显示内容、显示格式、排序、分组等
7.1 数据太长了会出现和其他数据重叠的情况,这个是否可以选择做换行或者强制截断处理,但是变态的水晶报表,做截断处理之后
导出成excel或者word的时候数据也是截断的,这个是不允许的 (客户通常可能不会直接打印出来,而是先导出成excel,然后重新编辑),
这个时候可能的方案:
(1) 让开发通过js强制控制
(2) 做成换行 (换行之后导出成excel也会出问题,需要重新调整报表。。。。。,太变态了)
7.2 数据格式:
(1) 货币符号 (我们做的是一个新加坡的项目,因此货币符号是$,这个可以直接写死 或者做成国际化自适应)
(2) 数据格式 (注意四舍五入,目前的四舍五入有两种,一种是>=5进1,还有一种是“四舍六入五考虑,五后非零就进一,五后为零看奇偶,五前为偶应舍去,五前为奇要进一”,.net里面默认是第二种,成为银行家法则)
![](https://images0.cnblogs.com/blog/785080/201507/141400102823934.png)
(加上这个类型之后就是默认的第一种:四舍五入规则)
(3) 计算过程 (涉及多个数据参与计算的时候,是每个数据都计算完成并且四舍五入,还是直接计算,最后的结果再四舍五入,
这个需要问清楚,而且是个很重要的问题)
8. 最后查看报表预览和打印/导出是否一致
(1) 预览的数据内容以及格式要和打印出来的一致
(2) 导出成excel 或者word文档时:
a. 内容正确
b. 要求可以比较容易进行表格的合并或者编辑操作
9. 检查报表的翻页功能 以及 翻页之后表头、内容、翻页索引是否正确。