BDD 可以用于大数据 ETL 测试吗?

Can BDD work for Big Data ETL testing?

我在想是否有人使用 BDD 来测试大数据 ETL 应用程序? 我可以看到 BDD 如何用于测试与客户端交互的应用程序,但在大数据 ETL 应用程序的情况下,没有客户端交互,因此很难看出 'When' 我可能会使用什么。 例如: 给 100 个 A 类事件发生 5 分钟后发生 50 次 B 类事件 那么数据库行应该是: |类型|计数|桶| |A|100|1| |B|50|2|

但这似乎是错误的。 任何有见识的人?

能否举例说明您希望在 ETL 输出中看到的内容?

您可以对此做出一些回应。一个可能是您期望的不同类型的数据库行,事实上其中一些行可能会重复,但其他行不会。这让我觉得很奇怪,但如果您习惯于使用星型模式,那么您可能会注意到其他差异。

通常我会引导人们远离谈论数据库,但如果你正在使用星型模式,我认为提及事实和维度是可以的(我没有经常使用 ETL,但是我确实记得讨论过这些的具体示例以及我希望看到的内容)。

替代方法是使用客户端。

我看到你说没有客户;但是,总是 一个客户,即使将来可能存在。对 ETL 的影响 运行 涉及安全、性能和访问等方面。有一个客户是值得的,即使它是一个基于字符串或基于 SQL 的玩具,来探索可能会绊倒你的东西。

你为什么要这样做?企业、用户或客户可以做的事情有什么新的,而他们已经不能做?你能举个例子吗?

"We'll be able to understand how X is performing against Y standard."

太棒了。你能给我一个 X、Y 和标准的例子吗?你将如何衡量绩效?您要查找哪些数据?每个人都应该能够看到该数据吗?您能想到任何人不应该访问它的场景吗?

这些示例成为场景的 ETL 等价物;对话保持相同的模式。您只是最终在不同的级别上将它们自动化,因为您的 API 是面向机器而不是面向人的,并且您的一些对话将是关于监控而不是测试。你的谈话应该仍然是与人。

您的 "when" 将是您 运行 在您 运行 的数据、权限和安全上下文中进行的查询或报告。

BDD 始终适用于大数据中的应用程序逻辑space。记住测试三角原则。进行单元测试。练习 BDD 并使用 BDD 并在您的冲刺中构建您的集成和验收测试。不建议在外部维护您的测试数据,因此验证所有移动部件的 E2E 流程需要轻量级。如果允许的话,练习 TDD 模型。