Quality Assurance (QA) focuses on ‘prevention’. It covers all software development processes. This includes monitoring and improving the process, ensuring that standards and procedures are followed, and that problems are identified and resolved. QA encompasses processes such as code reviews and release management. It is the processes followed by people within the project, Project Managers, Analysts, Developers, Testers, etc. to prevent problems and assure quality. A subset of Quality Assurance is Software testing. Software testing focuses on ‘detection’. Testing is one process that helps ensure software quality. It is the process of examining software components in order to find errors.
To understand the concept of Software Quality Assurance in Software Development step by step, consider the following 5 steps: Design, Coding, Testing, Deployment, and Post-Release Maintenance. These are the 5 main steps of the development of the software. The first step will be the “Design” of the software. The designing should being with the client’s need make sure everything is there before you start the next step. There are two design deliverables are usually required, the external design and the internal design. “Coding” is the longest phase of the software development life cycle is implementation as this is when code is produced based on the deliverables of the design phase. For a developer, this is the main focus of the life cycle because code is produced. Implementation may overlap with both the design and testing phases. Then comes the “Testing” when the requirements are validated by ensuring the code produced in implementation is actually addressing the gathered needs. Next is “Deployment” which is also called release of the software. And this is when software delivers to the customers and gets installed. At last “Post-Release Maintenance” that only takes place if any error takes place after the software has been released and installed. The Post-Release Maintenance should be avoided since the cost of post-release maintenance’s cost is 67% of the total cost.
Software Quality Assurance is comprised of the following three activities:
- Verification Testing
- Validation Testing
- Establishing and Enforcing Test Procedures
Verification Testing focuses on the testing of ‘ideas’ and does not involve executing the code. The first four QA activities in the chart are verification activities. Verification is a process of examination or review of the work product at the beginning of the SDLC.
Validation Testing is the assurance that a product, service, or system meets the needs of the customer and other identified stakeholders. It often involves acceptance and suitability with external customers.
There are two main testing techniques that are used which are following Black box testing and White box testing. The Black box testing technique is where you treat the application as a black box by inputting data and observing the output results. Black box testing is not based on any knowledge of internal design or code. This testing is performed by Black Box testers. Another name for black box technique is Specification Based technique since tests are based on external requirements and functionality. The White box testing technique is based on knowledge of the internal logic of an application’s code. Another name for white box technique is Structure Based technique.