数据集成过程与任何其他软件一样受益于自动化测试。然而,找到一个具有一套合适的自动测试的数据管道项目是罕见的。即使一个项目有很多测试,它们通常也是非结构化的,不传达其目的,并且难以运行。一个特点数据管道开发是频繁发布高质量数据,以获得用户反馈和接受。在每次数据管道迭代结束时,预计下一阶段的数据都是高质量的。自动测试对于数据管道的集成测试至关重要。在高度迭代和适应性强的开发环境中,手动测试是不切实际的。手动数据测试的主要问题首先,它花费的时间太长,是管道频繁交付的关键抑制因素。主要依赖手动测试的团队最终会将测试推迟到专门的测试期,允许错误积累。其次,手动数据管道测试不足以进行回归测试。数据管道测试的自动化需要初步规划和持续的勤奋,但一旦技术团队采用自动化,项目的成功就更有保证。数据管道的变体提取、转换和加载(ETL)提取、加载和转换(ELT)数据湖,数据仓库管道实时管道机器学习管道用于测试自动化考虑的数据管道组件数据管道由几个组件组成,每个组件负责特定任务。数据管道的元素包括:数据来源:数据的来源数据摄取:从数据源收集数据的过程数据转换:将收集的数据转换为可用于进一步分析的格式的过程数据验证/验证:确保数据准确和一致的过程数据存储:将转换和验证的数据存储在数据仓库或数据湖中的过程数据分析:分析存储数据以识别模式、趋势和见解的过程自动化数据管道测试的最佳实践什么以及何时自动化(甚至如果您需要自动化)是测试(或开发)团队的关键决策。为自动化选择合适的产品特性在很大程度上决定了自动化的成功。在自动测试数据管道时,最佳实践包括:定义明确而具体的测试目标:在开始测试之前,必须定义您希望通过测试实现的目标。这样做将帮助您创建有效、高效的测试,提供有价值的见解。测试数据管道的所有工作流程:数据管道通常由几个组件组成:数据摄取、处理、转换和存储。重要的是要测试每个组件,以确保数据通过管道的适当和平稳流动。使用可信的测试数据:在测试数据管道时,使用模拟现实世界场景的现实数据很重要。这将有助于识别处理不同数据类型时可能出现的任何问题。使用有效的工具实现自动化:这可以通过测试框架和工具来实现。定期监控管道:即使在测试完成后,也必须定期监控管道,以确保其按预期工作。这将有助于在问题成为关键问题之前识别它们。让利益相关者参与:让数据分析师、数据工程师和业务用户等利益相关者参与测试过程。这将有助于确保测试对所有利益相关者都具有相关性和价值。维护文档:维护描述测试、测试用例和测试结果的文档很重要。这将有助于确保测试可以随着时间的推移进行复制和维护。小心;应避免自动更改不稳定特征。今天,任何已知的业务工具或一组方法/流程都不能被视为数据管道的完整端到端测试。考虑您的测试自动化目标数据管道测试自动化被描述为使用工具来控制1)测试执行,2)将实际结果与预测结果进行比较,以及3)设置测试先决条件和其他测试控制和测试报告功能。一般来说,测试自动化涉及使用正式测试过程的现有手动过程自动化。虽然手动数据管道测试可以揭示许多数据缺陷,但它们既费力又耗时。此外,手动测试在检测某些缺陷方面可能无效。数据管道自动化涉及开发测试程序,否则必须手动执行。一旦测试自动化,它们可以快速重复。对于使用寿命长的数据管道来说,这通常是最具成本效益的方法。在管道的生命周期中,即使是小的修复或增强也可能导致之前工作的功能中断。在数据管道开发中集成自动化测试带来了一系列独特的挑战。当前的自动化软件开发测试工具不容易适应数据库和数据管道项目。各种各样的数据管道架构使这些挑战进一步复杂化,因为它们涉及多个数据库,需要对数据提取、转换、加载进行特殊编码,数据清理、数据聚合和数据丰富。测试自动化工具可能很昂贵,通常与手动测试一起使用。然而,从长远来看,它们可能会变得具有成本效益,特别是在回归测试中反复使用时。测试自动化的频繁候选者BI报告测试商业、政府合规数据聚合处理数据清理和归档数据质量测试数据对账(例如,从源到目标)数据转换尺寸表数据加载端到端测试ETL,ELT验证和验证测试事实表数据加载文件/数据加载验证增量负载测试负载和可扩展性测试缺少文件、记录、字段性能测试引用完整性回归测试安全测试源数据测试和分析分期,ODS数据验证单元、集成和回归测试由于处理的复杂性以及应验证的源和目标的数量,这些测试的自动化可能是必要的。对于大多数项目,数据管道测试过程旨在验证和实施数据质量。今天可用的各种数据类型带来了测试挑战今天有各种各样的数据类型,从文本、数字和日期等传统结构化数据类型到音频、图像和视频等非结构化数据类型。此外,各种类型的半结构化数据,如XML和JSON,被广泛用于Web开发和数据交换。随着物联网(IoT)的出现,各种数据类型激增,包括传感器数据、位置数据和机器对机器通信数据。随着这些数据类型的提取和转换,如果没有适当的工具,测试可能会变得更加复杂。这导致了新的数据管理技术和分析技术,如流处理、边缘计算和实时分析。图1显示了当今广泛使用的数据类型示例。在测试所需的转换是否正确执行时,大量代表了挑战。因此,数据专业人员必须精通广泛的数据类型,并能够适应测试新兴趋势和技术。评估管道组件以进行可能的自动测试敏捷和其他现代开发的一个关键要素是自动化测试。我们可以将这种意识应用于数据管道。数据管道测试的一个重要方面是,执行的测试数量将继续增加,以检查增加的功能和维护。图2显示了可以在数据管道中应用测试自动化的许多领域。
图2:从数据管道的开始到结束测试“热点”在实施测试自动化时,数据可以从源层通过数据管道处理跟踪到数据管道中的负载,最后到前端应用程序或报告。假设在前端应用程序或报告中发现损坏的数据。在这种情况下,自动套件的执行可以帮助更快地确定单个问题是否位于数据源、数据管道流程、新加载的数据管道数据库/数据集市或商业智能/分析报告中。强调快速识别复杂数据管道架构中的数据和性能问题,为提高开发效率、缩短构建周期和满足发布标准目标提供了一个关键工具。决定自动化的测试类别诀窍是确定什么应该自动化以及如何处理每项任务。自动化测试时应考虑一系列问题,例如:自动化测试的成本是多少?谁负责测试自动化(例如,开发、QA、数据工程师)?应该使用哪些测试工具(例如开源、供应商)?所选工具会满足所有期望吗?测试结果将如何报告?谁来解释测试结果?测试脚本将如何维护?我们将如何组织脚本以方便和准确访问?图3显示了实际项目经验中手动与自动测试用例的持续时间(测试执行、缺陷识别和报告)示例。
图3:比较手动和自动测试执行持续时间。自动数据管道测试旨在涵盖加载数据管道的最关键功能——源数据和目标数据的同步和对账。自动化测试的好处和局限性 测试自动化挑战报告测试:通过自动化测试商业智能或分析报告数据复杂性:数据管道测试通常涉及复杂的数据结构和转换,这些结构和转换可能具有挑战性的自动化,并且需要专业知识。管道复杂性:数据管道可能很复杂,可能涉及多个处理阶段,这可能对测试和调试具有挑战性。此外,对管道一部分的更改可能会在下游产生意想不到的后果。测试自动化的好处更快地执行测试用例:自动化可能会加快测试场景的实施。创建一个可重用的测试套件:一旦测试脚本与自动化工具一起运行,它们就可以备份,以便于回忆和重用。简化测试报告:许多自动化工具的一个有趣功能是它们能够生成报告和测试文件。这些功能准确表示数据状态,明确识别缺陷,并用于合规性审计。减少人员配备和返工成本:在纠正缺陷后,花在手动测试或重新测试上的时间可以花在IT部门内的其他举措上。潜在的局限性不能完全取代手动测试:虽然自动化可用于各种应用程序和测试用例,但它不能完全取代手动测试。复杂的测试用例仍然存在,自动化不会捕获所有内容,对于用户验收测试,最终用户通常必须手动执行测试。因此,在此过程中正确结合自动和手动测试至关重要。工具成本:商业测试工具可能很昂贵,这取决于它们的大小和功能。从表面上看,企业可能会将此视为不必要的成本。然而,仅重复使用就能迅速使其成为一项资产。培训成本:测试人员不仅应该接受编程培训,还应该安排自动测试。自动化工具使用起来可能很复杂,可能需要用户培训。自动化需要规划、准备和专用资源:自动化测试的成功主要取决于精确的测试要求和测试开始前测试用例的精心开发。不幸的是,测试用例开发仍然主要是一个手动过程。由于每个组织和数据管道应用程序都是独一无二的,许多自动测试工具不会创建测试用例。数据管道测试自动化入门并非所有数据管道测试都适合自动化。评估上述情况,以确定哪些类型的自动化将有利于您的测试过程,以及需要多少。评估您的测试要求,并确定可以通过自动测试实现的效率收益。投入大量时间进行回归测试的数据管道团队将受益最大。为自动测试开发一个商业案例。IT必须首先提出理由,向企业传达价值。评估选项。在评估IT部门的当前状态和要求后,确定哪些工具与组织的测试流程和环境保持一致。选项可能包括供应商、开源、内部或混合工具。结论随着测试自动化迅速成为手动测试的重要替代品,越来越多的企业正在寻找工具和策略来成功实施自动化。这导致了基于Appium、Selenium、Katalon Studio和其他许多工具的测试自动化工具的显著增长。然而,数据管道和数据工程师、BI和质量保证团队必须具备正确的编程技能才能充分利用这些自动化工具。许多IT专家预测,测试人员和开发人员之间的知识差距必须并且将会不断缩小。与传统的手动方法相比,自动数据管道测试工具可以显著减少测试代码的时间。随着数据管道开发能力的不断提高,对更全面和现代的自动化数据测试的需求也在增加。更多内容请关注 OushuDB 小课堂