CS Wong
2016-05-12 10:05:51 UTC
[This question was previously asked in StackOverflow but since this is the
official Cucumber community group, I thought I'd stand a better chance here]
I'm trying to apply BDD practices to my organization using Cucumber. I work
in a bank where the nightly batch job is a huge orchestrated multi-system
flow of batch jobs running and passing data between one another.
During our tests, interactive online tests probably make up only 40-50% of
test scenarios while the rest are embedded inside the batch job. As an
example, the test scenario may be:
1. Given that my savings account has a balance of $100 as of 10PM
2. When the nightly batch is run at 11PM
3. Then at 3AM after the batch run is finished, I should come back and see
that I have an additional accrued interest of $0.001.
4. And the general ledger of the bank should have an additional entry for
accrued interest of $0.001.
So as you can see, this is an extremely asynchronous scenario. If I were to
use Cucumber to trigger it, I can probably create a step definition to
insert the $100 balance into the account by 10PM, but it will not be
realistic to use Cucumber to trigger the batch to be run at 11PM as batch
jobs are usually executed by operators using their own scheduling tools
such as Control-M. And having Cucumber then wait and listen a few hours
before verifying the accrued interest, I'm not sure if I'll run into a
timeout or not.
This is just one scenario. Batch runs are very expensive for the bank and
we always tack on as many scenarios as possible to ride on a single batch
run. We also have aging scenarios where we need to run 6 months of batch
just to check whether the final interest at the end of a fixed deposit term
is correct or not (I definitely cannot make Cucumber wait and listen for
that long, can I?)
My question is, is there any example where BDD practices were applied to
large batch scenarios such as these? How would one approach this?
Please note that isolated batch scenarios in a controlled environment are
quite possible to be implemented using Cucumber and I do have it
implemented in some of my proof of concept work. But eventually, we need to
hit a test level that has an entire end-to-end environment, typically in
SIT. In this environment, it is a criteria for multiple test scenarios to
be run in parallel, none of which have complete control over the
environment. Depending on the scope of the project, this environment may
run up to 200 applications. So customer channels such as Internet Banking
will run transactional scenarios, whiles at the core banking system,
scenarios such as interest calculation, automatic transfers etc will be
executed. There will also be accounting scenarios where a general ledger
system consolidates and balances all the accounts in the environment. To do
manual testing in this environment frequently requires at least 30-50
personnel executing transactions and checking on results.
What I am trying to do is to find a way to leverage on a BDD framework to
automate test execution and capture the results so that we do not have to
manually track them all in the environment.
Thanks!
Wong
official Cucumber community group, I thought I'd stand a better chance here]
I'm trying to apply BDD practices to my organization using Cucumber. I work
in a bank where the nightly batch job is a huge orchestrated multi-system
flow of batch jobs running and passing data between one another.
During our tests, interactive online tests probably make up only 40-50% of
test scenarios while the rest are embedded inside the batch job. As an
example, the test scenario may be:
1. Given that my savings account has a balance of $100 as of 10PM
2. When the nightly batch is run at 11PM
3. Then at 3AM after the batch run is finished, I should come back and see
that I have an additional accrued interest of $0.001.
4. And the general ledger of the bank should have an additional entry for
accrued interest of $0.001.
So as you can see, this is an extremely asynchronous scenario. If I were to
use Cucumber to trigger it, I can probably create a step definition to
insert the $100 balance into the account by 10PM, but it will not be
realistic to use Cucumber to trigger the batch to be run at 11PM as batch
jobs are usually executed by operators using their own scheduling tools
such as Control-M. And having Cucumber then wait and listen a few hours
before verifying the accrued interest, I'm not sure if I'll run into a
timeout or not.
This is just one scenario. Batch runs are very expensive for the bank and
we always tack on as many scenarios as possible to ride on a single batch
run. We also have aging scenarios where we need to run 6 months of batch
just to check whether the final interest at the end of a fixed deposit term
is correct or not (I definitely cannot make Cucumber wait and listen for
that long, can I?)
My question is, is there any example where BDD practices were applied to
large batch scenarios such as these? How would one approach this?
Please note that isolated batch scenarios in a controlled environment are
quite possible to be implemented using Cucumber and I do have it
implemented in some of my proof of concept work. But eventually, we need to
hit a test level that has an entire end-to-end environment, typically in
SIT. In this environment, it is a criteria for multiple test scenarios to
be run in parallel, none of which have complete control over the
environment. Depending on the scope of the project, this environment may
run up to 200 applications. So customer channels such as Internet Banking
will run transactional scenarios, whiles at the core banking system,
scenarios such as interest calculation, automatic transfers etc will be
executed. There will also be accounting scenarios where a general ledger
system consolidates and balances all the accounts in the environment. To do
manual testing in this environment frequently requires at least 30-50
personnel executing transactions and checking on results.
What I am trying to do is to find a way to leverage on a BDD framework to
automate test execution and capture the results so that we do not have to
manually track them all in the environment.
Thanks!
Wong
--
Posting rules: http://cukes.info/posting-rules.html
---
You received this message because you are subscribed to the Google Groups "Cukes" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cukes+***@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Posting rules: http://cukes.info/posting-rules.html
---
You received this message because you are subscribed to the Google Groups "Cukes" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cukes+***@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.