There are a lot of great theories, academic studies, books, exams, blogs and websites on the subject of software testing. There are several different “schools” of software testing covering traditional approaches, exploratory, context based, agile, etc. etc. etc. all of which offer great insight, processes and approaches. If you are asked to explain the subject to a customer or non-technical colleague, getting into the theory and detail of our subject is often a turn-off for them. I have a number of techniques for explaining software testing to non-software testers, the simplest of which is to explain the basics which are:
- Does it work (functional testing)
- Is it nice to use (usability testing)
- Is it fast enough (performance testing)
- Is it safe to use (security testing)
Yes, there are all sorts of other types of testing, approaches to testing, stages of testing, testing tools and techniques we can use, but at the end of the day no one wants to hear us software testers “wax lyrical” about the details of our profession, any more than anyone, other than a petrol head like me, wants to discuss how the internal combustion engine or gearbox in their car works. At the end of the day they want their software, or their car, tested so they can use it for the purpose it was designed to fulfil.