In Waterfall, V-Model, Double V-Model and Agile, There are always a lot of testing involved.
We can always question "why we need to test?". Most common answers to this question are:
- To find defects
- Build confidence in software under test
- Assess quality of software
- Reduce failure costs
- Prove that the software conforms to user requirements / functional specifications
But, here is another question that we should also think about. "Can testing prove that a software is correct?".
It is not possible to prove the system has no defects, It is only possible to prove system has defects.
The purpose of testing is to build confidence that the system is working. But, the purpose of testing is also to find defects, and finding defects destroys confidence. So, Is the purpose of testing to destroy confidence?
We can have an analogy here. How does the Apple or Samsung say that the phone that they are developing is waterproof? They can prove it by putting the phone under water and check it's limitations.
This is a paradox. The Paradox of Testing.
The best way to build confidence is to try and destroy it.
A good tester should have the following qualities:
- Methodical and systematic
- Good interpersonal skills to communicate defects information
- Good written, verbal communication skills
- Experienced in error guessing
- Develop good relationship with developers through collaboration
- Requires a critical eye, attention to detail and curiosity
“A good tester is not the one who finds the most defects, but the one who manages to get most defects fixed.”