Software Quality Assurance

By Eng. Hany Kadry

What Is a Software ?
 IEEE Definition : Software is : computer programs, procedures, and possibly associated documentation and data pertaining to the operation of a computer system

   

Almost identical to ISO definition Computer programs ……… (“the code”) Procedures define the order and schedule Data necessary for operating the software system …… (“parameters, codes, …..”)  Documentations are needed for developers, users, maintenance personnel

The Nine Causes of Software errors
     
Faulty requirements definition Client-developer communication failures Deliberate deviation from software requirements Logical design errors Coding errors Non-compliance with documentation and coding instructions  Shortcomings of the testing process  Procedure error  Documentation errors

Software Quality
 Software quality is defined as : conformance
to explicitly stated functional and performance requirements, explicitly documented development standards, and implicit characteristics that are expected of all professionally developed software

 Good software engineering practices (GSEP),

reflecting state-of-the-art professional practices, to be met by the developer even though not explicitly mentioned in the contract

Difference Between Quality Control and Quality Assurance
 Quality control is defined as “a set of activities designed to evaluate
the quality of a developed or manufactured product” (IEEE), in other words activities whose main objective is the withholding of any product that does not qualify guaranteeing quality by a variety of activities performed throughout the development and manufacturing. These activities prevent the cause of errors, and detect and correct them early in the development process that do not qualify for shipment, and at the same time, reduce the cost of guaranteeing quality in most cases

 The main objective of quality assurance is to minimize the cost of

 As a result, QA activities substantially reduce the rate of products

 QC activities are only a part of the total range of QA activities

SQA
 Software quality assurance is :a systematic , planned set of actions necessary to provide adequate confidence that the software development process or the maintenance process of a software system product conforms to established functional technical requirements as well as with the managerial requirement of keeping the schedule and operating costs with the budgetary confines (ISO, CMM)

SQA System Overview

SQA System Architecture
 An SQA system combines a wide range of SQA
components

 The components are employed to challenge the

multitude of sources of SW errors and to achieve an acceptable level of SW quality

 Two considerations : Task of SQA is unique due to the specific characteristics of sw  The environment in which sw development and maintenance is undertaken directly influence of the SQA components

SQA System Components Classes
 Components can be classified into six
classes : Pre-project quality components  Project lifecycle quality components  Infrastructure error preventive and improvement components  Software quality management components  Standardization, Certification and SQA assessment components  Organizing for SQA – the human components

1- Pre-Project Components

1- Pre-Project Components
 Objective is to assure that : (a) the project commitments have been adequately defined considering : The resources required  The schedule  The budget  (b) the development and quality plans have been correctly determined

…. Cont
 These SQA components are meant to
improve the preparatory steps prior to initiating work on the project itself : Contract review  Development and quality plans

Contract review
 SW may be developed within a framework
of : A contract negotiated with a customer  Internal order originating in another department : Order of software product to be sold as a package  An internal software application to be used by the
company

Contract review …. cont
 In all instances, the development unit is
committed to an agreed-upon :   Functional specifications Budget schedule

….. cont
 Accordingly, contract review activities
must include a detailed examination of : (a)- The project proposal draft  (b)- the contract draft

…. cont
 Contract review activities specifically include : Clarification of the customer’s requirements  Review of the project’s schedule and resource requirement estimates  Evaluation of the professional staff’s capacity to carry out the proposed project  Evaluation of the customer’s capacity to fulfill his obligations  Evaluation of development risks

Development and Quality Plans
 Overview
 Once the contract has been signed or a commitment has been made to undertake an internal project, a plan is prepared of the project (“development plan”) and its integrated quality assurance activities (“quality plan”)  These plans include additional details and needed revisions based on prior plans that provided the basis for the current proposal and contract Note : it is quite common for several months to pass between the tender submission and the signing of the contract

…. cont
 The main issues treated in the development
plan are :Schedules Required manpower and hardware resources Risk evaluations Organizational issues: team members, subcontractors and partnership  Project methodology , development tools, ..etc  Software reuse plans    

…. cont
 The main issues treated in the project’s
quality plan are : Quality goals, expressed in the appropriate measurable terms  Criteria for starting , and ending each project stage  List of reviews , tests, and other scheduled verification and validation activities

2- Software Project Lifecycle Components

2- Software Project Lifecycle Components
 Project lifecycle is composed of two
stages : The development lifecycle stage  The operation-maintenance stage

…. cont
 Several SQA components enter the lifecycle at
different points  They should be planned prior to project’s initiation. They are :     Reviews Expert opinion Software testing Software maintenance Assurance of the quality of the subcontractor’s work and the customer-supplied parts

Reviews
 The design phase produces a variety of
documents :     Design reports Software test documents Software installation plans Software manuals Others

 Reviews can be categorized into : Formal design reviews (DRs)  Peer reviews

Formal Design Reviews (DRs)
 The committee:- senior professionals
including :
    The project leader The department manager The chief software engineer Heads of other related departments

 The majority of participants hold

professional and administrative ranks higher than the project leader

The DRs
 The DR report includes a list of required
corrections (“action items”)  The committee has several options :-

 Immediate approval to continue to the next development phase  Approval to proceed after all action items have been completed and inspected by the committee representative  An additional DR is required and scheduled after all action items have been completed and inspected by the committee representative

Peer Reviews
 Are directed at reviewing short, parts of a
report, a coded printout of a software module

 The main objective is to detect as many
design and programming faults as possible

Expert Opinions
 Outside experts  Useful in the following situations : Insufficient in-house capabilities in a given area  In small organization, the expert can join the DR  Extreme work pressure  In case of major disagreement

Software Testing
 Test cases that represent a variety of
expected scenarios  All tests should be designed and planned and approved  Highly recommended to test by independent test unit rather than the project team  Tests can be manual or automated

Software Maintenance Components
 Maintenance services fall into :   Corrective maintenance Adaptive maintenance (ex: HW change) Functionality improvement maintenance (functionality, performance)

 Pre-maintenance components
 Maintenance contract review  Maintenance plan

 Software development lifecycle components

3- Infrastructure Components

3- Infrastructure components For Error Prevention and Improvement

 The goals of SQA infrastructure are the

prevention or lowering the software faults rates  This class of components include :     Procedures and work instructions Templates and checklists Staff training, retraining and certification Configuration management Documentation control

Procedures and Work Instructions

 QA procedures usually provide detailed

definitions for the performance of specific types of development activities in a way that assures effective achieving quality results

 The collection of all SQA procedures is

usually referred as the SQA procedures manual

Work Instructions
 Work instructions deal with the application
of procedures adapted to the requirements of a specific project team, customer, or other relevant party

 While general methodology is defined in a
procedure, the specific details that allow its application to a specific project or unit are often laid out in a work procedure

Templates & Checklists
 One way to combine higher quality with
higher efficiency is to use supporting quality devices , such as templates and checklists

checklists
 Checklist refers to the list of items
specially constructed for each type of document, or menu of preparations to be completed prior to perform an activity

Staff Training, Instruction and Certification
 Trained and well-instructed professional staff is the key
to efficient , quality performance

 Within the frame of SQA , keeping an organization’s

human resources knowledgeable and updated at the level required is achieved by : Training new employees and retraining those who have changed assignments  Continuously updating staff with respect to professional developments  Certifying employees after their knowledge and ability have been demonstrated

Prevention & Corrective Actions
 Systematic study of the data collected regarding
instances of failure and success contribute to the QA : Implementation of changes that prevent similar failures in the future  Correction of similar faults founds in other projects  Implementing proven successful methodologies to enhance the probability of repeat successes

 The source of data are design review reports,
software test reports, and customer complaints…

Configuration Management
 The regular software development and
maintenance operations involve intensive activities that modify software to create new versions and releases  Different team members carry out these activities simultaneously  As a result serious dangers arise …!!  CM deals with these hazards by introducing procedures to control the change process

….. cont
 CM procedures relate to :The approval of change The recording of the changes The issuing of new SW versions and releases The recording of the versions and releases specifications of SW installed in each site  The prevention of any changes in approved versions and releases once they are issued    

 Most CM systems implement computerized tools

Documentation Control
 SQA requires the application of measures to
ensure the efficient long-term availability of major documents related to software development (“controlled documents”)

 Controlled documents contain information
   SW test results Design review (DR) reports Problem reports

important to the long-term development and maintenance of the software system such as :-

4- Management SQA Components

4-Management SQA Components
 Supports the managerial control of
software development projects and maintenance services. They include : Project progress control  SW quality metrics  SW quality costs

Project Progress Control
 The main objective of project progress control is
to detect the appearance of any situation that may induce deviations from the project’s plan and maintenance service performance. Project progress control activities focus on :    Resource usage Schedules Risk management activities The budget

Software Quality Metrics
 The measurements apply to the functional
quality, productivity, and organizational aspects of the project  SW quality metrics are :    Quality of SW development & maintenance activities Development team’s productivity Helpdesk and maintenance team’s productivity SW faults density

5- SQA Standards, System Certification, and Assessment Components

5- SQA Standards, System Certification, Assessment Components

 External tools offer another avenue to achieving
the goal of SQA  The main objectives of this class of components are :-

 Utilization of international professional knowledge  Improvement of coordination with other organizations’ quality systems  Objective professional evaluation and measurement of the achievements of the organization’s quality systems

Standards available
 The standards available may be classified into two main
sub-classes : Quality management standards :- focus on the “what” is required and leave the “how” to achieve it to the organization : SEI CMM assessment standard  ISO 9001 and ISO 9000-3 standards  Project process Standards :- methodological guidelines (dealing with the “how”) for the development team : IEEE 1012 standard  ISO/IEC 12207 standard

6- Organizing for SQA The Human Components

6- Organizing For SQA The Human Components
 SQA cannot be applied in an
organizational vacuum: they require an organizational base  The base (organizational SW quality framework) includes : Organization’s management  SQA Unit and SW testing personnel

Mission of The Organizational Base
 Develop and support implementation of SQA
components

 Detect deviations from SQA procedures and
methodology

 Suggest improvements to the SQA components
Note : although the entire organizational base shares these objectives, each segment of the organizational base concentrates on specific tasks

Management’s Role in SQA
 The responsibilities of top management (through
the executive in charge of SW quality), departmental management and project management include the following:
Definition of the quality policy Effective follow-up of quality policy implementation Allocation of sufficient resources to the implementation of the quality policy  Assignment of adequate staff  Follow-up compliance   

The SQA Unit
 This unit and SW testers devote their full
time to SQA matters : Preparation of annual quality programs  Consultation with in-house staff and outside experts on SW quality issues  Conduct of internal QA audits  Support of existing quality assurance infrastructure components and their updates, and development of new components

Software Quality Metrics

Metrics Classifications
 First classification distinguishes between
the development lifecycle and other phases of a software system : Process metrics ……….. Development  Product metrics ……….. Maintenance

…. cont
 The second classification category refers
to the subject of the measurement :    Quality Timetable Effectiveness (of error removal) productivity

Estimating the Software Size
 KLOC (thousands of code lines)
 Depends on the programming language

 FP (function points)
 Does not depend on the programming language

Sizing … cont

Process Metrics
 Process metrics categories :    SW process quality metrics SW process timetable metrics Error removal effectiveness metrics SW process productivity metrics

The Function Point Method
 It measures the project/program size by
functionality not by KLOC (the number of code lines can only be counted after programming completion which occurs at a very late stage of the project)

Function Point Calculation

FP = CFP X (0.65 + 0.01 X RCAF)

 CFP = Crude Function Point  RCAF = Relative Complexity Adjustment Factor

Thank You

Sign up to vote on this title
UsefulNot useful