Software quality assurance (SQA) consists of a means of monitoring the software engineering processes and methods used to ensure quality.
What is Software Quality Assurance?
When we talk about software quality, we are actually talking about the evaluation of the software based on certain attributes.
Software quality assurance (SQA) is a process that ensures that developed software meets and at the same time complies with defined or standardized quality specifications. SQA is an ongoing process specifically within the software development life cycle (SDLC) that routinely checks the developed software to ensure it meets desired quality measures.
Importance Approaches in Quality Assurance
Defect Management Approach
1. Functionality: refers to complete set of important functions that are provided by the software
2. Reliability: this refers to the capability of software to perform under certain conditions for a defined duration. This also defines the ability of the system to withstand component failure.
3. Usability: refers to the ease of use of a function.
4. Efficiency: generally depends on good architecture and coding practices followed while developing software.
5. Maintainability: also known as supportability. It is greatly dependant on code readability and complexity and refers to the ability to identify and fix a fault in a software:
6. Portability: Ability of the system to adopt to changes in its environment
Quality Attributes Approach
Cost of Software Quality
Cost of quality is important. By conducting an analysis of cost of software quality you would know what the return on that investment (ROI) is.
Cost of Software Failure
- It display slack of ability to keep up: this generally happens when the software starts aging. As it grows old the size increases because the easiest way of adding a feature is by adding new code without touching any part of code written earlier. Over a period of time it becomes bulky and it becomes difficult to identify the sections of code that need to be changed.
- Performance drop is observed: Every application generally slows down with age. Hence, it tends to occupy more and more computer memory therefore it is better to switch to other software.
- It does not seem to be reliable: It is a known fact that every time changes are made to the code of the software to fix an error, more defects are introduced in the system. Surprisingly, this is one of the major reasons for increased failure rates and in order to save situation it is always better to ditch the project or give up bug fixing.
Software Testing VS Quality Assurance
Testers are often looked upon as Software Quality Assurance professionals because the objectives of software testing as well as quality assurance are the same. For instance, to ensure that the software is of top quality.
Quality Assurance VS Quality Control
Furthermore, another subject that is closely related to quality assurance is quality control. primarily, people often get confused between the two but there is a huge difference. While quality assurance is specifically all about preventive activities, quality control focuses on corrective processes.
Importance of Audit and Inspection in SQA
Primarily, audit specifically comprises of some very systematic processes that define how the software testing is taking place in the organization. On the other hand, IEEE defines audit as a review of documented processes to ensure that the organization. Also that a team is specifically following all the processes as per the defined standards.
Inspection can be a formal or an informal review of software requirement, designer or code. The following processes are considered as part of Inspection:
- Overview Preparation
- Inspection Meeting
- Follow up
To Wrap Up
Furthermore, Software Quality Assurance (SQA) is a set of activities for ensuring quality in software engineering processes. It eventually results, or at least gives confidence, in the quality of software products.
It is a part of quality management focused on providing confidence that quality requirements will be fulfilled. Moreover, Software Quality Assurance encompasses the entire software development life cycle. And also, the goal is to ensure that the development. And consequently, maintenance processes are continuously improved to produce products that meet specifications.