如何在商业智能系统(BI)中执行自动化测试

时间:2012-10-08 02:54:30

标签: automated-tests birt business-intelligence talend

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

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

我只需要对此测试有所了解。

这是我项目的简短描述。

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

3 个答案:

答案 0 :(得分:2)

我也正在研究类似的东西,但对于MS堆栈。

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

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

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

还有许多工作要做,这是一个渐进的过程。

答案 1 :(得分:0)

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

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

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

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

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

答案 2 :(得分:0)

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