Software Quality Assurance: Overview of
Software Quality Assurance: Overview of
Assurance
Chapter # 1
Overview of Software
Quality Assurance
• Procedures are required, to define the order and schedule in which the programs are
performed, the method employed, and the person responsible for performing the
activities that are necessary for applying the software.
• Various types of documentation are needed for developers, users and maintenance
personnel. The development documentation (the requirements report, design
reports, program descriptions, etc.) allows efficient cooperation and coordination
among development team members and efficient reviews and inspections of the
design and programming products.
• The user’s documentation (the “user’s manual”, etc.) provides a description of the
available applications and the appropriate method for their use. The maintenance
documentation (the “programmer’s software manual”, etc.) provides the maintenance
team with all the required information about the code, and the structure and tasks of
each software module. This information is used when trying to locate causes of
software failures (“bugs”) or to change or add to existing software.
• Data including parameters, codes and name lists that adapt the software to the needs
of the specific user are necessary for operating the software
Software quality – IEEE definition
• Software quality is:
• 1. The degree to which a system, component, or process meets specified
requirements.
• 2. The degree to which a system, component, or process meets customer or user
needs or expectations.
• The above definition offers two alternative definitions of software quality, held by the
founders of modern quality assurance, Philip B. Crosby and Joseph M. Juran. Each
definition reflects a different conception of software quality:
• Quality means conformance to requirements” (Crosby, 1979).
• (1) Quality consists of those product features which meet the needs of customers
and thereby provide product satisfaction.
• (2) Quality consists of freedom from deficiencies” (Juran, 1988).
• Crosby’s definition of software quality refers to the degree to which the written
software meets the specifications prepared by the customer and his professional
team. This means that errors included in the software specification are not
considered and do not reduce the software quality, a characteristic that can be
considered the approach’s deficiency.
Continue
• Appraisal costs include activities to gain insight into product condition the “first time
through” each process
• Failure costs are those that would disappear if no defects appeared before shipping a
product to customers. Failure costs may be subdivided into internal failure costs and
external failure costs. Internal failure costs are incurred when we detect a defect in our
product prior to shipment. Internal failure costs include
• Rework
• Repair
• Failure mode analysis
• External failure costs are associated with defects found after the product has been
shipped to the customer. Examples of external failure costs are
• Complaint resolution
• Product return and replacement
• Help line support, Warranty work
•Quality Assurance: The main objective of quality assurance is to minimize the cost of
guaranteeing quality by a variety of activities performed throughout the development
and manufacturing processes/stages
Continue
• These activities prevent the causes of errors, and detect and correct them early in the
development process. As a result, quality assurance activities substantially reduce the
rate of products that do not qualify for shipment and, at the same time, reduce the costs
of guaranteeing quality in most cases.
• Software quality assurance – The IEEE definition
• Software quality assurance is:
1. A planned and systematic pattern of all actions necessary to provide adequate
confidence that an item or product conforms to established technical requirements.
2. A set of activities designed to evaluate the process by which the products are
developed or manufactured. Contrast with quality control.
• The objectives of SQA activities
• The objectives of SQA activities refer to the functional, managerial and economic
aspects of software development and software maintenance
• Software development (process-oriented):
• 1. Assuring an acceptable level of confidence that the software will conform to
functional technical requirements
Continue