Why should we bother in providing our services if developers usually test their code before it goes into production and if something is caught by them, they usually fix it, right?
QA is a critical step in the development process.
QA is a process designed to give management and the customer confidence that an organization will deliver quality information technology products and services.
Importance of QA and the Cost of Defects
The role of a QA person is essential because self testing is unreliable and obviously can cause a conflict of interests. A QA person must be someone that is impartial and independent to the project to test. A developer might not be able to test by themselves because of their lack of time and because their conflict of interests.
Error in software requirements are more frequent than errors in the source code itself. These are also more difficult to remove. This is why it is ideal that the testing team is involved since the beginning of the Requirement Analysis phase. This will provide the testing team a better vision of the functionality of the system.
If a defect is found in an earlier stage of the Development process, it will be cheaper to fix than if found late in the process.
Let's say a defect was introduced into specifications, and one of these options might occur:
- it is well caught in the Requirement Gathering phase or in Design phase. As a result, the issue can be fixed and reissued without a lot of expense involvement.
- it is not caught in the specifications and found on Coding phase. Rework must be done in the developer's side and testing might need to be done with its corresponding regression.
- it is not caught in the specifications, however it is found until UAT (User Acceptance Testing) . As a result, the cost to fix this issue will be too expensive, since they will need to redefine the specifications and go through all of the process again, including the testing done and its corresponding regression.
So as you can see, testing can provide greater benefits to the whole process if it is included since the Requirements Gathering phase.