我在想是否有人使用 BDD 来测试大数据 ETL 应用程序? 我可以看到 BDD 如何用于测试与客户端交互的应用程序,但在大数据 ETL 应用程序的情况下,没有客户端交互,因此很难看出我可能会使用什么“何时”。 例如: 给 100 个 A 类事件发生 5 分钟后发生 50 次 B 类事件 那么数据库行应该是: |类型|计数|桶| |A|100|1| |B|50|2|
但这似乎是错误的。 任何有见识的人?
最佳答案
您能否举例说明您希望在 ETL 输出中看到的内容?
您可以对此做出一些回应。一个可能是您期望的不同类型的数据库行,事实上其中一些行可能会重复,但其他行不会。这让我觉得很奇怪,但如果您习惯于使用星型模式,那么您可能会注意到其他差异。
通常我会引导人们远离谈论数据库,但如果你正在使用星型模式,我认为提及事实和维度是可以的(我没有经常使用 ETL,但我确实请记住通过这些具体示例以及我希望看到的内容进行讨论)。
另一种方法是使用客户端。
我看到你说没有客户端;然而,总是有一个客户,即使它可能在未来存在。对跨安全性、性能和访问等方面运行的 ETL 有影响。拥有一个客户端是值得的,即使它是一个基于字符串或基于 SQL 的玩具,来探索可能会让您出错的事情。
你为什么要这样做?企业、用户或客户可以做的事情有什么新的,而他们已经不能做?你能举个例子吗?
“我们将能够了解 X 相对于 Y 标准的表现。”
太棒了。你能给我一个 X、Y 和标准的例子吗?你将如何衡量绩效?您要查找哪些数据?每个人都应该能够看到该数据吗?您能想到任何人不应该访问它的场景吗?
这些示例成为场景的 ETL 等价物;对话保持相同的模式。你最终只是在不同的层次上自动化它们,因为你的 API 是面向机器而不是面向人的,而且你的一些对话将是关于监控而不是测试。您的对话应该仍然是与人进行的。
您的“何时”将是您在运行它的数据、权限和安全上下文中运行的查询或报告。
关于testing - BDD 可以用于大数据 ETL 测试吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31275867/