Sunteți pe pagina 1din 50

Software Quality

1
Assurance Concepts
Amaar Hassan

Software Quality Concepts


2 About the Contents

The importance and benefits of Software Quality Assurance.


Some basic Software Quality Concepts and outlines various
activities that are carried out in to ensure Software Quality.

Software Quality Concepts


3 Where is Software?

Business administration
Banks, Insurance Companies, Commercial Enterprises etc.
Transport systems, Flight security, Energy systems
Health (critical)
Military
Everyday Life

Software Quality Concepts


4 A Quality Joke

Bill Gates: If the automobile industry had developed like the


software industry, we would all be driving $25 cars that get
1,000 miles to the gallon.
Automobile executive retorts: Yeah, and if cars were like
software, they would crash twice a day for no reason, and
when you called for service, theyd tell you to reinstall the
engine.

Software Quality Concepts


5 Chaos Report 2011-2015

Software Quality Concepts


6

Software Quality Concepts


7

Software Quality Concepts


8

Software Quality Concepts


9 Size Vs Complexity

Software Quality Concepts


10 Problem areas in Software and SE

Time factors
Only 5% of all projects are completed on time.
More than 60% of all projects have at least a 20% time overrun.
Many projects are terminated altogether because of delays.
Cost factors
Development cost increases exponentially with the complexity of the
software.
In many instances, 60% more of the entire software cost of a product is
spent on maintenance.
Delays can reduce market opportunities for a product and render
investment unprofitable.

Software Quality Concepts


11

Product quality factors


Errors are often found too late, often when the customer tries
to put the system into operation.
The software Documentation is missing, incomplete or not
up-to-date.
Because of product Faults, more than 50% of development time
and effort is spent on error detection and correction.
Quality as a development aim can often not be proved because
of lack of quality planning.

Software Quality Concepts


12 Causes of Problems In Software & SE
The causes of the present problems in software are on many levels.
The complexity of the Software to be created is underestimated by
the Management and the Developers as well.
There may be too little Planning and too much execution.
The problem may lie in the software Process itself which is used to
develop the software.
The Software product Requirements are not adequately specified.
When the software Requirements are stated, the requirement
definitions are vague, confusing or contradictory.
The developer often tries to improve the Quality by testing instead
of developing the quality step by step.

Software Quality Concepts


13 SE layers and Quality

Software Quality Concepts


14 Software Quality
Q. When should we worry about Software Quality?
Umbrella Activities
Software Project Management
Formal Technical Reviews
Software Configuration Management
Document Preparation And Production
Reusability Management
Measurement
Risk Management

Software Quality Concepts


15 Quality Concepts
D. A. Garvin from Harvard University suggests five approaches
1. The Transcendental approach
Quality is universally recognizable and is a synonym for a consistently high
standard of functionality of a product.
Drawbacks:
The quality in this sense cannot be precisely defined or measured.
Quality can be evaluated only on the basis of experience.

2. The Production Related approach


Quality is precisely measurable.
This approach allows ranking of different products of the same category.

Software Quality Concepts


16 Quality Concepts
3. The user-related approach
Quality is determined by the product user rather than by the product
itself.
4. The process-related approach
This approach relates quality to the reliable execution of specifications,
and holds ideal view that an activity in the manufacturing of a product
should be carried out right first time.
5. The price and user-related approach
This approach involves a relationship between price and quality. In
this context, a quality product is a product which is designed for a
specific user at an acceptable price.

Software Quality Concepts


17 Quality Concepts
IEEE defines Quality as
1. The Quality of features and characteristics of a software product
that bear on its ability to satisfy given needs.
2. The degree to which software possesses a desired combination of
attributes.
3. The degree to which a customer or user perceives that software
meets his or her composite expectations.
4. The composite characteristics of software that determines the
degree to which the software in use will meet the expectations of the
customer.

Software Quality Concepts


18

Pressman defines the software quality as:


Conformance to explicitly stated functional and performance
requirements, explicitly documented development standards, and
implicit characteristics that are expected of all professionally
developed software.

Lack of conformance to Requirements is lack of Quality.


Specified standards define a set of development criteria in which
software is engineered.
Failure to meet implicit requirements put software quality to
suspect.

Software Quality Concepts


Quality Concepts

19 Kinds of Quality
Quality of Design (AKA Grade, Model)
The characteristics which designers specify for the product.
Car example

Quality of Conformance
The extent to which the product conforms to its intent of design.

Software Quality Concepts


Quality Concepts

20 Quality Control
Supervision and Correction of the Implementation of work with the goal of
meeting the given requirements.

A series of inspection, reviews, and test throughout the software process


for each work product.

It includes a feedback loop to the process that created the work product.

The combination of measurements and feedback allows to tune the


process when the work products fail to meet their specifications.

Quality control activities may be fully automated, entirely manual, or a


combination of automated tools and human interaction.

A key concept : All work products should have defined and measurable
specifications to which we may compare the output of each process.

Software Quality Concepts


Quality Concepts

21 Quality Assurance
A system consisting of methods and processes which interact in such
a way that software products meet the requirements demanded. The
system includes planning, estimating and supervision of development
activities which are performed independently of the developer.

Quality Assurance consists of the auditing and reporting functions


for management.

The goal of QA is to provide data to the management to be informed


about product quality.

Software Quality Concepts


Quality Concepts

22

Software Quality Concepts


Quality Concepts

23
Quality Policy (QP)
Aims and Objectives regarding quality.
Central task for top and middle level management.
Quality Assurance System (QAS)
Includes, Organization of construction and release procedures,
the allocation of responsibilities, and the selection of tools for
the implementation of QA.
3 levels
Company specific: projects may be overlapping
Project specific: each project has its own QAS
Phase specific: QAS of each phase

Software Quality Concepts


Quality Concepts

24 The Quality Assurance Plan (QA Plan)


Provides a central aid for planning and checking QA.
Contains all QA measures for software Project.
Goal: Provide data to the management to be informed about
product quality.
1. Purpose
Which software products are covered by the QA plan?
What is this software used for?
How critical is the application of this software?
Why is the SQA plan produced?
Are there external and internal demands for this?
What is the basis for QA plan (e.g. IEEE standards)?
Reasons for possible deviations from the basis and their description?
Software Quality Concepts
Quality Concepts

25

2. Reference documents
Contains a complete list of all documents which are referenced
elsewhere in the plan.
3. Management
Organization, tasks, and responsibilities of the development
process of QA Plan.
Organizational structure diagram with defined roles and
responsibilities.
4. Software documentation
List of all documents development and maintenance process.
List of Reviews and Audits that comment on Quality and
Stability of the mentioned documents.
Software Quality Concepts
Quality Concepts

26
Minimum amount of documentation:
Software requirements specification
Software design description
Software test plan
Software test reports
User documentation
5. Standards, practices and conventions
All standards, practices and conventions are defined.
Relevance of Organizational elements with their monitoring and
maintenance.
Requirements specification.

Software Quality Concepts


Quality Concepts

27
Design
Implementation (special coding and comments)
Testing
Documentation
6. Reviews and Audits
List of Technical and Management oriented Reviews and Audits.
Following test elements are minimum requirements
Software requirements review Management review for
evaluation of the execution of QA
Plan
High-level review Review of user documentation
Detailed design view Review of test plan
Functional audit Audit of system functions
Physical audit
Software Quality Concepts
Quality Concepts

28

7. Software Configuration management


Contains methods and aids for identification of software elements,
for their Alteration control and implementation.
Figuring out what you have and recording it
Controlling who can make changes
Keeping a record of the changes made

8. Problem reports and Corrective actions


Practices and Procedures are to be followed for reporting, tracking,
and resolving software problems.
Organizational roles for executing these procedures.
9. Software engineering
Methods, Tools and Technique to be used and why?
Software Quality Concept
Quality Concepts

29

10. Code Control


Procedures and Tools for managing and storing validated code

11. Other features


Custom features by software company.

Software Quality Concept


Quality Assurance Activities
30
Quality Tasks carried out by
Software Engineers
Formal Technical Reviews, Planned Software testing, Technical
Methods and Measures
QA Group
QA Planning, Oversight, Record keeping, Analysis and Reporting
Activities of SQA Group
1. Prepare SQA Plan for Project
Evaluations to be performed
Audits and reviews to be performed
Standards that are applicable to the project
Procedures for error reporting and tracking
Documents to be produced by the SQA group
Software Quality Concepts Amount of feedback provided to software project team
QA Activities

31
2. Participate in S/w Projects Process description
S/w team selects process
SQA Group reviews process description for compliance with;
Organizational policy
Internal software standards
Externally imposed standards (e.g. ISO 9001)
3. Review of SE Activities
Identify documents and tracks deviations from the process, and
Verify that the corrections have been made
4. Audits S/w Work Products
Identify, Review, Document and track Deviations of selected Work
products
Verify the corrections and report to Project Manager
Software Quality Concepts
QA Activities

32

5. Document Deviations in Software and Work products


Deviations may be encountered in the Project Plan, Process
description, applicable Standards or technical Work Products. (Pt. 3
and 4)
6. Records non-compliances
Tracks non-compliant items till they are resolved
7. Change Management
8. Collect and Analyze Software Metric

Software Quality Concepts


Evaluation
33

Ensures Compliance with Requirements for each software Product


Performed by an Individual or an Organization
Evaluation is generally done in the following phases for the
mentioned list
Software Requirement Phase
Preliminary Design
Detailed Design
Coding and Unit Test
Integration and Testing
System Testing

Software Quality Concepts


Evaluation
SQA Plan should specify the software Products chosen for
34 Evaluation and the types of Evaluation to be performed on them.
Adherence to required format and documentation standards.
Compliance with contractual requirements.
Internal consistency.
Understandability.
Traceability to indicated documents.
Consistency with indicated documents.
Appropriate requirements analysis, design, coding techniques used to
prepare item.
Appropriate allocation of sizing, timing resources.
Adequate test coverage of requirements.
Testability of requirements.
Consistency between data definition and use.
Adequacy of test cases, test procedures.
Completeness of testing.

Software Quality Concepts


Completeness of regression testing.
35
Software Reviews
Acts as filter
To purify SE activities of analysis, design and coding
Technical work needs reviewing for the same reason that pencils
need erasers. To err is human. The second reason we need
technical reviews is that although people are good at catching
some of their own errors, large classes of errors escape the originator
more easily than they escape anyone else.
A review is a way of using the diversity of a group of people to:
Point out needed improvements in the product
Separate products where review is not desired
Achieve technical work of predictable and uniform quality

Software Quality Concepts


36
Types of Reviews
1. Informal Meeting
2. Formal Presentation of Software Design
3. Formal Technical Review (acknowledged as most effective)
Formal Technical Review (FTR)
A Software Activity (Meeting, Reporting and Record Keeping,
Guideline)
Objectives
1. Uncover Errors in function, logic or implementation
Verify that software under review meets its requirements
Ensure that software is represented as-per pre-defined standards.
Achieve s/w developed in a uniform manner
Make projects more manageable.
Software Quality Concepts
FTR

37
2. As a training ground for Junior S/w Engineers to observe software
analysis, design, and implementation.
3. It is a class of reviews that include walkthroughs, inspections, round-
robin reviews and other small group technical assessment of software.
4. Each FTR is conducted as a meeting and will be successful only if it
properly planned, controlled and attended.
The Review Meeting
1. Between 3-5 people for no more than 2 hours.
2. Focused on small specific part of overall software.
3. Producer of Project informs Project leader at the need for review.
4. Project leader informs Review leader, who does the following
Evaluate product for readiness
Distributes copies to 2 or 3 other reviewers
Set agenda for review meeting
Software Quality Concepts
FTR

38
5. A review meeting is attended by the review leader, all reviewers, and
the producer
All important issues raised in the meeting are recorded.
6. Decision at the end of the meeting
Accept the product without further modification
Reject the product due to severe error
Accept the product provisionally.
Review Reporting and Record Keeping
Review summary and Review issues list is produced at the end of the
meeting
1. Review Summary
What was Reviewed?
Who Reviewed it?

Software Quality Concepts


Findings and Conclusions.
FTR

39 2. Review Issues list


To identify problem areas within the product.
To serve as an action checklist that guides the producer as
corrections are made.
It is important to establish a follow-up procedure to ensure that items
on the issues list have been properly corrected.
Review Guideline
Review the product and not the producer.
Set an agenda and maintain it.
Limit debate and contradiction.
Speak about problem areas but dont attempt to solve every problem
noted.
Take written notes.
Limit the number of participants and insists upon advance
Software Quality Concepts preparation.
FTR

40 Develop a checklist for each product that is likely to be reviewed.


Allocate resources and time schedule for FTRs.
Conduct meaningful training for all reviewers.
Review your early reviews.

Software Quality Concepts


41
Cost of Quality
Cost of quality includes all costs incurred in the pursuit of quality or
in performing quality related activities.
Provides baseline for current Quality Cost, Opportunities for reducing
the Quality Cost and Comparison
It is generally cost associated with Prevention, Appraisal and Failure
1. Prevention Cost
Quality planning
Formal technical reviews
Test equipment
Training
2. Assessment / Appraisal Cost
Inter and Intra process inspection

Software Quality Concepts


Equipment Calibration and maintenance
Cost of Quality

42
Testing
3. Failure Cost
Internal Failure (cost incurred before deployment)
Rework & Repair
Failure module analysis
External Failure (cost incurred after deployment)
Complaint resolution
Help line support
Warranty work

Software Quality Concepts


Cost of Quality

43
The relative costs to find and repair errors increases dramatically as we
go through from prevention to detection to internal failure to external
failure cost

Software Quality Concepts


44 Benefits of SQA

Maintenance,
Customer Loyalty,
Reduction in Time and Budget overhead,
Reliable products

Software Quality Concepts


45
Social Factors
Social grouping, harmony and mature behavior greatly affects the Quality
Policies of the organization.
1. Company Culture
Communication b/w employees, learning environment, training,
structure of building and rooms, working mentality
2. Accuracy
Data presented in the presentation by the management or other
employees should be accurate
3. Authority
Individuals or teams involved in Software Quality assurance should be
given authority to bring about some changes in the company policy.
4. Benefits
It is important to inform the organization of the benefits of the Quality
process.
Software Quality Concepts
Social Factors

46
5. Communication
Good communication betters the process of Requirements gathering,
Software development, Software quality assurance ( inspections,
reviews, meetings)
Factors effecting the effectiveness of communication with in a group
include:
The size of the group.
The structure of the group.
The status and personalities of group members.
The physical work environment of the group.
6. Consistency
Decisions and Actions should be consistent for Projects of all types and
also for their phases

Software Quality Concepts


Social Factors

47
7. Physical Working Environment
How closely people are sitting together.
The arrangement of workplace, such as lighting conditions and how the
workplace is enclosed.
Personal space

Software Quality Concepts


48

Software Quality Concepts


49

Software Quality Concepts


50

The End

Software Quality Concepts

S-ar putea să vă placă și