We discussed the concept, definition, and three phases of the discipline of software quality assurance in our last blog will focus on the implementation of Software Quality Assurance in an organization. Software Quality Assurance is a holistic approach to looking at software quality. An organization derives massive cost savings if all bugs are caught in the “requirements” phase. A high premium has to be paid in maintenance cost and client credibility when clients discover problems after the system is in “production”. So, let’s discuss the implementation of Quality Assurance and its features. In a nutshell, the implementation process consists of requirements management, functional and non-functional testing, and the software delivery process, all implemented with appropriate instrumentation and metrics.
Robust Requirements Management
- To implement requirements management, we start with a set of clearly defined and documented Best Practices.
- Your SQA process must support iterative and incremental development.
- Team of professional business analysts and experts who have the right discipline and understanding of the overall process.
Rigorous, Functional and Performance Testing
- SQA implementation requires rigorous planning with risk management.
- Planning should start early as soon as the requirements are completed.
- Testing should start early in the lifecycle and should be repeatable.
- The testing should be easy to conduct and should be done (regression testing) when changes are made to the software.
Configuration and Software Delivery Process
- SQA process should be guided by a configurable delivery process and supporting tools.
- Delivery process should be iterative, incremental and as automated as possible.
- The organization should encourage smart practices, which save time, create efficiency and are in a constant cycle of refinement and improvement.
- It provides an overview and analysis of the whole process.
The chart below shows that everyone in the organization has a role to play in SQA. Success is achieved only when everyone understands their role, takes ownership of what they have to contribute towards quality and is equipped with the appropriate tool set. The chart below shows from the client all the way to the support team; everyone has to be aligned on the objectives of quality management.
Hence, in order to successfully implement SQA, an organization will need to take a systematic approach, i.e. define the roles, engage the client, implement best practices and deploy the tools necessary to operationalize and measure quality.