in its article SOFTWARE PROCESS AND MEASUREment Software Software, and I am sure that any basic, intermediate or advanced software developer will coincide.

1 - Testals only confirm the existence of the mistakes they find.

When you perform a set of tests and a series of errors are detected, nobody assures you that there are no more bugs in the software than the testing set does not detect, you only know that the detected errors exist.

2 - It is impossible, almost infinite, to test all possible cases.

The number of possible cases to be tested to find errors in the testing of software can be a high number, it can probably be infinite, so you must assume that all cases cannot be proven.

In addition, any correction that applies to the software found in the test battery to solve detected bugs will add new variables and they will cause the number of cases to be tested to increase again. Sad but true!

This means that like a pesticide, a set of tests will detect the errors for which it was designed but will not find the errors for which it was not built The automation of the execution of the tests loses its value over time since the errors it detects will not appear but will not alert us to others that have been introduced and for which it had not been designed.

4 - Bugs hide behind other bugs.

Bugs are usually hidden behind other bugs, since they usually group when they appear. This makes repeating the tests a investment in time that must be taken into account in the budget of the initial project.

5 - Software without errors is a lie .

If a test battery in your testing phase does not yield any error or bug, that is, everything has gone well, it does not mean that the software does not present errors is rather that in these tests they have not been able to detect them. There is no software without errors.

Finally I quote a phrase that I do not remember where I read but it is very true.

"Software that does not present errors, is surely a software that nobody uses."

article source

study