首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将BDD测试应用于批处理场景?

将BDD测试应用于批处理场景?
EN

Stack Overflow用户
提问于 2016-05-12 00:56:30
回答 2查看 2.4K关注 0票数 2

我正在尝试将BDD实践应用到我的组织中。我在一家银行工作,那里的夜间批处理作业是一个庞大的业务流程,多系统的批处理作业流程,它们之间运行和传递数据。

在我们的测试中,交互式在线测试可能只占测试场景的40-50%,而其余的则嵌入到批处理作业中。例如,测试场景可能是:

  1. 因为我的储蓄账户到晚上10点有100美元的余额。
  2. 当夜间批处理在晚上11点运行时
  3. 然后,在批处理结束后的凌晨3点,我应该回来看看我有一个额外的累积利息0.001美元。
  4. 银行总分类账还应增加0.001美元的应计利息分录。

因此,正如您所看到的,这是一个非常异步的场景。如果我使用Cucumber来触发它,我可能可以创建一个步骤定义,以便在晚上10点之前将$100的余额插入到帐户中,但是使用Cucumber触发在晚上11点运行的批处理是不现实的,因为批处理作业通常由操作员使用自己的调度工具(如Control)执行。然后让Cucumber等几个小时,然后再确认累积利息,我不确定我是否会遇到超时。

这只是一种情况。批处理运行对于银行来说是非常昂贵的,我们总是尽可能多地在一次批处理运行中使用。我们也有老化的情况,我们需要运行6个月的批处理,以检查固定存款期限结束时的最终利息是否正确(我绝对不能让Cucumber等那么久,可以吗?)

我的问题是,是否有将BDD实践应用于这样的大型批处理场景的示例?怎样才能做到这一点呢?

编辑以解释为什么我不以目标为目标来执行我控制的孤立测试场景:

我们在其中一个测试级别(在我的银行中称之为系统测试)中进行孤立的场景,而BDD确实在这种情况下工作。但最终,我们需要达到一个测试级别,它有一个完整的端到端环境,通常在SIT中。在这个环境中,它是多个测试场景并行运行的标准,没有一个可以完全控制环境。根据项目的范围,此环境最多可运行200个应用程序。因此,网上银行等客户渠道将运行交易场景,在核心银行系统中,将执行利息计算、自动转账等场景。还将出现总分类账系统合并和平衡环境中所有账户的会计设想。要在此环境中进行手动测试,通常需要至少30-50名执行事务和检查结果的人员。

我想要做的是找到一种利用BDD框架来自动化测试执行和捕获结果的方法,这样我们就不必在环境中手动跟踪它们了。

EN

回答 2

Stack Overflow用户

发布于 2016-05-12 06:23:23

在我看来,似乎您无法控制场景的执行。

显然,在验证结果之前等待几个小时并不是一个好主意。

是否有可能仅提取该批处理中感兴趣的部分?如果这是可能的话,那么我就不会期望执行时间为4-6小时。

如果不可能孤立地执行所需的功能,那么您就会遇到系统测试能力方面的问题。这很常见,也是你真正想要解决的问题。如果测试的唯一方法是运行整个系统,那么您就不能自信地说它正在正常工作,因为所有需要测试的组合都很难执行,有时甚至不可能执行。

不幸的是,似乎没有一个快速的解决办法。您需要处于一个能够验证系统的小部分以便快速可靠地验证它们的位置。如果您使用Cucumber或任何其他工具进行验证并不重要,所有的工具都会有相同的问题。

票数 1
EN

Stack Overflow用户

发布于 2016-05-12 09:11:37

您可能会考虑的一种方法是有一个报告过程来查询每个批处理的结果。然后,它将您感兴趣的结果(即测试结果)存储到测试分析数据库中。

我假设每个批处理运行都有一个唯一的标识符。此标识符将用作测试结果的键。

下面是它如何工作的一个例子:

  • 我们知道批处理何时完成(假设现在是凌晨4点)。我们计划在分析测试帐户的批处理运行完成(例如凌晨5时)之后开始报告作业。
  • 报告作业查看帐户X和帐户Y。它将帐户中的金额与批处理运行的唯一标识符一起记录在一个表中。此信息存储在测试结果数据库中。
  • 一个单独的过程将测试场景与测试结果相匹配。它知道测试场景29与批处理运行ZZ20绑定在一起,因此在测试结果数据库中查找来自批处理运行ZZ20的分析。
  • 上午,测试工程师检查运行结果。他们认为测试方案29失败了,因为帐户X中只有in 100,而不是预期的in 100.001。

此设置将允许您同步处理异步批处理运行。但是,配置是很有挑战性的,因为您需要在报告测试场景和将测试结果链接到测试结果方面实现很多自动化。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37175574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档