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

Testing BDD可以用于大数据ETL测试吗?,testing,bigdata,bdd,Testing,Bigdata,Bdd,我想知道是否有人使用BDD测试大数据ETL应用程序? 我可以看到BDD如何用于测试客户机与之交互的应用程序,但在大数据ETL应用程序中,没有客户机交互,因此很难看到我可能在“何时”使用什么。 例如: 发生100起A类事件 5分钟后发生50起B类事件 那么数据库行应该是: |类型|计数|桶| |A | 100 | 1| |B | 50 | 2 | 但这似乎是错误的。 有人有见识吗 您能给我一个示例,说明您希望在ETL输出中看到什么吗 你可以对此给出一些回应。一种可能是您所期望的不同类型的数据库行,

我想知道是否有人使用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是面向机器的而不是面向人的,您的一些对话将是关于监视而不是测试的。你的对话应该仍然是与人们的对话


您的“何时”将是您在运行它的数据、权限和安全上下文中运行的查询或报告。

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

这是一个关于“何时”的有趣见解,我的问题是:我们不做额外的努力来适应BDD吗?这种情况下的行为非常麻烦,以至于我的句子无法阅读,我给出了一个不适合任何ETL的简单示例,因为通常ETL是关于数据的确切结构,“给定”可能是描述结构的页面。我认为人们很多时候都过度考虑BDD。坚持回答“你能给我举个例子吗?”不管结果如何,通常都会有正确的语言。不过,并不是所有东西都适合自然语言——星型模式也不是特别直观因此,如果您的示例更适合表格,那么请使用表格。如果只有技术人员才能阅读,而不是业务人员,那么也可以使用代码来描述这些内容。在我看来,最好的方法是将业务行为分离,使用好日子场景(用于数据结构)和系统测试(处理所有边缘情况下的数据结构)。如果完全使用BDD,那么可以对系统测试进行审查。我唯一担心的是,系统测试和业务需求之间的联系将丢失。总有一些业务需要的新功能。如果ETL中包含的信息是新事物,那么询问“我们/我们的客户/我们的分析师/等等,一旦这是他们现在无法做到的,我们/我们的客户/等等能够做什么?”然后找到一个玩具客户,并在上面写下场景。如果客户机是新事物,而您只是在支持该客户机,那么让客户机开发人员为该客户机推出场景,并与他们合作支持它。客户机可能是一个SQL报表,而不是一个特定的UI,但它将是有人使用的东西。这将帮助您保持链接。