The role of QA

“The Quality Assurance team is there to test the system and generate a list of bugs. Developers then fix those, and, after passing QA’s tests, the product ships.”

Not.

First, in manufacturing QA is not quality control. QA is about defining the processes used, raw material fitness, and the like. Instead, quality control insures that a product meets a standard defined by the QA group.

However, almost every software group conflates QA and QC, generally folding both operations into the single term QA. I have no reason to tilt against windmills so will use the term “QA.” Software engineering isn’t manufacturing; we don’t need to adopt their nomenclature.

I believe that developers have the responsibility to deliver extremely high-quality code. Tiny teams may deliver directly to the customer, while larger groups have a separate QA operation. Regardless, we engineers must create the very best work products.

QA’s role is to demonstrate the absence of defects. Sure, life is tough and software complex. Sometimes they will find problems. But that doesn’t absolve the engineers of their responsibility to strive for perfection. We engineers must take pride in our work, demonstrate exceptional craftsmanship, and constantly hone our tools, processes and techniques to achieve the highest quality.

Wise managers will use the results of QA’s verification and validation work to audit the software engineering process. If they’re finding more than a few problems, that’s an indication that there’s something wrong in the firmware group. This is a quantitative result, something measureable, which can be monitored over time to see if the engineering team is getting better or worse.

Three important principles are embodied in the notion of using QA’s results to audit the development team:Metrics – Engineering without numbers is not engineering – it’s art. Metrics hold us accountable and let us evaluate the process.

Feedback – Every EE knows that feedback stabilizes electronic systems. It also stabilizes human systems. Use the results of any operation (in this case QA) to continuously improve the process.

Filters – Software is tough to get right, which means we need to use as many filters as possible. The compiler identifies syntax errors, inspections other problems, test even more. QA is the last one. If the last filter is still finding problems that’s an indication something is wrong… or another filter is needed.

QA should also be responsible for constructing and managing regression tests. That should be done outside of the engineering team since it’s a meta-operation that requires constant attention, an attention of the sort that is quite orthogonal to writing code. That may mean building and maintaining test jibs, continuous integration servers, and all of the infrastructure verification and validation demand.

Aim for the perfect. When imperfections sneak in, figure out why. Take corrective actions as required.

Jack G. Ganssle is a lecturer and consultant on embedded developmentissues. He conducts seminars on embedded systems and helps companieswith their embedded challenges, and works as an expert witness onembedded issues. Contact him at . His website is.

3 thoughts on “The role of QA

  1. “The mere existence of software QA reduces software quality. It just makes all the testing and QA somebody else's problem.nnUnfortunately far too members of our profession just ship stuff and hope it stays shipped. These people put a drain on others.nn

    Log in to Reply
  2. “”We engineers must take pride in our work, demonstrate exceptional craftsmanship, and constantly hone our tools, processes and techniques to achieve the highest quality.”nnAs a professional software engineer (i.e. NOT programmer) I strive to meet the

    Log in to Reply
  3. “The previous company I worked for used a method called Fault slip-through which built up statistics on where faults were found in the development cycle and where they should be found. This helped them focus efforts on finding faults where they could be ea

    Log in to Reply

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.