正如Jackie在《进销存系统中的报表测试》中所言,在报表中,我们很难直观地通过某个数据项,看到它的算法和数据源。在报表测试用例设计中,第一步就是分析报表的数据源和算法。

不同业务报表之间的区别是很大的,特别是在不同行业之间。在分析报表前,首先,我们要提高对业务的熟悉程度。对于某些系统,如计费系统等统计精度较高的系统,我们甚至需要达到精通的程度。那么,是不是报表的分析就全无规律可循呢?不是的。下面将介绍我在分析报表时惯常使用的几个切入点,希望对大家有一定的启发。

 

1 源数据的来源

源数据,即保存在报表数据库中的数据。源数据的来源,大致可分两大类:

A 由业务系统生成

报表数据库中的数据是由前台业务系统插入的。报表系统和业务系统是关联着的,甚至它们根本就在使用同一个数据库。如此一来,前台的操作即直接反应在报表的统计值上。在这种情况下,我们测试用例的设计,重点放在影响报表统计值的前台业务场景的设计上。

例如,某点播系统中的点播率报表,其报表统计值有效点播次数的源数据,就是点播业务所关联的点播数据库表。在测试用例设计中,我们重点考察不同场景的点播对报表统计值的影响。而场景的设计除了考虑前台业务规则外,更重要的是考虑报表的统计规则。如例子中,有效点播次数的统计规则是,视频购买后1分钟内的重复点播不计入有效点播次数中。这样一来,场景的设计就不能只是点播一次和点播多次这么简单。

B 来源于第三方数据库

有些报表系统与业务系统是分隔的,各自独立的。这样的设计,更多地出现在大型系统中。如此设计,既可以确保业务系统和报表系统各自的性能,又可以提高报表系统的扩展能力,即使用一个报表系统对不同业务系统的数据进行整合和分析。当然这个设计也有不足之处,即报表的实时性。

在这种情况下,测试用例设计的重点应该放在报表数据库源数据的设计上,重点考察第三方数据到报表数据库传递的正确性,源数据的完整性,以及不同业务源数据的相互影响。

 

2 报表的算法

算法,是指源数据演变成统计值的过程。报表的算法应详细清晰地记录在Functional Specification中。根据算法的复杂程度,我将报表划分为三大类:

A 罗列式

罗列式报表是将源数据根据规则进行罗列,不涉及任何计算,如话费清单、销售清单等。对于此类报表,测试的重点在于:

·         罗列项的完整性,即FS中所规定的源数据的属性项是否列举完整;

·         列举数据的正确性和完整性;

·         数据属性变动对报表的影响,如,修改客户地址后,报表是否能正确地显示客户的最新地址;

B 统计式。

统计式报表是指,统计值是由单个源数据简单的加或平均得来的报表。此类报表,我们可以采用增量的方法来测试。

例如,前面所举的有效点播次数统计值。应用增量测试方法,就是在执行不同的场景后,检查报表的统计值是否在原来的基础上有对应的增减。

使用增量的方法来测试报表,既可以避免复杂的数据设计,又可以提高测试效率。但是增量测试方法的使用范围比较狭窄,对所测试的统计值要求不能太复杂。

C 算法式

算法式报表是指,统计值是由一个或多个源数据根据一定的公式得来的报表。此类报表中的统计值,涉及到多表数据,多业务流程,是报表测试的难点。

在设计此类报表的测试用例时,建议理清以下两点:

·          统计值所关联的源数据;

·          源数据关联的业务规则;特别注意,源数据受多个业务规则共同影响的情况。

 

    在报表分析过程中,大家除了可以参考我上面的几个切入点外,还可以使用小组brainstorm的方式,来列出尽可能多的测试要点。然后再将要点梳理,这样,报表测试用例的基本框架也就形成了。框架形成后,接下来我们就需要基于框架对测试用例进行细化和补充。

posted on 2011-02-26 16:46  Carrie  阅读(3177)  评论(1编辑  收藏  举报