This course is a two day overview of the theory and concepts of software quality assurance (SQA) and an exploration of the techniques and processes used to implement SQA programs within an organization. Modern SQA has emerged from the fusion of several disciplines: the first is the body of quality assurance developed over the last century for business and manufacturing, the second is the more recent work on software development process maturity and related testing maturity models, and the third is the establishment of a number of formal quality standards such as ISO/IEC:25010. The basic foundations of SQA are introduced with discussions on what quality is and how we derived actual working quality models that can be used and implemented in operational environments. In addition to the more formal standards, the current thinking on “good enough quality” and continuous quality are covered. These ideas are integrated with the current work on software process maturity, testing maturity models and how these concepts integrate with modern Agile, DevOps and other development models. Each of the basic areas of software quality is explored. In the section on software quality management, students work through the high level activities of risk and requirements analysis, integrating quality management into the software project planning and developing the appropriate software testing plans and processes. Also covered is the establishment of metrics to evaluate how well testing and other quality activities are being performed in order to implement testing process quality improvements. The software quality control section walks though how we translate the software quality requirements into specific testing goals, plans, and procedures and how testing activities are evaluated and modified to attain the quality objectives. The course does not cover any software testing techniques. A brief overview of statistical quality control, using six sigma as an example, is included in the discussion. The section on software quality assurance focuses on the activities to evaluate the software development process including: integration of testing throughout the development life cycle, defect prevention, the development of best standards for continuous improvement, defect analysis, root cause analysis and defect analysis. A variety of different techniques are presented that are used in a SQA environment: conducting reviews, inspections and walkthroughs, formal verification techniques, model validation, code metrics, the use of automated tools for various SQA functions. This provides an introduction into some of the challenges faced in modern mission critical software systems and how these are addresses using techniques focused on fault tolerance, robustness and what SQA means for real time systems. The course concludes with a discussion the management issues and challenges faced when trying to implement a software quality program within an organization.
The course has no prerequisites.
2 Days/Lecture & Lab
The course is appropriate for software testers and QA staff, managers and team leads or anyone who needs to understand the basics of software quality assurance.