The Inspiretec QA automation framework.

Howard Bayliss, Technical Architect at Inspiretec, discusses how we improve the quality of our products by integrating modern agile practices and automation.

By Howard Bayliss29th August 2019

Singing from the same hymn sheet.

You may have experienced one of the major causes of IT project failure: disconnect between the business’ requirements and what’s delivered by an IT solution provider.

Agile development practices, which we follow, are now commonly used in the industry to eliminate this disconnect. Examples include regular “show and tells” during product development, embedding business stakeholders in the team, short development cycles and frequent releases, etc.

However, the most important part of a project is getting the correct requirements in the first place and then ensuring that all members of the wider team understand those requirements.

To achieve this, we’ve adopted Behaviour Driven Development, known as BDD. We now capture all project requirements in simple scenarios, which follow a consistent given-when-then pattern. An example is below:

Given I add a flight to my basket.

When I press the update button.

Then the total cost displayed will be updated.

Because these scenarios are simple, all those involved with the project (stakeholders, analysts, developers and QA testers) can understand them and, because a consistent format is used, there should be no disconnect between what’s expected and what’s delivered.

Automate everything.

Automation drives efficiency and in the world today we see a move to “automate everything”: driverless cars and deliveries-by-drone being just a couple of examples.

Following suit, to improve the efficiency of our project delivery, we endeavor to automate as many aspects of it as possible.  

One of the least efficient aspects of project delivery is regression testing. This is when an application requires full retesting to prove that a code change hasn’t broken existing functionality.

In the worst case this may require days or weeks of retesting.

Combining the two.

Our QA automation framework allows the BDD scenarios to drive automated testing of web applications. This means that, for each scenario, the framework interacts with elements on a web page (such as buttons, text boxes, etc.) to test the required functionality; in just the same way that a human tester would test the website.

The benefits of this are:

  • The person creating the test can copy and paste the exact same BDD scenario that was captured in the original requirements.
  • This means it’s easy to create tests and there’s no disconnect between the requirements and what is being tested.

     

  • The tests run quickly – much quicker than a human could test.

     

  • The tests are configured to run against all the different Operating System/Browser versions required by the project.

     

  • The automated tests cover all required functionality and can be run whenever is appropriate. For example, a full regression test could be scheduled to run every night. In the morning, a QA analyst can immediately see if any tests have failed.

The tests are reported via a web-based dashboard, an example of which is below:

Summary.

The framework does all the heavy-lifting to integrate a number of technologies, such as .Net Core, xUnit, SpecFlow, Selenium and BrowserStack. Doing so make it easy to write tests but also means that our development teams use a consistent approach for automated testing. We also use Build Server pipelines to run tests when new code is checked-into the project or on a scheduled basis.

In summary, the framework allows us to improve the quality of our products because regression tests run automatically, freeing testers to concentrate on exploratory testing; meaning more bugs are fixed.

For more information, please contact Howard via the contact form on the “contact” page.