我正在尝试将BDD实践应用到我的组织中。我在一家银行工作,那里的夜间批处理作业是一个庞大的业务流程,多系统的批处理作业流程,它们之间运行和传递数据。
在我们的测试中,交互式在线测试可能只占测试场景的40-50%,而其余的则嵌入到批处理作业中。例如,测试场景可能是:
因此,正如您所看到的,这是一个非常异步的场景。如果我使用Cucumber来触发它,我可能可以创建一个步骤定义,以便在晚上10点之前将$100的余额插入到帐户中,但是使用Cucumber触发在晚上11点运行的批处理是不现实的,因为批处理作业通常由操作员使用自己的调度工具(如Control)执行。然后让Cucumber等几个小时,然后再确认累积利息,我不确定我是否会遇到超时。
这只是一种情况。批处理运行对于银行来说是非常昂贵的,我们总是尽可能多地在一次批处理运行中使用。我们也有老化的情况,我们需要运行6个月的批处理,以检查固定存款期限结束时的最终利息是否正确(我绝对不能让Cucumber等那么久,可以吗?)
我的问题是,是否有将BDD实践应用于这样的大型批处理场景的示例?怎样才能做到这一点呢?
编辑以解释为什么我不以目标为目标来执行我控制的孤立测试场景:
我们在其中一个测试级别(在我的银行中称之为系统测试)中进行孤立的场景,而BDD确实在这种情况下工作。但最终,我们需要达到一个测试级别,它有一个完整的端到端环境,通常在SIT中。在这个环境中,它是多个测试场景并行运行的标准,没有一个可以完全控制环境。根据项目的范围,此环境最多可运行200个应用程序。因此,网上银行等客户渠道将运行交易场景,在核心银行系统中,将执行利息计算、自动转账等场景。还将出现总分类账系统合并和平衡环境中所有账户的会计设想。要在此环境中进行手动测试,通常需要至少30-50名执行事务和检查结果的人员。
我想要做的是找到一种利用BDD框架来自动化测试执行和捕获结果的方法,这样我们就不必在环境中手动跟踪它们了。
发布于 2016-05-12 06:23:23
在我看来,似乎您无法控制场景的执行。
显然,在验证结果之前等待几个小时并不是一个好主意。
是否有可能仅提取该批处理中感兴趣的部分?如果这是可能的话,那么我就不会期望执行时间为4-6小时。
如果不可能孤立地执行所需的功能,那么您就会遇到系统测试能力方面的问题。这很常见,也是你真正想要解决的问题。如果测试的唯一方法是运行整个系统,那么您就不能自信地说它正在正常工作,因为所有需要测试的组合都很难执行,有时甚至不可能执行。
不幸的是,似乎没有一个快速的解决办法。您需要处于一个能够验证系统的小部分以便快速可靠地验证它们的位置。如果您使用Cucumber或任何其他工具进行验证并不重要,所有的工具都会有相同的问题。
发布于 2016-05-12 09:11:37
您可能会考虑的一种方法是有一个报告过程来查询每个批处理的结果。然后,它将您感兴趣的结果(即测试结果)存储到测试分析数据库中。
我假设每个批处理运行都有一个唯一的标识符。此标识符将用作测试结果的键。
下面是它如何工作的一个例子:
此设置将允许您同步处理异步批处理运行。但是,配置是很有挑战性的,因为您需要在报告测试场景和将测试结果链接到测试结果方面实现很多自动化。
https://stackoverflow.com/questions/37175574
复制相似问题