Software Quality Assurance
Length: 1161 words (3.3 double-spaced pages)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
High complexity, invisibility of the product and opportunity to detect the defects provided the uniqueness which will meet the challenges for the development and operation of quality assurance for software. This paper provides a brief introduction to software quality assurance and discuses about the software quality metrics and their limitations.
Keywords: SQA (software Quality Assurance), software quality metrics, process metrics, product metrics
Definition: Software Quality Assurance is a set of activities designed to evaluate the process by which the products are developed or manufactured. Contrast with quality control. 
Software Quality assurance is an important aspect of product development. Unlike the other engineering disciplines, such as manufacturing and hardware software quality assurance does not have control. 
The main objectives of SQA are it assures acceptable levels of confidence, conformance to functional technical requirements. It assures the acceptable levels of confidence to managerial scheduling and budgets requirements. It assures the software development and control processes described in the project's Management Plan are correctly carried out and that the project's procedures and standards are followed. SQA assures that clear and achievable standards exist and then evaluates the software product to the established standards.
Kurt F. Fischer identified the following eight QA functions to assure sufficient planning, reporting, and control to affect the development of software products which meet their contractual requirements.
1. Initial quality planning
2. Development of software standards
3. Development of quality assurance
4. Conduct of audits and reviews
5. Inspection and surveillance of
6. Configuration verifications
7. Management of the discrepancy
8. Retention of QA records
The hierarchy of SQA unit starts with the SQA unit head at the top and his planning tasks are preparing annual activity program and budget for the SQA unit, planning of the organizations software quality management system.
The management tasks include monitoring implementation of the annual SQA activities of a program appointing SQA members.
Fletcher J. Buckley identifies the three major roles of an SQA professional as
The first SQA role is Information Gatherer, who looks across many projects to provide management with the information it needs to make decisions among economic, marketing, legal, quality, and scheduling conflicts.
The second role projected for SQA is that of The Policeman. In this role, SQA stands between the producer and the consumer, detecting products that do not meet quality standards and preventing them from being delivered.
The third SQA role is that of the Helper. This is based on the belief that everyone wants to do a better job, and appreciates those who help them.
To get succeed in the above three major roles of SQA personnel Information-Gatherer, Policeman, and Helper, one should follow that:
• Each of the major SQA roles has distinct contributions to make.
• Each SQA person should understand the roles played should have the positive aspects of the position.
• Every person must be perceived as contributing to the improvement of the organization.
Two alternative definitions describe quality metrics as a category of SQA tools:
1. A quantitative measure of the degree to which an item possesses a given quality attributes
2. A function whose inputs are software data and whose output is a single numerical value that can be interpreted as the degree of which the software possesses a given quality attributes. 
The scope of software quality metrics is expanding considerably over the few decades. Metrics as a quality assurance tool has not been applied at an adequate level in the software industry. Only a small portion of software development organizations apply software quality metrics. Numerous research works has been dedicated to this subject.
Software metric may be defined as "an objective, which provides a quantitative measure of an attribute and a measure of the software product. The number of major defects found during a test and a comparison of that figure with a threshold of “goodness" or "badness" is objective. 
Objectives of Software Quality Metrics:
• It facilitates the management control and planning at the managerial level.
To achieve this objective is based on calculation of metrics regarding deviations of actual quality performance from planned performance and deviations from the timetable and budget.
• It indicates the situations that require maintenance, improvement planning in the form of corrective actions or suggesting preventives throughout the organizations.
To achieve this objective it is required to gather metrics information regarding the performance of teams and units etc.
Classification of software quality metrics in a two level system:
The first level distinguishes between two categories:
• Process metrics related to the software development process
• Product metrics related to software maintenance.
Each first level category is broken down into one of three sub categories
• Software process quality metrics
• Software process timetable metrics
• Software process timetable metrics
• Software process productivity metrics
The software product metrics are classified into four HD and corrective maintenance sub categories
• HD quality metrics
• HD productivity and effectiveness metrics
• Software corrective maintenance quality metrics
• Software corrective maintenance productivity and effectiveness metrics.
Requirements for successful software quality metrics:
• Relevant- measures an attribute of considerable importance.
• Valid- measures the required attribute
• Comprehensive- applicable to large variety of situations.
• Mutually exclusive- does not measure attributes already measured by other metrics.
• Reliable- produces similar results when applied in similar conditions
• . Does not require independent data collection –metrics data collection is based on currently employed data collection systems
• Easy and simple
Limitations of software metrics:
The following are the limitations of software metrics
• Budget constraints in allocating the necessary resources like manpower funds for development of a quality metrics system.
• Human factors especially opposition of employees to evaluation of their activities.
• Uncertainty regarding the data’s validity in reporting
As a result of these limitations most commonly used metrics suffer from low validity and getting limited results. Examples of metrics that exhibit severe weaknesses are
• Software development metrics that are based on measures such as KLOC,NDE and NCE
• Product metrics that are based on measures such as KLMC, NHYC and NYF.
Substantial research efforts are needed in order to develop metrics suitable to the software industry.
The following steps should be taken in future for the development of metrics to be successfully used in software quality assurance
1. Develop data bases to store metric data over several projects.
2. Analyze the data for commonalities.
3. Use the data to make decisions about the software development process. 
 IEEE definition
 Lars Pareto, Urban Boquist
Proceedings of the 3rd international workshop on Software quality assurance SOQUA '06November 2006
 Software quality assurance tools: recent experience and future requirements kurt.F.Fisher Computer Sciences CorporationFalls Church, Virginia 22046
 Raghavendra Rao Loka
Newark, CA 94560.
 J. E. Gaffney,
Proceedings of the ACM '81 conference ACM 81, January 1981
 Stefan Wagner, Michael Meisinger
Proceedings of the 3rd international workshop on Software quality assurance SOQUA '06
 A Checklist for Developing
Software Quality Metrics
Reesa E. Abrams, Consultant
Lower Main Street
Freeport, Maine 04032
 Design and analysis of hierarchical software metrics Ronald E. Prather
ACM Computing Surveys (CSUR), Volume 27 Issue 4 December 1995
 Software quality assurance: Daniel glain,pearson education limited.