The essential for software bug averting activities to work is the efficient recognition of these general defects and defect causes, so that proper activities can be applied to block or to eliminate them.
For ripe product lines or ripe software testing company, the great historical data of past bugs and related knowledge may be useful in recognizing general defects and defect causes.
Consequently, software bug averting should be a main alternative of quality assurance activities for such software products and companies.
Nevertheless, for new software products under development in a new environment for an emerging market, it would be difficult to accumulate existing bug data and analyze them to phrase general for software bug averting strategy.
Expected bugs, based on past practice or common knowledge, can be used for this goal. Nevertheless, the efficacy of the chosen software bug averting activities would be something uncertain, and should be closely observed and adjusted if it is indispensably.
In all of these cases with ripe or new software products, there are still several software bugs whose related defects or defect causes software testers couldn’t recognize practically.
This observation is highly true for big software systems, where it would be unrealizable to analyze all the current and potential bugs to identify their reasons in defects or defect causes.
Actually, software testing team cannot anticipate the chosen software bug averting activities to be 100 per cent efficient in blocking all the found defects or eliminating all the defect sources.
That is why there would still be several software bugs that slip off the bug averting techniques and get injected into big software systems.
It is necessary to search such bugs with the help of different other software quality assurance activities.