I've automated E2E UI tests for the project, where I work as a Software Tester. I used 'clean' Selenium Webdriver, and it works. But I'm wondering if it would be better to use a framework such as Nightwatch.js to develop BDD tests instead of just 'test cases'. I don't understand differences and benefits of developing BDD tests.

The question is: why should I use a framework such as Nightwatch.js instead of just Selenium Webdriver?

The second question is: is it worth spending the time to implement BDD if it is better?

  • Answer always is: it depends. Every tool is optimized for certain problem. Every engineering problem is a compromise between competing priorities with certain preferences. What is your problem (what are you truing to solve) and what are you hoping to accomplish by using these tools? What are your priorities and preferences? and always ask second question separately (after you know answer for first). Jan 10, 2018 at 21:35
  • My goal, as QA Specialist in the company, is to make that the product work on the launching day. That's all. Of course, "the business" needs reports and a proof that the product is tested properly. I'm wondering what value BBD would give to me and for the project. Jan 10, 2018 at 21:45
  • What do you think using BBD will gain you? JS skills? Usually, if you do not understand what you will gain by using a tool, NOT using is prudent decision. Jan 10, 2018 at 22:01
  • Are you happy with your current setup, using clean Selenium? Jan 10, 2018 at 22:02
  • What do you think using BBD will gain you? - I try to find out :) Following information found on Google, tests written by using Nighwatch.js are more maintainable, readable in case of hiring new Tester, easier to read for Product Owner (so, let's say "for business"). I understand what you try to say and I like it but still, I don't understand what are props of using BBD instead of clean Selenium. I can't decide if I need such as tools if I don't know what value it can gain me. Jan 10, 2018 at 22:10

1 Answer 1


This is answer for specific OP's circumstances: beginner working alone. For a beginner working in a big team, advice would be "follow your leader". YMMV, and you are free to do whatever you want with your own time.

In general, experience in more generic tools ("clean" Selenium) is easier to transfer to other positions, easier to grow your career in the future.

I suggest to continue using Selenium, learning about design patterns and refactoring. Then, you might realize that what you are developing is BDD (or that BDD does not make sense for your specific setup).

Also, one good rule of thumb is: "If it isn't broken, don't fix it".

It is good sign that you are concerned about using best practices, but build basic skills before you are making long-term decision.

I do not believe that promise of "business person reading your tests in BDD" will work. Those are empty promises, AFAICT. I have personal experience with a tool making similar promises FitNesse and it was a failure. Using "clean" Selenium gives you full power of your programming language of choice (so you are gaining relevant transferable skills), BDD forces you to work in way they designed it for you.

You can always try for a week or two and see if it fits your need.

  • No idea why this got downvoted, so I'll +1 it. :) good answer
    – FDM
    Jan 12, 2018 at 10:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.