3

我目前正在开发一个商业智能(BI)系统,现在我想尽可能地创建一些自动化测试。

我不知道如何在这个 BI 项目上开发自动化测试。有没有人有过 BI 测试的经验?

我只需要这个测试的一些想法。

这是我的项目的简短描述。

  1. 我的项目将使用 talend 作为 ETL 工具从任何感兴趣的数据源查询数据到我们称为 ReportDB(MySql 方案)的数据源
  2. 从 ReportDB 中,我将数据导出为以下格式
    • 使用 Talend 作为导出和汇总数据的工具的 CSV 文件
    • 使用 Eclipse BIRT 作为导出和汇总数据的工具的静态 Web
4

3 回答 3

2

我也在调查类似的东西,但对于 MS 堆栈。

BI 系统的自动化测试似乎更难,因为代码往往更封闭或更难隔离。

我们已经完成/调查的事情包括:

  • 将代码移动到 DLL 等外部单元并使用测试适配器/线束对其进行测试
  • 将外部规则编码到测试工具中,测试源和目标数据库以捕获垃圾数据或无效转换等内容
  • 使用模型驱动的方法来统一构建公共方面——etls、表和多维数据集结构,并确保它们与测试模式保持完整性
  • 使用源代码控制来控制实时/测试/开发配置并添加测试以验证这些与所需方法是否一致。
  • 通过隔离查询生产者和消费者来使用通用组件构建报告

还有很多事情要做,这是一个进化过程。

于 2012-10-08T03:09:10.703 回答
0

自动化测试的一种方法是使用黑盒方法并定义一组输入记录,您有一组已定义的预期输出。然后,每次对 ETL 流程进行更改时,您都将验证是否保留了预期的输出。

您可以维护一个测试数据源或一组测试 csv 文件,具体取决于您的流程期望的输入类型。使用 Talend,您可以使用上下文变量来使您能够在生产和测试之间切换源,而无需重新编译流程。

要构建目标输出,您可以手动完成,也可以先在测试数据上运行该过程,然后逐行检查输出以验证它们。

然后,您可以实现一个相当简单的自动验证过程,将测试运行的输出与标准测试结果集进行比较。这将必须打开两个结果集并比较每一行和每一列的相等性。

这会给您的项目增加一些开销,因为对于添加到流程中的每个新列,您需要将该列添加到测试输入和自动验证中。但是,您可能会争辩说,这种额外的开销降低了导致数据问题的错误的风险。

于 2012-10-29T08:41:11.453 回答
0

您可以使用 Selenium WebDriver 在静态报告页面上运行集成测试。为您的报告预定义数据。运行 Eclipse birt 并让 selenium 在浏览器中访问报告。编写 selenium 测试以验证页面上是否存在预期数据。

于 2012-10-30T23:53:00.880 回答