Mauro, Thanks for your reply. My principle concern in using JBehave with a batch-oriented system stems from my wanting to have every scenario represent a single "transaction" in the system. Since the system would be very slow to execute a single transaction (it is designed to process large files full of many transactions), this sequential approach of processing transaction-by-transaction would take several hours to complete a reasonable suite of test scenarios.
If I want good readability, then ideally every scenario represents a single transaction (or a small number of related transactions). What I'm asking is whether JBehave can allow me to submit a "batch" of scenarios all at once; some code would need to collect all the individual transactions and generate a file, and submit it to the system. Has anyone ever used JBehave this way? Thanks Ken On Tuesday, August 29, 2017 at 12:36:18 PM UTC-4, mauro.talevi wrote: > > Hi Ken, > > BDD can be used to verify any system’s behaviour that can be automated. > > The tricky bit is to describe the behaviour in a way that is intelligible > from a business point of view (big files aren’t as you’ve noted). You > may try to autogenerate the input files based on templates with the > relevant scenario values being exposes in steps or tables. > > As for batch-oriented systems, BDD can surely be of help but you need to > design the scenarios to ensure the execution of the required transactions. > If you use multi-threading you need to make sure that all the threads > are complete before the results are verified. Typically this can be > realised easily with a single step, e.g. > > When all transactions are completed > > Please note that each scenario is meant as a self-contained use-case so > you should not have one scenario rely on the the results obtained from > other scenarios. You can use GivenStories or other Before steps to > ensure the state of the system before a scenario or story. > > Cheers > > On 17 Aug 2017, at 03:41, Ken Van Camp <[email protected] <javascript:>> > wrote: > > I am new to JBehave, but very familiar with BDD concepts and would like to > try to follow them on a new batch-oriented system we are starting > development on. I'm on the development side, but our "QA team" is > responsible for all automated testing (yeah I know right away that's a > contradiction wrt BDD). They are experienced in JBehave but they are really > only trying to use it as an automated testing tool, and I'm trying to > convince them that the natural language features allow for much more. > (Since we are developing a batch-oriented system, with files as input and > files as output, they want to write one JBehave scenario which takes their > big input file, processes it, then compares the output files against > expectations. But the scenarios are therefore not human-readable, so it > seems we are getting very little benefit from using JBehave.) > > Does anyone have experience in testing batch-oriented systems in JBehave? > It seems like tests normally execute sequentially, but this poses a problem > for a batch system that is not designed for good performance in processing > a single transaction. Therefore, I think we should be building up a "batch" > of small tests in which each scenario generates a transaction then all the > transactions are pulled together into a single input file. The input file > is processed, then the results are gathered. We have a single unique key on > each transaction so it is easy to match up results to inputs, and compare > expected vs. actual values. So now we have to go back to our original > scenarios to compare the "THEN" clauses on each one and report results. > > Can it work in JBehave? Or is there a better way to do this? Thanks. > Ken > > -- > You received this message because you are subscribed to the Google Groups > "JBehave User" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] <javascript:>. > To post to this group, send email to [email protected] > <javascript:>. > To view this discussion on the web, visit > https://groups.google.com/d/msgid/jbehave-user/45765ed9-fab0-4440-890a-1a38bf73fb7f%40googlegroups.com > > <https://groups.google.com/d/msgid/jbehave-user/45765ed9-fab0-4440-890a-1a38bf73fb7f%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > > > -- You received this message because you are subscribed to the Google Groups "JBehave User" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send an email to [email protected]. To view this discussion on the web, visit https://groups.google.com/d/msgid/jbehave-user/01483734-d150-4241-a757-114af9d288df%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
