2 Software Quality Assurance Components

  1. Introduction

SQA assurance system is an organized way of carrying out the various SQA activities during the development and maintenance of a software product. Being a system, it combines a wide range of SQA components, which are employed to reduce the multitude of sources of software errors and achieve an acceptable level of software quality.

2.1    Components of SQA

          The following are the various components of SQA:

  • Pre-project components
  • Project life cycle components
  • Infrastructure error prevention and improvement components
  • Software quality management components
  • Standardization, certification and system assessment components
  • Organizational components

Each of these components of SQA will be discussed

2.1.1 Pre-project components

The pre-project components of SQA aim at improving the preparatory steps taken before commencing work in the project. It assures that the project commitments and goals are adequately defined, considering the resources, schedule and budget. It also assures that the development of quality plans are done correctly. It consists of the following components:

  • Contract review component
  • Development and quality plans

                  2.1.1.1 Contract review components

      Software projects are performed based on agreed-upon functional specifications, budget and schedule. This agreement is stated formally as a contract. Contract review components include the following technical tasks:

  • Classification of the customer’s requirements
  • Review of the project’s schedule and resource requirement estimates
  • Evaluation of the professional staff capacity to carry out the  proposed project.
  • Evaluation of the customer’s capacity to fulfill his obligation.
  • Evaluation of the development risks.

      2.1.1.2 Development and quality plans

                    Software development plan and quality plan are prepared the moment the development contract is signed by both parties. The main issues treated in the development plan are:

  • Schedules
  • Required manpower and hardware resources
  • Risk evaluation
  • Organizational issues: team members, subcontractors and partnerships
  • Software reuse plans

The main issues treated in the project’s quality plan are:

  • Quality goals, which are expressed in appropriate measureable terms.
  • Criteria for starting and ending project stages.
  • List of reviews, tests and other scheduled verification and validation

      activities.

2.1.2 Software project life cycle components

          Software project consists of two stages, which are:

  • The development life cycle stage
  • The operation-maintenance stage

Therefore, the software project life cycle components of the SQA components consist of two components, which are:

2,1,2,1The development life cycle stage component

This SQA component aims at detecting design and programming errors. It is divided into the following classes:

  • 1          Reviews

During design, some documents, like design reports, software test documents, software installation plan and software manuals are produced. Review aim at examining and approving these documents. Review consists of the following:

  • Formal design review

The aim of formal design review is to provide formal professional approvals of the documents generated during design. This is because some of the documents need formal professional approval before the developer can proceed to the next stage. An ad-hoc committee that comprise of senior professionals (chief software engineer, project leader, department manager) meet in what is known as Design Review (DR), with the aim of examining the documents, if their quality agree with what was stipulated in the development contract.

  • Peer review

This focuses on examining and reviewing short documents.

  • 2          Expert opinion

This supports quality assessment efforts by introducing additional external experts/professional into the organization. This is useful when there is insufficient in-house professional in a given area.

  • 3          Software testing

Software tests are formal SQA components that are targeted towards reviewing the actual running of the software. The tests are based on prepared list of test cases that represent a variety of expected scenarios.

  • The operation-maintenance stage components

This SQA component includes specialized maintenance and development components that are applied mainly for functionality and improving maintenance tasks.

Furthermore, apart from these two components of the project life cycle component, there is an additional component, which aim at assuring the quality of project parts that are performed by subcontractors or other external practitioners during project development and maintenance.

2.1.3 Infrastructure error prevention and improvement components

These SQA components aim at reducing the rate of error, or eliminating the occurrence of software errors. They include the following classes/components:

  • Procedure and work instructions

This component aims at providing detailed definition for the performance of specific type of development activities. Procedures are planned to be generally applicable and to serve the entire organization.

Work instructions, on the other hand, provide detail direction for the use of method that are applied in unique instance and employed specialized personnel.

  • Templates and checklists
  • Staff training , retraining and certification
  • Preventive and corrective actions
  • Configuration management
  • Documentation control

Important documents that are related to the software development are called controlled documents. Some of these controlled documents are: customer requirement document, contract documents, design reports, project plans, development standard etc. The availability of these controlled documents cannot be overemphasized; therefore, this SQA component aims at ensuring the efficient and long term availability of these control documents. Documentation control activities/components include the following:

  • Definition of the types of controlled documents needed.
  • Specification of the formats, documents identification method etc.
  • Definition of review and approval processes for each controlled document.
  • Definition of the archive storage method.

2.1.4  Software quality management components

The major goal of this component is to control development and management activities. It includes the following components:

2.1.4.1 Project progress control (including maintenance contract control)

The main objective of project progress control component is to detect the appearance of any situation that may induce deviation from the project s plan. It focuses on resource usage, schedules, risk management activities and budget

2.1.4.2 Software quality metrics

This component focuses on the measurement of the various aspects of software quality. This measurement is considered to be an effective tool for the support of control activities and process improvement. Software quality metrics are defined for the following:

  • Quality of software development and maintenance activities.
  • Development team productivity.
  • Help desk and maintenance team productivity.
  • Software fault density
  • Schedule deviations.

2.1.4.3 Software quality cost

2.1.5 Standardization, certification and SQA assessment components

These components are responsible for performing international, professional and managerial standards within the organization.

2.1.6  SQA Organising components

All the SQA components cannot be applied in a vacuum, it requires an organizational base that consists of management, software testing personnel and

SQA units, and other professionals and practitioners interested in software quality (SQA trustees, SQA committee members and SQA forum members). The main objectives of the organizational base of SQA are as follows:

■ To develop and support implementation of SQA components.

■ To detect deviations from SQA procedures and methodology.

■ To suggest improvements to SQA components.

However each part of the organizational base (management, software testing personnel, SQA unit, SQA trustees, SQA committee members and SQA forum members) has its specific tasks.

Scroll to Top