ATDD and Effective Exploratory Testing

By Alex Yakyma.

Acceptance Test-Driven Development heavily relies on automated scenarios that reflect the key behaviors of the system. Basically it represents the way and the team process to physically bind the requirements, expressed as acceptance tests, to the code. Besides these key acceptance tests, or in other words – examples of system functionality – teams normally also want to ensure that certain less obvious and less predictable behaviors are implemented correctly. "Less predictable" and "less obvious" does not mean that they are less probable. In fact, teams, by definition, have their "implementer bias" and may easily overlook things. That is the reason for exploratory testing – to look at the system from a new angle, to try scenarios that have not been tried before, to play with different combinations of environment and configuration settings, so on and so forth. This important effort involves both creativity on the part of testers and their hard work in running desirable scenarios under certain conditions. The process most often entails one more of the following problems:

• It consumes a lot of the testers' time. Very often they perform all or almost all operations manually, which, apart from the execution of desirable scenarios, also includes manual environment setup, data preparation as part of different upstream scenarios, etc.

• It takes developers a lot of extra time in the case that they create and maintain special harnesses for manual testing.

• The tests are not persistent. Even when the team performs some kind of automation, typically there is a considerable gap between the process of exploratory testing and the automation of those valuable new test scenarios obtained as a result of exploration. The gap is both in terms of time and skillset due to the fact that exploratory testing is often performed by manual testers while, most often, automation is done by developers or automated test engineers.

• Testers' options are mostly constrained to black box testing. System-level scenarios result from a combination of different conditional flows that occur in different parts of the code. The problem is that it is impossible to test the system by only operating at a high level – we simply experience a "combinatorial explosion" – a stratospheric number of scenarios.

 • The knowledge and context of sharing with developers is ineffective. While testers may play with certain type of system behaviors and even catch some interesting defects, there is almost no sharing of their tacit knowledge about the system with the developers, no collaborative analytical thinking, and no generalization or synthesis. There is no way to induce the specific useful implementation or design takeaways from the findings discovered during exploratory testing.

ATDD turns out to be very useful in creating certain behaviors and effects that help to address these problems. The secret is in the team's ability to quickly automate new scenarios, in the tooling, that turns out to be extremely useful, and in constant collaboration that drives ATDD process. Here is how it works.

ATDD relies on automation tools like Cucumber, SpecFlow, FIT, RobotFramework etc., which allow for defining scenarios in business language. These scenarios are then physically linked to the system by what is called "bindings" or "scenario step definitions" – little pieces of code that interpret the corresponding scenario steps, and run them against the system. Very often these steps are parameterized, so that, for example, this would be a step written in Gherkin language, which is used in tools like SpecFlow and Cucumber: "customer provides , and and whether this a permanent address". This enables testers to do exploratory testing at a whole new level: 

• Testers use the same tools as developers to "play with scenarios". The only difference is that they only play with the input parameters of an existing scenario steps, which does not require any coding. 

• When testers need a new step for exploratory testing that does not yet exist, they ask developers to create it. They often pair with developers to make sure that the right steps are built. 

 • When binding new key scenarios to the code, which happens as a part of the normal ATDD flow, testers and developers ensure that steps are properly parameterized so that testers could immediately use them for exploratory testing, apart from their primary function. Sometimes, however, teams decide to hide some hairy detail in the step bindings (usually for better readability). In such cases, testers may ask developers to simply create a "parameterized" version of the steps, which will be used primarily for exploratory testing. When the initial binding code is in place, this becomes a very quick operation. 

• By easily combining and running different steps with different input/output parameters, testers can more effectively capture unexpected outcomes. Here is the fun part: every finding can be captured as an automated test by simply replicating the set of steps with the specific set of parameters into a separate scenario file. 

 • Frequent collaboration between developers and testers flows very naturally this way. Developers immediately learn what is wrong with the system and testers learn to understand and to be able to read the binding code by looking behind the developer's shoulder and operate much better in terms of "white box" or at least "grey box" testing. There is nothing sophisticated about the binding code. In fact, it has to be fairly simple by definition - those who write automated scenarios leverage simplicity in order to prevent false positive or false negative scenarios. It is really that simple! 

After an iteration or two, this approach becomes so obvious and natural to testers that all they had normally done previously, in terms of exploratory testing, seems ridiculously inefficient to them. This approach allows them to explore more, but also to capture findings so they could be run over and over again. It helps testers externalize valuable knowledge and turn it into better software as a result of collaboration with developers.


  1. Hi, this is Johnson from Chennai. I have read your blog. It’s very informative and useful blog. You have done really great job. Keep update your blog. Selenium Training in Chennai

  2. Most popular, industries-recognize certification that required complete Selenium training course & hand-on experience in
    Selenium Training in Chennai

  3. Most popular, industries-recognize certification that required complete Selenium training course & hand-on experience in
    Selenium Training in Chennai

  4. Game online a lot of people who love to help them relieve stress of the moment, such as TinyTanks and TinyPlanes or Tiny Planes Beta is the fighting game with a pen or pencil, you have to destroy opponents before they kill you. Or Run 3 Unblocked and Hacked unblocked Gamesare skillful game controller for bears to dance to the goal without falling off a cliff. I wish you happy gaming!

  5. You shared useful post. Thanks for sharing such a useful post.

    web design training in chennai

  6. Great article. Glad to find your blog. Thanks for sharing.

    digital marketing training in chennai

  7. Excellent post. I like your post. Learned some new information. Thanks for sharing.

    digital marketing institute

  8. This blog is so nice to me. I will continue to come here again and again. Visit my link as well. Good luck
    obat aborsi
    cara menggugurkan kandungan

  9. Wonderful post. Thanks for sharing such a useful post.

    selenium training in chennai

  10. Thanks for writing a very informative post.
    iklan gratis

  11. hello!!!
    That is very interesting; you are a very skilled blogger. I have shared your website in my social networks! A very nice guide. I will definitely follow these tips. Thank you for sharing such detailed article.
    dot net training in chennai

  12. really you have posted an informative blog. it will be really helpful to many peoples. thank you for sharing this blog.
    android training in chennai

  13. Have a great blog. This contant will be very nice to read. It will help to analysis the content for great blog.Thanks for sharing. Keep sharing more blogs.

    Dot Net Training in chennai

  14. The Info shared was really helpful My sincere thanks for sharing this post Please Continue to share this kind of post
    Software Testing Training in Chennai

  15. You have shared a very helpful and informative post. I am waiting for the next post. We must all admit that we are living in the world of change and many changes are driven by technology. Keep posting articles like this in future.
    Selenium Training in Chennai | Data Science Training in Chennai

  16. Needed to compose you a very little word to thank you yet again regarding the nice suggestions you’ve contributed here.

    Data Science Training in Bangalore

    Datascience Training in Chennai

  17. Thank you for sharing good information for health, may be useful for all of us

    do not forget to also visit our health article:

  18. Interesting and informative article.. very useful to me.. thanks for sharing your wonderful ideas.. please keep on updating..
    Best Electrical Project Center in Chennai | Best Electrical Project Center in Velachery

  19. Blue Wizard adalah salah satu produk Obat Perangsang Cair yang mampu menambah gairah seksual libido seorang wanita maupun pria khasiatnya sangat manjur juga ampuh penggunaan Obat Perangsang cukup 5 kali tetes sudah bisa langsung terangsang, kini telah hadir produk terbaru perangsang Spanish Gold Fly dan untuk mengimbangi wanita yang sudah menggunakan obat perangsang anda harus menggunakan KLG Asli agar anda tidak kalah dengan pasangan anda di atas ranjang, jika ukuran mr.p anda kecil gk bisa puaskan pasangan bisa gunakan Cream Pembesar Penis kami adalah salah satu penjual obat import Hammer Of Thor yang terpercaya dan bisa dipercaya dan jangan lewatkan tips Tips Kesehatan dari blog kami matersembah suwon

  20. Existing without the answers to the difficulties you’ve sorted out through this guide is a critical case, as well as the kind which could have badly affected my entire career if I had not discovered your website.selenium training in bangalore.
    .selenium training in chennai.

  21. I have read your blog and I gathered some needful information from your blog. Keep update your blog. Awaiting for your next update.
    big data training in chennai|

  22. I wish to show thanks to you just for bailing me out of this particular trouble.As a result of checking through the net and meeting techniques that were not productive, I thought my life was done.

    java training in bangalore

  23. Needed to compose you a very little word to thank you yet again regarding the nice suggestions you’ve contributed here. digital marketing training in chennai

    digital marketing training in bangalore

  24. Really useful information. we are providing best data science online training from industry experts.

  25. Yes the article you have posted is of good quality . I must appreciate this .We also have some gaming blogs as well
    happy wheels game||||
    happy wheels||||

  26. Thanks for the useful information of Android courses, give more updates on Android development, First time I visit your blog really nice, I bookmark your blog here after a daily visit. Learn software testing training in Chennai


  27. Very good informative article. Thanks for sharing such nice article, keep on up dating such good articles.
    Austere Technologies |Internet Of Things

  28. I believe there are many more pleasurable opportunities ahead for individuals that looked at your site. Selenium Training In Bangalore | Best Selenium Training in Bangalore

  29. Your good knowledge and kindness in playing with all the pieces were very useful. I don’t know what I would have done if I had not encountered such a step like this. Data Science Training in Hyderabad

  30. Great article, really very helpful content you made. Thank you, keep sharing.

    Best Digital Transformation Services | Austere Technology Solutions


    Best Cloud Solutions | Austere Technologies

  32. wow...nice blog, very helpful information. Thanks for sharing.

    Best Mobility Services | Austere Technology

  33. Very good informative article. Thanks for sharing such nice article, keep on up dating such good articles.

    Best Software Security Services | Austere Technology

  34. Really great blog, it's very helpful and has great knowledgeable information.

    Best Software Services Company | Austere Technology

  35. Nice Blog, Thanks for sharing this valuable information. Keep sharing like this.

    Dot Net Training in Chennai


  36. Great put Good stuff.All the topics were explained quickly understand for me.I am waiting for your next fantastic blog.Thanks for sharing.Any coures related details learn...

    Angularjs course in chennai