Definitely not! The major problem with testing that you cannot calculate how many error are in the code, functioning etc. There are many factors involved such as experience of programmer, complexity of the system etc.
No you cannot test a program 100 because : The number of inputs to a program is very large The number of outputs to a program is very large A tester does not have that much of time to test for each and every input conditions. Hence it is said that testing is a risk based exercise and you have to attain a state where you neither overtest or undertest a program.
Being a mathematician my first assumption is - GOD is only perfect entity in this whole universe. My second assumption is that GOD is not a computer program.
Now assume that- a program is 100 error free. it implies that the program is perfect which in turn implies that the program is GOD. But it contradicts 2nd assumption so my statement that a program is 100 error free must be wrong.
It is not the question of 100 or 90 or 50 in testing a program.
It is question of how effective and efficient is you’re testing in identifying bugs.
If a tester had tested a program 50 and is able to identify major bugs and contribute in improving quality of program then we do consider him as a good tester. (For this tester should have good functional knowledge and basic understanding of program.)
And If a tester had tested a program 100 but still not able to identify Major bugs and is not able to contribute in improving the quality of program then that tester is not a good tester.
Yours Hanuma.
"Any comments or suggestions over my answer always welcome"
As a tester we do not confirm saying 100 or 90 testing is done.. rather we confirm by making sure no critical or major bugs are present (i.e all the imp business & functional requirements are satisfied).. minor bugs some times are accepted by clients for thier own reasons.. this is the way to assure the application is RELIABLE
A finite state machine for example implemented using something like Ragel would have a finite number of outcomes and so would expect be possible to be 100 test covered.
No we can NEVER test a program completely and say the program is error -free.
Testing depends purely on the testers creativity to give inputs to a program his/her experience and naturally the knowledge on the requirements and domain.
The testing completion time depends on the product delivery time and the testing of major functionalities.