I’ve been in QA for nearly 30 years, starting with manually checking the output of mainframe routines, through the rise of automation, the arrival of Agile and all the no-QA, no-code, AI fads along the way.

What hasn’t happened is an increase in either the quality of software or the efficiency of the development process.

Despite the advances in hardware and tooling, attitudes to software development are not moving quickly.

The organisation of software production is subject to outdated ideas. Problems we thought we had solved in the late 90s and early 2000s are still around, preventing us from having full confidence in our capacity to innovate.

The main problems that I have seen in my career include:

  • Treating QA activity as if it was a (late) stage in a CI pipeline
  • Automating the wrong tests
  • Testing the wrong things
  • Over-reliance on tooling
  • Only performing QA via testing
  • Challenging design decisions too late
  • Short-term thinking as a substitute for Agility
  • Testing by Confrontation, rather than Collaboration
  • QA continually falling behind development velocity and being seen as a roadblock

By providing some real-world observations and lessons at Software Testing Centre, I hope to start putting this right.

The lessons can be followed in date order. Each one introduces a new concept in test automation or design and how they allow us to follow best practices.

This is not a course for absolute beginners in QA but would suit teams either building up their QA process from scratch or those that want to improve the effectiveness and efficiency of their existing practice.

ℹ️ The main lesson that I want to convey is that Quality is not something we wait to add into a system, nor is it the responsibility of a single team, it is a discipline that we need to decide to follow at every step of the SDLC.