I was having a conversation the other day with a developer who came out with the comment that “testers should no longer be required in the modern software development world”. I couldn’t believe I was still hearing such unenlightened views in 2016, so after I had picked my bottom jaw up off the floor, I politely asked for an explanation of this viewpoint.
The developer’s point was actually well made, their argument was that with modern visual programming languages, source and version control, continuous integration and automated unit testing, developers should produce much higher quality code than ever before. Some time ago another friend of mine, who also works in software development, suggested that “if developers did their jobs properly in the first place there would be no need for testing”. The combination of these views would suggest that Testing is no longer required or will no longer be required in the near future.
So I went back to basics and thought about errors, failures and defects.
- Error: The ISTQB definition of an error is “A human action that produces an incorrect result”
- Failure: The ISTQB definition of a failure is “Deviation of the component or system from its expected delivery, service or result”
- Defect: The ISTQB definition of a defect is “A flaw in a component or system that can cause the component or system to fail to perform its required function, e.g., an incorrect statement or data definition. A defect, if encountered during execution, may cause a failure of the component or system”
- while developers are human, errors will exist: “To err is human” (Alexander Pope, “Essay on Criticism”)
- If errors exist these will result in failures,
- therefore defects will exist,
- ergo, as long as humans develop software, Testing is still required
Phew, I’m still in a job!
I accept that one day we might use robots to write code (indeed code generators already exist and have done for some considerable time), but they will no doubt have been originally programmed by humans so this may be a tautology. Robot code will potentially be error free (or robot testers may be required to check for robotic coding errors). In the meantime, I find I have to forgive the developer and friend who works in software development for their defective views because “to err is human; to forgive, divine” (Alexander Pope, “Essay on Criticism”).
If you would like some help with finding errors and preventing failures, to give you confidence in your software, website or apps, please get in touch with us via www.buitech.co.uk, emailing firstname.lastname@example.org or by calling us on 0330 223 3036.