Testing in Software Development
Testing phase is key in a Systems Development Lifecycle (SDLC). It is the process of checking and validating that the software application developed meets both the business and technical needs while being in line with the solution designed and developed.
Software testing is done to answer the following questions which development testing and code reviews might not be able to answer:
- Does the application work as it is expected to?
- Does the application meet the user requirements?
- Is the application user friendly?
- Is the application compatible with the other applications in the system landscape?
- How is the application performance?
- Is the application scalable?
- What are the areas where the application needs to be worked or tweaked?
- Is the application release ready?
Answering these pertinent questions would not only help in saving time and money by faster identification of defects but also help in reducing or even avoiding development downtime. This in turn would help in building a better customer relationship as the customers would be satisfied with the product delivered.
It is during the testing phase itself that the defects or errors in the code would be identified and subsequently corrected. The earlier in the SDLC cycle the defects are identified, the lesser would be the impact of the errors on the project cost and timelines. While validating errors it is important to review the requirement specs and the design documents paying attention to ‘who is the defect most important too?’ Usually the defect’s importance would be considered from the customer’s perspective and how it affects the application’s usability and function.
Verification – Validation – Defect Identification
The testing team is primarily for measuring quality but not for improving it. There are basically three objectives that any software testing exercise tries to fulfil, these are:
- Verification: This is the process by which one can confirm that the software is in line with the technical specifications.
- Validation: This is the process by which one can confirm if the software meets the user or business needs.
- Defect Identification: This is the variance of the actual result from the expected result. It is important to trace the defect to the phase it arises for defect correction.
Quality assurance is another aspect which needs to be stressed during software development. This is essentially the degree to which the project team and the developers document the software development process and to the extent to which this follows the corporate standards or software development best practices.