Building great end-to-end tests with Selenium and Cucumber / SpecFlow

Writing great Selenium WebDriver-based tests is hard! Having knowledge of the WebDriver API is not enough to be able to create future-proof end-to-end tests with Selenium. To be able to live up to the hype that come with the introduction of automated end-to-end tests, you’ll need to be able to manage the expectations around these tests and create a solid framework that will help you create and maintain these tests with a minimum of effort.

In this training course, I’ll teach you how to define, create and maintain automated tests that are:

  • Readable, through the use of the BDD frameworks Cucumber and SpecFlow for describing the intent of your tests in human readable language, as well as through applying good programming practices and useful Selenium patterns that keep your code readable and pretty much self-documenting.
  • Maintainable, through the use of good object-oriented programming practices such as abstraction and encapsulation, removing duplicate code and minimizing maintenance efforts in case of changes in the application under test.
  • Reliable, through the use of centralized synchronization, exception handling and reporting methods that minimize the risk of false positives when you’re running your tests.

Topics covered in this course
This course teaches you how to:

  • decide which scenarios should be turned into end-to-end tests, and which scenarios are better automated using another approach – or not automated at all,
  • combine Selenium WebDriver, Cucumber (for Java) or SpecFlow (for C#), JUnit (for Java) or NUnit (for C#) and ExtentReports for a tried and tested approach to creating end-to-end tests that you can rely on,
  • and make these tests part of your overall software development and delivery strategy

After completion of this course, you’ll have

  • the knowledge to decide what tests are fit for automation using Selenium WebDriver, and what other approaches there are to automating tests
  • experience in writing readable, maintainable and stable automated end-to-end tests using the aforementioned open source tools
  • working example tests as well as a fully functional framework that you can directly apply in your own work
  • had fun!

Duration of the course
The course as presented on this page covers 3 working days. Customization is possible, though, so feel free to contact me if you have additional questions or requirements.

Programming languages
Course material is available for Java and C#.

Course delivery
This course is offered in house, in person. This facilitates interaction and asking questions and will make sure that participants get the most out of the course. It also allows me to adapt my material, examples and exercises as much as possible to your specific requirements.

I work with a maximum group size of 12 participants. Currently, I’m only able to deliver this course in the Netherlands, or any other location sufficiently close.

Availability and pricing
Are you interested in me teaching this course at your organization, or do you have any additional questions? Please contact me through the Contact page or send me an email at and I’ll be in touch.

Pricing available on request.