Regression Testing

Lynda Gaines

October 22, 2014

As technology and specifically computing becomes more pervasive, so does the importance and quality of the software that lives inside of it. When software is being built, it’s critical for development teams to perform thorough testing to avoid product release delays and recalls, and most importantly, ensure that safety-critical software requirement are met.

There are a number of different types of software tests that are run to achieve maximum performance, and automated regression testing is one of the most critical. Let’s take a look at automated regression testing’s “5 Ws” to better define its meaning and role within the software development process.

What is it?

Regression testing (manual or automated) is a form of software testing that’s used to check for bugs and glitches when software updates are implemented. Automated regression testing is the term used to describe the process that allows these tests to be defined ahead of time (what should be done, how it should be executed, and what the outputs should be) and implemented into a system that performs the tests automatically. Beyond the initial creation of the tests, the power of regression testing lies in the repeatability of the tests which rigorously tests applications to find bugs and improve software quality.

Who needs it?

For complex embedded software applications (namely avionics, military, medical, railway, automotive and industrial control software), automated regression testing can prove to be an invaluable tool. Oftentimes, these industries face strict technical requirements and are subject to regulatory standards that emphasize the quality of code, making the software testing process a critical step in development.

Where did it get its name?

When software code “moves backwards,” it’s said to have “regressed.” This is a common issue in software development, as new updates can often times resurface old bugs. The return of these bugs are known in software engineering space as “regressions,” therefore, the test that verify these bugs have been fixed are known as regression tests.

When should it be performed?

Regression tests should be run from the moment a change in the software code has been made. Within the markets mentioned above, teams comprised of multiple developers are constantly making updates and changes; therefore, automated regression testing should be in place to ensure updates haven’t introduced bugs.

Why is it needed?

Automated regression testing offers a number of advantages to those who adopt it, including (to name a few):

  • Reducing the chance for human error
  • Testing is run quickly and repeatedly, while developers continue working on a project
  • Helping software development organizations maintain a high software quality levels as projects evolve
  • Grouping tests into test suites that can be easily configured for different code baselines
  • Assisting in maintaining manufacturers image
  • Re-running the test suite on a nightly basis, ensuring the design performs as intended

Final Thoughts

Products such as VectorCAST/Manage allow software teams to seamlessly integrate regression testing into their development processes. From medical devices, to automobiles, to aircrafts, embedded software is a critical component of technology’s safe and successful march towards the future. Processes such as automated regression testing will reduce recalls, improve quality of products, and keep those using the software-reliant products out of harm’s way.