1.1 Introduction
Most of us have had an experience with software that did not work as expected. Software that does not work correctly can lead to many problems. Therefore testing of systems and documentation can help to reduce the risk of problems occurring during operation and contribute to the quality of the software system.When testing does find defects, the quality of the software system increases when those defects are fixed.
1.2 Causes of software defects
Since we all are human beings and we are fallible due to time pressure, complex codes and technologies defects may appear in the software products.Not only that due to below reasons defects and failures may occur
- •errors in the specification, design, and implementation of the software and
- system
- • errors in use of the system
- • environmental conditions
- • intentional damage
- • potential consequences of earlier errors, intentional damage, defects and failures.
1.3 What is the cost of defects
According to the above graph, we can see that the cost of fixing defects during the live use is very high than compared to the requirement gathering stage.It is quite often the case that defects detected at a very late stage, depending on how serious they are, are not corrected because the cost of doing so is too expensive. Also, if the software is delivered and meets an agreed specification, it sometimes still won’t be accepted if the specification was wrong. The project team may have delivered exactly what they were asked to deliver, but it is not what the users wanted. This can lead to users being unhappy with the system that is finally delivered.
1.4 Role of testing and quality
So Software testing is really required to point out the defects and errors that were made during the development phases. It’s essential since it makes sure of the Customer’s reliability and their satisfaction in the application. It is very important to ensure the Quality of the product.
1.5 How much testing is enough
Testing should provide sufficient information to stakeholders to make informed decisions about the release of the software or system being tested, for the next development step or handover to customer.