From the course: ISTQB Foundation Cert Prep

Why is testing necessary?

- [Instructor] Rigorous testing of components, systems and their associated documentation can help reduce the risk of failures occurring. When defects are detected and subsequently fixed, this contributes to the quality of the components or system overall which results in a better product being produced. In addition, software testers may also be required to meet contractual or legal requirements or industry specific standards with their testing. So what are some of testing's contributions to software success? Having testers involved in the review of requirements or user stories could detect defects in these work products. The identification and removal of requirements defects reduces the risk of incorrect or untestable features being developed. Having testers work closely with the system designers while the system is being designed can increase each party's understanding of the design and how to test it. This can reduce the risk of fundamental design defects and enable tests to be identified at an early stage. Having testers work closely with developers while the code is under development can increase each part is understanding of the code and how to test it. This can further reduce the risk of defects within the code and the tests. And having tester's verify and validate the software prior to release can detect failures that might otherwise have been missed and support the process of removing defects that caused the failures. This increases the likelihood that the software will meet stakeholder needs and satisfy requirements. It's also important to highlight the testing is not the same as quality assurance, though they are related. Within the larger concept of quality management, quality assurance is typically focused on the adherence to proper processes in order to provide confidence that the appropriate levels of quality will be achieved. Test activities are part of the overall software development or maintenance process. Since quality assurance is concerned with the proper execution of the entire process, quality assurance supports proper testing. It's important to remember that whilst he usually used interchangeably, the terms errors, defects and failures are actually quite different within the ISTQB glossary. A person can make an error or mistake which can lead to the introduction of a defect or a bug in the software code or in some other part of the system. An error that leads to the introduction of a defect in one work product can trigger an error that leads to the introduction of a defect in a related work product. For example, an error in the requirements of a component of the system can introduce a requirements defect. This can then result when a coding error that leads to the defect in the code. A failure is the result of that defective code being executed. The root cause of this defect was the error in the requirements. And the effect of this error would have been the customer complaint about the system not working as they expected. Errors can occur for a number of different reasons, including but not limited to time pressures, human fallibility, inexperienced or insufficiently skilled project participants, miscommunication between project members, code complexity, misunderstandings about interest system interfaces and new unfamiliar technologies. In addition to failures caused due to the defects in the code, failures can also be caused by environmental conditions. For example, radiation, electromagnetic fields and pollution can cause defects in firmware or influence the execution of software by changing hardwares conditions.

Contents