This lecture is about preparing a software quality assurance plan. Software quality assurance functions aim to ensure that software systems meet the requirement specifications and quality standards. The definition of processes and standards develops and defines a software quality assurance framework that the development organization will use for framing its software quality assurance. Quality management is another function that is performed for specific software projects that includes planning quality and quality control. A quality plan is produced for adapting the SQA framework for specific software projects. The third function is process improvement which consists of activities to improve the quality assurance processes of the organization. The definition of processes and standards consists of defining an SQA framework. The SQA framework should consist of the following: a definition of software development, the quality management processes and methodologies, a definition of software quality standards and procedures and guidelines for carrying out the SQA activities during the lifecycle, a definition of quality metrics and indicators for quality measurement and assessment.
The quality management function adapts the SQA framework to the software project of an organization. The quality management function consists of two activities: quality planning and quality control. Quality planning takes place at the beginning of each project, and a quality plan is produced. Quality control occurs throughout the entire project, and involves monitoring and executing the project according to the quality plan, as well as modifying the quality plan to respond to changes. The SQA plan should include the following sections: purpose, management, standards and conventions, reviews and audits, configuration management, processes, methodologies, tools and techniques, and methods and indicators. The purpose should specify the purpose and goal of the plan as well as the product that the plan revolves around. The management section should specify the project organization and team structure and who will be responsible for SQA activities and functions. The standards and conventions section should specify SQA standards, documentation standards, standards for format and structure, coding standards and commentary standards. The reviews and audits section should specify the types of reviews that will be performed, including inspection, walk throughs, verification, validation, and it should specify the procedures for reporting problems and correction procedures. Processes, methodologies, tools and techniques section should specify processes, methodologies, tools and techniques that will be used to develop the software system and to conduct SQA activities. The metrics and indicators section should specify the metrics and indicators to be applied to measure and assess the software artifacts. It should specify the acceptable ranges for the metrics. The SQA control functions involves carrying out the SQA function correctly. SQA control includes SQA training aimed to educate the developers of the importance of SQA. SQA control also consists of collecting SQA related data and managing collected data using an SQA database. Different categories of data can be collected at a minimum defects must be collected and entered into the database for root cause analysis. Root cause analysis helps the software development organization identify weaknesses and improve its effort in those areas. The software control also provides process improvement recommendations to management, and ensures that the accepted recommendations are properly implemented. The organizational SQA framework should take into account the needs of the organization. The framework should not include everything. Good enough is enough. It should include items that are needed to contribute to the organization’s business quality goals. The framework should focus on the quality aspects that have the biggest impact on the quality and that require the least amount of effort. The framework should be easy to understand, and compliance should be easy to do, and the framework should be easy to modify to reflect changes that occur. Management support is essential. The management should understand the importance of quality and SQA. On the other hand, the SQA component should understand the constraints and priorities of management. A collaborative, cooperative approach between all stakeholders is essential. All stakeholders should be involved in the SQA activities. Input should be sought from the stakeholders. Stakeholders should be kept informed and feedback should be solicited from the stakeholders. The SQA activities, particularly, need support from the development teams. The development teams should be empowered to make SQA decisions. Agile development values working software over comprehensive documentation. Overemphasis on documentation should be avoided. Just enough documentation should be produced for the team to understand the application, and communicate and validate the ideas.