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

Automated tests 如何在商业智能系统(BI)中执行自动化测试,automated-tests,birt,business-intelligence,talend,Automated Tests,Birt,Business Intelligence,Talend,我目前正在开发一个商业智能(BI)系统,如果可能的话,我想创建一些自动化测试 我不知道如何在这个BI项目上开发自动化测试。 以前有过BI测试的经验吗 我只是需要一些关于这个测试的想法 这里是我的项目的简短描述 我的项目将使用talend作为ETL工具,从任何感兴趣的数据源查询数据到名为ReportDB(MySql方案)的数据源 从ReportDB中,我将数据导出为以下格式 使用Talend作为导出和汇总数据工具的CSV文件 使用EclipseBirt作为导出和汇总数据工具的静态Web 我也在

我目前正在开发一个商业智能(BI)系统,如果可能的话,我想创建一些自动化测试

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

我只是需要一些关于这个测试的想法

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

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

  • 我也在调查类似的事情,但对于MS堆栈

    BI系统的自动化测试似乎是一个相当困难的问题,因为代码往往要么更封闭,要么更难隔离

    我们所做/调查的事情包括:

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

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

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

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

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

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


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

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