Tuesday, April 15, 2014

a word about Test Case Generation and Cucumber

In previous post "eVidence in action", we have seen, through a demo video, how eVidence will support interactive design. As we were describing the behavior of our web application namely "Simple App", we were getting a global picture of the user navigation flow. This is actually a directed graph that gets automatically updated as we describe our scenarii using a natural language (no scripting, no coding…). If you didn't had a chance to follow it, then please check out this post:  "Link".

This article extends that video and describes more features of eVidence:
- Test case generation tuning by scenario
- Test case generation tuning by data
- Cucumber Step Definition preview

Test Case Generation by Scenario
eVidence embodies a core module named: "Test Generation Engine (TGE)". This engine is called each time we go through the test generation wizard. TGE gives the user more control to adjust the resulting test campaign scope.
By selecting a subset of scenarii, the TGE will output a test campaign based on this subset only. This is actually the first step of the test generation wizard. There's a convenient recap. - in wizard's step 2 - which compares the "full navigation flow" to "selected navigation flow" as illustrated below.



Test Case Generation by Data
The last step of the test case generation wizard is called the data mapping step. We can provide at this point values to scenarii's variables. The TGE will use these mappings to make combinations using Pairwise. 
"Pairwise (a.k.a. all-pairs) testing is an effective test case generation technique that is based on the observation that most faults are caused by interactions of at most two factors. Pairwise-generated test suites cover all combinations of two therefore are much smaller than exhaustive ones yet still very effective in finding defects." - Quote from "http://www.pairwise.org/"
Here below is an illustration of data mappings for the login/password field.


Further information could be added to ensure that the data is relevant to the context of generated test case. Indeed, the context could be adjusted using scenario tags. This aspect will be covered in the future within a dedicated post.

Cucumber step definition
In agile, it's common to use behavior driven development. Cucumber is an awesome testing framework that brightly implements gherkin language to perform user acceptance testing. "Cucumber lets software development teams describe how software should behave in plain text. The text is written in a business-readable domain-specific language and serves as documentation, automated tests and development-aid - all rolled into one format." - Quote from "http://cukes.info/"
eVidence makes it natural to preview Cucumber Step Definition. And this, directly in Java code as illustrated here below for the login scenario.


Hence, it's possible to preview as soon as possible how the step definition would look like. Cucumber helps enforcing a test driven approach within an agile team. It's also a great mean to communicate and synchronize with developers. It's straight forward to copy & paste the java code to our favorite IDE, and implement  acceptance tests to drive the web application under test using Selenium, Selenide or CapyBara .

eVidence is planned to be released early May 2014. I hope that you'll enjoy experiencing it as we'd be pleased to discuss any bugs, suggestions, or questions during upcoming Web-Based Seminar. A communication will be issued as soon as this is scheduled. Register now at "eVidence platform website" to be notified.

Thank you so much for your interest in eVidence and talk to you soon. 

Work With Passion

No comments:

Post a Comment