The best BDD test automation framework for .NET
December 12, 2022

The best BDD test automation framework for .NET

Anonymous | TrustRadius Reviewer
Score 9 out of 10
Vetted Review
Verified User

Overall Satisfaction with SpecFlow

I use SpecFlow for implementing BDD in the test automation framework in my current workplace. SpecFlow helps us to implement the automated test cases so in a human readable form so it's easy for non-technical members of the team and stakeholders to understand the test cases, features and the functionalities of the application. I have implemented SpecFlow based automated tests for UI based tests, API tests, and performance tests. The versatility of SpecFlow enables us to utilize it for all kinds of test automation use cases.
  • Versatility to be used in combination with different kinds of automated testing like automated performance testing, API testing, UI testing etc. I use JavaScript, Selenium, C#, email testing libraries, database testing libraries in combination with BDD with SpecFlow. I am able to use all these with SpecFlow to make my automation framework to be able to automate any kind of automated testing.
  • It provides different widely used runner options like NUnit, XUnit etc. Before I started to work on establishing proper test automation in my workplace, the previous automation framework (non-BDD based) as well as unit tests used NUnit runner. The transition to using BDD was smooth because we could use the same runner and there were no compatibility issues.
  • The auto-complete feature is good. I use it with Visual Studio as well as Rider and I don't have to recall the entire Gherkin statements. I just type a few words and the entire Gherkin statement implemented in framework is auto-suggested by SpecFlow. It saves time and context switching.
  • SpecFlow does not accepts optional input variables in the methods defined during Gherkin statement implementation. Cucumber supports optional input variables in the methods defined during Gherkin statement implementation.
  • The tests identified while using SpecFlow with NUnit removes all white spaces in the scenario names. It makes the tests less readable. If the white spaces are not auto-removed, it would be much better for readability as well as their actual identification in the repository.
  • Gherkin implementation representing the test automation code in a human readable form
  • Reduction in the reliance on technical team members to gather information about existing functionalities by going through automated test cases
  • Everyone stays on the same page regarding the behavior of existing functionalities whether it be technical or non-technical individuals. So there is less need for multiple people to get involved which saves time and thus money.
  • Reusing the same code through the implemented Gherkin statement saves test automation time and thus reduces cost.
  • We combine SpecFlow with other opensource testing technologies to make our automation framework more versatile which further saves costs for us.
SpecFlow is .Net based which supports C#.
Behave is Python based.
Cucumber is Java based.
Ghost Inspector is no-code based but provides very limited testing features.

We wanted to implement BDD so we rued out using Ghost Inspector.
Most of the developers in my team are C# experts so it was decided for everyone's comfort to go for SpecFlow rather than Behave or Cucumber. It's import to have technical experts in the language of the automation framework because there are many situations where the solutions to the test automation needs are not straightforward and implementing those requires expertise in the related programming language.

Do you think SpecFlow delivers good value for the price?

Yes

Are you happy with SpecFlow's feature set?

Yes

Did SpecFlow live up to sales and marketing promises?

Yes

Did implementation of SpecFlow go as expected?

Yes

Would you buy SpecFlow again?

Yes

It is best suited for implementing the automated test cases in a human readable form so it's easy for non-technical members of the team and stakeholders to understand the test cases, features and the functionalities of the application. Automation of Integration tests and End to End tests are good use case.

It is less appropriate or situations where the focus is only on the writing and maintenance of unit tests.