浅谈 Symphony Spreadsheet 在报表测试中的应用

本文将从一个测试人员的角度,以满足测试为原则,通过例子向读者展现 Symphony Spreadsheet 在报表测试中得应用。读者通过阅读本文,可以学习到 Symphony Spreadsheet 简单公式的书写,以及一些使用技巧,可以快速的运用到报表测试中,降低测试复杂度,有效提高测试结果准确性。

王 霄, 软件测试工程师, IBM

王霄 , IBM 软件工程师 , 曾从事 PHP 和 Curl 在 IBM Z 上的测试工作 , 以及 Lotus Connection Forum 测试 , 现在 GPS 从事 S2P 解决方案及 Project10X 解决方案测试。



孙 羿, 软件测试工程师, IBM

孙羿,IBM 软件工程师,曾从事 Lotus Notes 的测试,现在 GPS 从事 S2P 解决方案测试以及 Project10X 解决方案测试。



都 君怡, 软件测试工程师, IBM

都君怡,IBM 高级软件工程师,现在 GPS 从事 SDM 解决方案的测试以及 SDM 自动化测试工作。



2012 年 7 月 05 日

报表测试中常见数据对比

在 ERP 和 BI 项目测试过程中,对报表数据进行校验是非常有必要的,常见的数据对比场景如下:从系统导出的 Excel 格式的报表数据,然后再给一份业务数据的源数据,要求校验报表数据是否正确。报表的数据量通常都非常庞大,这些数据通常都是通过聚合汇总以及其它逻辑运算得出的结果,源数据量也很大,源数据和报表数据的条数也不一定相等,而且源数据通常会有很多张表,仅仅是通过肉眼观察源数据和报表数据是否一致,会导致测试工作量巨大,效率低下,风险不易控制。

那么接下来就一起探讨怎么样利用 Symphony Spreadsheet 3.0 里提供的功能来解决上面场景所提到的一些问题。


Symphony Spreadsheet 基础知识

报表是对源数据经过逻辑加工后的展现,在测试分析和设计阶段,拿到开发提供的报表设计文档,通过查看报表数据的计算逻辑,验证计算逻辑是否符合需求文档等。要完成上述任务 , 需要对电子表格的单元格表示以及单元格引用的有一定的了解,如下图。

图 1. Symphony Spreadsheet 基础
图 1. Symphony Spreadsheet 基础

Symphony Spreadsheet 实例

具有电子表格的基础知识后,接下来介绍如何使用 Symphony Spreadsheet 的高级数据处理功能来校验报表数据。

功能 1 —— 分类汇总

在报表中对数据进行各种汇总计算很常见,例如:对年度销售情况进行分析评价和考核中要考察不同区域的销售业绩,需要按照区域汇总;要分析不同产品的销售情况,需要按照产品编号进行分类汇总;要分析不同部门的销售情况,则需要按照部门进行分类汇总。当遇到这类场景,可以利用 Symphony Spreadsheet 提供的分类汇总功能完成校验报表数据。

在使用分类汇总之前需要确定如下两个问题

  1. 源数据的分类依据
    由被测报表的分类依据确定。常见的例如:年份,区域,部门,供应商等。
  2. 源数据的汇总对象
    由被测报表确定。例如:销售金额,采购金额,数量等。

分类汇总实例:按照年份和供应商对采购金额进行计算。

在此实例中的分类依据即是“年份”和“省份”,需要对“金额”进行汇总计算。

图 2. 分类汇总
图 2. 分类汇总

1st Group:分类依据是“年份”,对于年份不需要计算,所以在选择“Calculate subtotal for”时选择“年份”,在相应的“Use function”中选择“Average”即可。

在第二组选项中的“Group by”中选择“省份”,在选择“Calculate subtotal for”时选择“金额”,“Use function”中选择“Sum”, 然后单击“OK”,就能看到如下图的一个嵌套了省份和年份的采购记录表,可以与报表数据直接对比。

图 3 分类汇总结果
图 3 分类汇总结果

功能 2 —— 数据合并计算

如果给出的源数据有多张电子表格,首先要将源数据进行合并计算然后才能和报表数据进行对比。对于需要合并的源数据 , 必须保证它们 :

  1. 每个源数据区域都为列表数据。
  2. 根据分类进行合并时 , 要确保待合并的各个区域中的行或者列标题具有相同的拼写,保证能够完全匹配。
  3. 如果按照行标签或者列标签进行合并计算,则标签必须包含在选定的源数据区域中

数据合并计算实例:校验每个省 2011 年的采购金额。

首选过滤出 2011 年的采购数据,保存为电子表格格式,如下图(图 4,图 5)。

图 4 合并计算源数据 1
图 4 合并计算源数据 1
图 5. 合并计算源数据 2
图 5. 合并计算源数据 2

从主菜单中选择“Data -> Consolidation”,弹出合并计算对话框,分别选择需要合并计算的源数据,然后添加到合并范围区域,单击“OK”,进行合并计算,如下图(图 6,图 7)所示。

图 6. 合并计算选项
图 6. 合并计算选项
图 7. 合并计算结果
图 7. 合并计算结果

其它应用

要完成数据的分类汇总与合并计算,还可以使用数据透视图的功能,可以参照其它文章。

利用分类汇总或数据合并计算或透视图功能仅仅是将源数据加工成与报表格式一样的电子表格,数据量仍然很大,如何对比用源数据制作的电子表格和从系统导出的报表呢?可以使用 Symphony Spreadsheet 提供的公式 VLOOKUP 完成。

VLOOKUP——纵向查找函数,最终返回该行所需查询列序所对应的数据。该函数有四个参数。

参数 1: Search criterion

要查找的值。在电子表格中,最好这个值能够唯一确定改行的数据,如果不能,则可以使用多个字段的联合来确定该值。

参数 2: Array

要查找的区域。

参数 3: Index

返回数据在区域的第几列。

参数 4: Sort order

如果是 true 或者为空,则查找区域按升序排序,取相似值;0 或者 false 则为精确查找的必备条件。

图 8. VLOOKUP
图 8. VLOOKUP

VLOOKUP 实例:两张一样的采购电子表格数据,在不知道数据是否一致的情况下,如何确定这两张报表的金额一样呢?如下图:

图 9. 采购电子表格
图 9. 采购电子表格

首先可以插入一列数据,数据为 A2&B3&C2,并应用到该列其它行,调整后截图如下:

图 10. 插入新列的采购电子表格
图 10. 插入新列的采购电子表格

再新建一列,插入 VLOOKUP 函数,输入相应的参数后确定计算数值,并且应用到该列的其它行,如下图:

图 11. 使用 VLOOKUP 查找数据后
图 11. 使用 VLOOKUP 查找数据后

复制数据以后,如果数据量非常大,仍然难以对比,可以借助公式完成对比。如下图:

图 12. 加入 IF 函数后
图 12. 加入 IF 函数后

在“图 12 加入 IF 函数后”中,如果 E 和 F 两列数据相等在在 G 列相应行输出 1,否则输出 0,然后再利用过滤功能,就可以清晰的看出两张电子表格的金额是否相等。


结束语

此文章不是一篇 Symphony Spreadsheet 的详细使用手册,而是为报表测试人员提供了一种思路和工具,思考为了使测试过程变简单,我们应该采取什么样的手段。希望可以帮助你提高工作效率。

参考资料

学习

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Lotus
ArticleID=824298
ArticleTitle=浅谈 Symphony Spreadsheet 在报表测试中的应用
publish-date=07052012