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
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. These activities prevent the cause of errors, and detect and correct them early in the development process
As a result, QA activities substantially reduce the rate of products that do not qualify for shipment, and at the same time, reduce the cost of guaranteeing quality in most cases
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
important to the long-term development and maintenance of the software system such as :
SW test results Design review (DR) reports Problem reports
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