What we are
really doing is, we are trying to destroy the credibility of the software.
We would like to find out the faults, we would like to show there are faults
in the software. As we said earlier there will be faults in the software,
that have no way out. We have seen that we carry out certain tests, after
testing we found that 0.3 to 5 errors are there for every thousands line
of code. Those are going to be there. So the whole issue is: we are to find
out the faults, and we are to show that successfully we can find the faults.
In fact the test has without succeeded. The test is successfully only if
the fault is found. The test case is selected in such a manner the system must fail. Test cases are derived systematically and logically, because we know very dislikely that fail. And so we would be deriving those critical points. We will be deriving the test cases, so that the system is driven to those critical points and then it tests those critical aspects. Test set is judged by its ability to find the faults. Now, of course, the issue is: when do we want to stop testing? This becomes crucial, because we are never shown that there are no more faults in the program even if we debug for ever for ever. Probably for the practical purpose we can stop it for ever for ever, which is not possible. So what we have to do is: we should select some criteria, like testing all the branches, testing all the lines of the code. | ![]() |