干货资讯
售前热线 400-800-2210

售前客服

售后热线 400-800-2210

售后QQ 售后旺旺

软件测试的修炼之道上,如何做好报表测试?

标签: 软件测试 作者:广州大麦 2018-08-31


文章导读:

在一个研发项目团队中,很多人(包括我)的第一印象都会觉得:测试比做产品、开发简单得多。在接触了测试近一年的我想说:在这个世界上,你想把任何一件事做好、做到极致都没那么容易。诚如:如何做好报表测试?

正文:

所谓的报表,就是在已有数据的基础上,经过各种加工、汇总,而呈现出来的数据结果,而报表测试则是鉴定报表的正确性、完整性、安全性和使用质量的过程。不多说,直奔主题吧,下面就结合前人的经验以及个人心得来说说如何做好报表测试:


首先,提高业务的熟悉程度

和功能测试以及其他测试一样,报表测试也需要熟悉业务,不同的是报表测试要理解每个指标的算法、数据来源以及要明白具体的业务动作和指标之间的关系。

熟悉业务是极为必要的,因为在设计测试用例前,你需要在需求文档中了解并确定以下的信息:

1、指标的设计是否符合业务场景或真正的业务需求;

2、统计指标是否需针对异常数据的情况,做异常处理;

3、用户访问的频率、使用习惯等情况,以便后面做性能测试时的用例设计;

4、需求提供者有无以往的手工数据或历史数据可以作为核对标准?如果有,最好请产品人员提供。

熟悉业务后,就可以进行用例设计了。


报表测试的六大用例设计点:

一、数据的正确性

对于用户来讲,使用报表就是希望通过报表快速简单地查到自已所需要的数据,所以测试报表最主要的内容就是验证数据的正确性:

1、数据来源是否正确。针对产品提出的指标,确认和需求是否是同一个数据源。一般来说,数据源大致分为两类:一是本系统产生的数据;二是从第三方同步过来的数据,需要核对需求中需要的数据,本系统是否已经同步过来,同步是否符合要求。

2、数据范围是否对应。是否只显示了报表设置的对应范围,并且考虑需求中是否包括统计区间的边界值。

3、指标的特定条件是否满足。前提是要弄清楚,所测报表的指标中,是否有特定条件,这个特定条件是什么,报表数据是否满足该特定条件等。

4、明细与合计是否一致。即报表的各部分明细值之和,是否和合计值一致。

二、报表的权限控制

   考虑到数据的安全性,对报表进行权限控制是很有必要的。

1、确定报表是否有针对不同用户角色,设置相应查看权限的需求;

2、不同的用户角色,其查看权限是否正确;


三、报表格式的显示

特别是对外使用的报表,需要关注输出报表的显示格式是否符合客户需求:

1、报表的标题或者表名是否正确;

2、报表的整体显示格式是否符合客户提供的表样;

3、数据显示格式或误差是否与需求保持一致,如小位数、百分号、单位、汇率等;

4、报表页面的时间段是否用户选择的时间段;

5、当输出的内容过多时,分页方式是否正确;翻页时,是否有与上页相同的样式,第2页输出是否正确;

6、需要特别提醒的数据(一些异常数据)是否突出显示;有些指标计算方法特别或某些指标容易混淆的情况下,页面是否有加注释;

四、报表功能的使用

1、各个指标的组合筛选查询是否正常;

2、输出功能,如导出PDFexcel等使用是否正常;

3、打印设置、打印效果等是否正常;

4、分页,或分布导出等是否如常;

5、导常情况下的使用等。


五、性能

   测试的前需要了解的信息:用户访问的频率、使用习惯、数据范围等。

1、数据范围大小;

2、筛选查询的响应时长;

3QPS(即每秒的响应请求数)。

六、数据的有效性

1、当数据源有实时数据入库时, 相关报表类的展示多久统计出来?

2、是实时还是会有延缓?延缓多久?

3、数据延缓对指标有何影响?

报表测试的很大关注成分在于数据,那么,测试中对于数据的设计呢?

报表测试三大数据设计点:

一、有效数据

有效数据,顾名思义,是指既符合前台业务规则,又符合统计规则的数据。它们会被统计进报表中,对报表的统计值会产生正面的影响。

二、无效数据

无效数据,属于统计规则以外的数据。此类数据,符合前台业务规则,但不符合报表统计规则,即对报表的统计值不会产生任何影响。

三、异常数据

    异常数据,主要目的是用于检验报表系统对数据的容错能力。此类数据不符合前台业务规则,对报表的统计值会产生负面影响。最常见的场景是,统计值的分母为零。

这类数据的设计,更多地应用于报表系统与业务系统分离的情况中。当报表系统与业务系统互相统一时,异常数据会受到前台业务规则的限制,即异常数据连出现的可能也没有;在报表系统和业务系统分离的情况下,异常数据就很有可能由于数据传输的不同步,造成短时间的出现,此时报表系统对于错误的处理机制就显得非常重要了。


除了针对以上3类数据的设计以外,我们在设计报表测试数据时,还需要注意以下几点:

1、保证场景间测试数据的独立性

这是为了保证数据可控而要注意的。如果一组数据的已经在某个场景被使用过了,就不应该再把这组数据应用到其他的场景中,否则一旦出现测试结果与预期结果不一致,就会提高查错的难度。况且保证数据的独立,可以更好地阐述缺陷,保留缺陷现场,等待开发人员来解决。

2、数据的多样性

多样性是指为同一个场景准备多组测试数据,因为凭借不同数据才能更好地接近真实,更容易发现问题。

3、空报表

所谓的空报表,就是指在报表查询条件下,没有相符的源数据,从而造成报表中的统计值为空。这样的测试,是为了确保报表的正确性,检查报表统计是否有张张冠李戴的现象。

4、注意数值的设计

这里所说的数值,是指统计值。 

例如,统计值是百分比时,我们需要覆盖最大值(100.00%)、最小值(0.00%)、中间值(如38.01%)、小数位检查(99.99%)。除了这些,我们还需要考虑负数、百分比超过100%、小数位的四舍五入等情况。

5、不同报表间的对照

同一组数据在不同报表中的表现应该是一致的。

例如,在合同表中,合同总金额是1万元;然而在协议表中查询该合同所创建的协议总金额是15千元,那么,这意味着肯定是其中一份报表出现问题了。

6、历史数据的设计

历史维度也属于测试的一个重点。历史维度的测试,涉及到历史数据的设计。 

例如,OA中的,A4月前在市场中心,5月起调到了营销中心,那么5月后A君的业绩是否仍计算在在市场中心?等等。

总结:

    以上,关于报表测试的一些汇总。其实这大部分是一些测试前辈的经验了,刚踏上修炼之道的我实在不敢造次,但也知道:不管是一万小时定律,还是厚积薄发,当你把知识累积到一定程度的时候就会发现,原来,软件测试的世界也可以这么有意思。

文章参考:

ü  CSDN博客:如何测试报表