Many clients come to us at Segue and are debating when to start testing as they’re developing new software. In just about all cases, software testing should start as soon as the design and requirements are being baselined. Involvement in the beginning of a project makes testers more efficient by enabling them to learn more about the product they will be testing. Having a more thorough understanding of the product and business rules allows the tester to design test plans and cases more efficiently. This early start provides several advantages which improve the overall efficacy of software testing.
During the design and requirements phase, testers can work with developers to determine what aspects of a design are testable and what areas have higher risk. This knowledge will help prevent testing errors and make testers better equipped to design test cases and identify defects.
Identifying Defects in Software Development
Identifying defects earlier in the process is less expensive. For example, if a tester is verifying a requirement and sees that an error message is missing, they can identify this defect before a developer has spent time coding under the impression that there is no error, thus saving money on work that may need to be redone. The importance of early involvement is illustrated by a variety of studies which show that catching a fault early in the requirements and design stages is more cost effective than catching it after a system has been released. The ratios vary between a 5:1 and 100:1 difference in cost, but all studies say it costs a lot more in resources to fix a system after release. These costs for fixing the application do not take into account the risks to an organization’s reputation and the workaround costs associated with faults and missing functionality, so the true cost is much higher.
Delayed involvement limits how many issues are identified, due to both lack of time to test and the testers’ lack of understanding the requirements. Waiting to bring in testers at the end of a project is a characteristic of the Waterfall Model. The Waterfall Model is the idea that each sequence should be completed before proceeding to the next. With the Waterfall Model, Quality Control is not involved until the end and therefore issues are found very late in the development life cycle. This is one of the reasons the Verification and Validation method is one of the preferred methodologies. Verification and Validation (V&V) is the process of ensuring that the product or system in development conforms to customer expectations as captured by the system requirements. Segue’s verification techniques include:
• Requirement Specification Verification
• Functional Design Verification
• Verification of the Data Migration Plan
• Reviews, Audits, Walkthroughs and “Buddy Checks”
V&V Quality Control activities are carried out in parallel to requirement, design and development activities to ensure a higher level of quality. The V-Model illustrates that testing activities (Verification and Validation) can be integrated into each phase of the product life cycle. The Validation part of testing is integrated into the earlier phases of the lifecycle, which includes reviewing end user requirements and design documents. The specific methodologies used for testing may vary from project to project, but there is a role for testing in every phase of your project and throughout the lifetime of the application.
The goal of Quality Control (QC) is to ensure the delivery of reliable products that satisfy the stated requirements and meet the intended business need(s) of the client. To meet this goal, Segue ensures that Quality Control is involved early in the Software Development Life Cycle.