10 Myths about Software Testing
1. Testing is easy
The complexity of testing is hidden in the variables. A variable is anything that can be changed in such a way that it might affect the thing that’s being tested, and there are an infinite number of these variables in even the simplest of systems. From the number of products displayed on screen at one time to the speed that the user completes a form or the browser that they use, there are all sorts of things that might vary. It’s practically impossible to test all combinations of all variables so the challenge lies in identifying which experiments are likely to provide the most interesting results in the time available.
2. Testing needs lots of planning
This is true for some projects, but certainly not all. In highly-regulated industries or where the level of risk is high (e.g. healthcare, finance) testing does need to be more structured and formalised. For other projects, particularly those following an Agile workflow, there simply isn’t time for lots of advanced planning. Exploratory testing is all about simultaneous test design and execution, drawing on the skill and experience of the tester instead of a pre-written plan. That said, while we can’t plan each individual test, we should plan the scope and general approach of our testing sessions.
3. Exploratory testing is bad testing
This myth comes from the assumption that exploratory means the same thing as random. In fact, exploration is a logical and systematic approach to testing. All testing that involves a person interacting with, thinking about and responding to what happens is inherently exploratory, but the amount of freedom they have might be limited by things like overly prescriptive test cases. Exploratory testing often reveals problems and opportunities that more formalised testing and checking cannot.
4. Only testers can test
A few years ago it might have been commonplace for a developer to finish their work and then simply throw it over the wall to the testers, who would then poke at it for a while before throwing it back with a list of bugs and change requests. Testers were often seen as the gatekeepers of quality. These days, we recognise that responsibility for quality is rightly shared across the whole team and everyone from developer to product owner gets involved in different ways.
5. Anyone can test well
While it’s a myth that only testers can test, it’s equally untrue to say that everyone can test to the same standard. Professional testing is a skilled discipline that demands a particular combination of curiosity, creativity, domain knowledge and technical understanding. Testers have their own books, conferences, qualifications and communities that are distinct from other professions. Part of a tester’s role is to share their skills by coaching the rest of the team in how to perform effective testing.
6. Certification is important
Certification (like that offered by ISTQB) is a controversial subject in the testing community with one camp arguing for it as essential for making the discipline credible and the other camp dismissing it as unnecessary and out-of-touch. The truth is, many employers don’t place much emphasis on the need for certification and the best recognise that there are far better ways for a tester to demonstrate their passion and capabilities.
7. Computers can do all the testing
Computers are great at checking whether things are working as expected. Given clear rules for success and failure, they can perform lots of checks quickly and consistently. They are also good at simulating and measuring things like load and performance. Beyond that, people make much better exploratory testers. Computers can’t be curious or creative, and they can’t easily recognise patterns. Most importantly, only human testers can empathise with users and recognise deeper usability problems. That’s the difference between checking and exploring.
8. Testing is all about finding bugs
Bugs (depending on how you define that word) are only part of the story. Testing is actually about identifying risks and opportunities in areas as diverse as functionality, security, performance, accessibility and usability. Beyond finding things that aren’t working properly now, the aim of testing is to spot things that might cause a problem in the future and also to highlight opportunities to add value.
9. Testers are unnecessary in Agile projects
There is, of course, a role for testers in Agile projects, but it looks very different from the traditional waterfall role. Agile testers have to be involved in projects right from the beginning and throughout. Rather than testing finished products at the end, they test concepts before development even begins by sanity checking and asking questions. Instead of writing comprehensive test plans in advance, they explore and evaluate products after each iteration. Most significantly, Agile testers work much more closely with developers to identify risks and to implement testing as part of the development process.
10. Testing is boring
When people think of testing they often focus on the rudimentary and repetitive checks. There’s no denying it, checking is boring, but that’s why smart testers make computers do the checking so that they can spend more time exploring. Testers are fortunate to work at the intersection of planning, design and development which gives them a unique opportunity to work with a wide range of disciplines and stakeholders to influence how a product evolves. It’s actually very exciting.
So, testing isn’t easy, but that’s part of what makes it interesting. Professional testers – certified or not – play an important role, but the whole project team is responsible for quality. That’s particularly true in Agile teams where exploration takes the place of planning. Also, computers can do some of the boring checks so that we don’t have to, but they’ll never take the place of human curiosity and empathy.Tags testing