• Skip to main content
  • Skip to primary sidebar
  • Computer Architecture
  • Computer Networks
  • DBMS
  • OS
  • Software Engineering
  • Security
  • OOT
binary-terms-logo

Binary Terms

The Computer Science & IT Guide

Software Quality Assurance (SQA)

14th March 2020 by Neha T Leave a Comment

Software quality assurance is a set of activities followed by software engineers to ensures that the software meets the specified requirements of the user, and it does not have any error. Along with this the software is able to manage risk and secures the data of user at each level.

Though maintaining the quality of the software is looked after by the software developing organization. But, software quality assurance (SQA) organization ensure that activities involved in maintaining the quality of the software are conducted efficiently by the software organization.

In this section, we will discuss software quality assurance in brief along with the elements of SQA. We will also study the goals and metrics of SQA.

Content: Software Quality Assurance (SQA)

  1. What is SQA?
  2. Elements of SQA
  3. Goals, Attributes and Metrics of SQA
  4. SQA Plan
  5. Key Takeaways

What is Software Quality Assurance in Software Engineering?

Before getting into details of software quality assurance you must know about software quality. Software quality is an extent to which the developed software meets the requirements specified by the customers. More the requirements are satisfied better is the quality of the software.

Software quality assurance is the set of actions performed by the SQA group to ensure the quality of a software. Software quality assurance incorporates:

  • SQA process on the software.
  • Assuring and controlling the quality of software which include technical evaluation and testing.
  • Applying software engineering practices effectively.
  • Managing software work products like an architectural model, document with a description of the software, source code. Controlling changes made to software work product.
  • Measuring and reporting the quality of the software.

Elements of Software Quality Assurance

SQA encompasses a wide range of activities that can be performed to ensure the quality of the software.

1. Standards

We all know that organizations like IEEE, ISO etc. has lined-up a lot up software engineering standards which should be imposed by the customer and even embraced by software engineers while developing software.

SQA team must ensure that standards established by the authorized organization are followed by the software engineers.

2. Review & Audit

The software is evaluated technically by the SQA team in order to discover an error in the software. While auditing a software the SQA team confirms that good quality guidelines are followed by the software engineers while developing the software.

3. Testing

The elemental goal of software testing is to identify the bug in the software. SQA team has the responsibility of planning the testing systematically and conducting it efficiently. This would raise the possibility of finding the bug in the software if any.

4. Analyzing Error

Software testing reveals bugs and errors in the software which are analysed by the SQA team in order to discover how the bugs or errors are introduced in the software and also discover the possible methods required to eliminate those errors or bugs.

5. Change Management

The customer can ask for modifications between the development of the software. The changes are the most distracting aspect of any software project.

If the implementation of the changes is not properly managed it will cause confusion which will affect the quality of the software. The SQA team takes care that change management is practised while developing the software.

6. Education

It is the responsibility of the SQA organization to enlighten the software organizations by improving their software engineering practices.

7. Vendor Management

It is the responsibility of SQA to suggest software vendors, to accept the quality practices while developing the software. SQA must also incorporate these quality instructions in a contract with software vendors.

8. Security Management

With the increase in cybercrime, the government has regulated the software organization to incorporate policies to protect data at all level. It is the responsibility of SQA to verify whether the software organization are using appropriate technology to acquire software security.

9. Safety

The hidden defects of any human-rated software (aircraft applications) can lead to catastrophic events. So, it is the responsibility of SQA to evaluate the effect of software failure and introduce steps to eliminate the risk.

10. Risk Management

Though it is the job of software organization to analyze and reduce the risk in the software. But, it is the responsibility of SQA to make sure that risk management actions are properly conducted and the backup plan has been confirmed.

Goals, Attributes and Metrics of SQA

In this section, we will discuss the goals of SQA. We will also make a note on the attributes and metric of each goal.

a. Requirements Quality

SQA must ensure that the requirements specified by the user are properly reviewed by the software developers. Software developers have properly analyzed the correctness, completeness of specified requirements as it has a strong influence on the quality of software.

Attribute: Metric

Ambiguity: There can be a number of ambiguous modifiers in the specified requirement.

Completeness: There can be a number of requirements that are neither announced nor determined yet.

Understandability: There can be a number of sections or subsections in the specified requirements that are not understood by developers.

Volatility: Requirements can be volatile as the user can request a number of changes in the requirements.
As the requirements are volatile and the user can request changes in it, the time requires to complete the process will also be changed.

Traceability: There can be a number of requirements that cannot be traced to design code.

Model Clarity: Developers can design a number of UML models for the specified requirements. Each model would have a number of descriptive pages.

b. Design Quality

After analyzing the requirements specified by the user UML models are designed to visualize the way the system will be designed. The job of SQA is to evaluate whether the design model conforms the specified requirements to achieve quality.

Attribute: Metric

Architectural Integrity: Developers must be able to assess the architectural elements to confirm the quality of the architectural model.

Component Completeness: The components of the architectural model are completely defined or not.

Interface Complexity: The number moves required to get the desired function.

Patterns: The number of patterns used to design architectural model.

c. Code Quality

The code of the software and it’s related descriptive information must obey the local coding standards. So, that it can be maintained for long in future. It is the job of SQA to observe the quality of code.

Attribute: Metric

Complexity: The number of cyclomatic complexity in the code.

Understandability: The understandability of code relies on the percent of internal comment in the code and the naming convention used while naming the variables.

Reusability: The number of components in the code that can be reused.

d. Quality Control Effectiveness

Software developers should use minimal resources and try to achieve high quality. The job of SQA is to analyze whether the resources are allocated in an effective manner.

Attribute: Metric

Resource Allocation: Time spent by staff per activity.

Completion rate: Actual time for completion vs. Committed time for completion.

SQA Plan

The SQA plan is the guideline which provides the direction for software quality assurance. SQA plan act as a template which can be implemented for each software project. Some standards have been established by IEEE. According to the standards, the structure of the plan should be able to identify:

  1. The motive and scope of the plan.
  2. Explain all the software engineering work product that is within the scope of SQA.
  3. All the standards and practices applied during software development.
  4. SQA activities and tasks.
  5. Tools and methods assisting SQA activities and tasks.
  6. Software configuration management.
  7. The technique of organizing and maintaining SQA related information.

Key Takeaways

  • Software quality assurance is the set of actions that are applied to all the software engineering process while developing the software to ensure the quality of the software.

Software quality assurance can be performed by the software developer team or another set of staff can be appointed for this.

Related Terms:

  1. Prototyping Model
  2. Waterfall Process Model
  3. Incremental Development Model
  4. Spiral Model
  5. Software Testing Strategies

Reader Interactions

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Primary Sidebar

Most Searched Terms

  • Directory Structure
  • Contiguous Memory Allocation
  • Addressing Mode and its Types
  • Pipelining
  • Vector Processing
  • Register Organization
  • Direct Memory Access (DMA)
  • Process Control Block (PCB)
  • Swapping in Operating System
  • Relational Data Model

Recent Additions

  • Segmentation in OS
  • Semaphore in Operating System
  • Thread Libraries in OS
  • Principles of Cloud Computing
  • Security Challenges in Cloud Computing
  • Identity as a Service (IDaaS)
  • Data Privacy in Cloud Computing
  • Federated Cloud
  • Software as a Service (SaaS)
  • Platform as a Service (PaaS)

Categories

  • Cloud Computing
  • Computer Architecture
  • Computer Networks
  • Data Warehouse and Mining
  • DBMS
  • Object Oriented Technology
  • Operating System
  • Security
  • Software Engineering

Copyright © 2021 · Binary Terms · Contact Us · About Us · Privacy