Mediaclip is a software development company headquartered in Montreal, Canada. Mediaclip develops and distributes software for e-commerce product personalization by enabling content owners to deliver a rich user experience that increases sales and customer loyalty. Mediaclip customers typically embed their solutions into their websites and apps and white label them, for instance, photo books, calendars, posters, and more.
The development team was given a new challenge and started work on a .NET Core AngularJS web application. At the start of development, the team took the usual approach by writing specifications in regular documents and used SoapUI, NUnit, Protractor/Selenium to test APIs, C# unit tests, and UI, respectively. All other tests were carried out manually.
Testlink served as the test management tool to keep an overview of the testing activities. Every team member tried to contribute with their part; however, the tests tended to be very differently written based on everyone’s style. Also, testing different API scenarios were challenging to do in an easy-to-understand and readable way. Finally, working on the application had its challenges too, due to the method in which requirements were defined and documented.
It was clear that the current workflow, both in development and testing, needs to change for a smoother and more efficient way to work. To tackle this, the team introduced Test Driven Development (TDD) to help bring the size of the implementation chunks down and Behavior Driven Development (BDD) to help with the readability and speed of the tests. For BDD, SpecFlow got selected.
There were, however, some challenges along the way that took much longer to solve. Some of them are still an ongoing concern and provide room for optimization:
A portfolio of roughly 300 easy-to-understand SpecFlow tests is what the team takes great pride in. It helps them test their applications faster and more efficiently. Incorporating both TDD and BDD with SpecFlow, Mediaclip was able to shift their testing activities much closer to development. Their feedback cycles have been significantly reduced, their software quality improved and their confidence to release changes to production is higher than ever.