0% found this document useful (0 votes)
118 views

Lecture 1 Intro To SQA

The document discusses software quality assurance and testing. It defines software quality assurance and testing, their differences, and factors that impact quality such as correctness, reliability, and maintainability. It also outlines the components, standards, and costs associated with quality assurance processes.

Uploaded by

merchanttriton
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
118 views

Lecture 1 Intro To SQA

The document discusses software quality assurance and testing. It defines software quality assurance and testing, their differences, and factors that impact quality such as correctness, reliability, and maintainability. It also outlines the components, standards, and costs associated with quality assurance processes.

Uploaded by

merchanttriton
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 30

Software Quality Assurance

Lecture 1

Introduction

1
What is Software?
 What is Software?
◦ More than computer programs
◦ Computer programs, procedures, and possibly
associated documentation and data pertaining to
the operation of a computer system.

 Two major types of Software:


 Generic –Stand alone, sold on open market
 Customized –For specific customer

2
Software quality is conformance to
explicitly stated functional and performance
requirements,
 explicitly documented development
standards, and
 implicit characteristics that are expected of
all professionally developed software.

3
From standards by IEEE Computer
Society
 Error – human interaction which produce
an incorrect result.
 Fault – representation of an error.
 Failure – occurs when a fault executes

4
Software development
process

5
Software Errors
What could go wrong?
 Faulty requirements definition by the client
 Logical design errors
 Coding errors
 Documentation errors
 User interface and procedure errors

Why did it go wrong?


 Inadequate knowledge/skills
 Client-developer communication failures
 Deliberate deviations from software requirements
 Non-compliance with documentation and coding
instructions

6
What is Software Quality?
 Software Quality (as per ISO/ IEC 9126):
The totality of functionality and features of a
software product that contribute to its ability to
satisfy stated or implied needs.

 Software Quality (as IEEE Std 610):


The degree to which a component, system or
process meets specified requirements and/or
user/customer needs and expectations.

7
What is Software Quality?

 According to ISO 9126, software quality consists of:


◦ Functionality
◦ Reliability
◦ Usability
◦ Efficiency
◦ Maintainability
◦ Portability

8
Software quality factors

Product operation Product revision Product transition


factors factors factors

Correctness Maintainability Portability


Reliability Flexibility Reusability
Efficiency Testability Interoperability
Integrity
Usability

9
10
Product Operation Factors
 Correctness: output specifications
◦ output mission, accuracy, completeness of required output
◦ up-to-date, availability of the information
◦ standards for coding and documenting the system
 Reliability
◦ minimize failure rate
◦ failure recovery
 Efficiency
◦ resources needed to perform software function (processing, data storage,
communication, battery consumption, etc.)
 Integrity
◦ software system security, access rights
 Usability
◦ ability to learn, perform required task
◦ training
11
Product Revision Factors
 Maintainability:
◦ Deal with the complete range of software maintenance
activities:
 corrective maintenance,
 adaptive maintenance and
 perfective maintenance.
◦ Modularity, simplicity, coding and documentation
guidelines, document accessibility, etc.
 Flexibility: adaptive and perfective
◦ degree of adaptability
 (to new customers, tasks, etc.)
 Testability
◦ support for testing
 (e.g. log files, automatic diagnostics, etc.)

12
Product Transition Factors
 Portability
◦ adaptation to other environments (hardware,
software)
◦ Platform independency
 Reusability
◦ use of software components for other projects
 Interoperability
◦ ability to interface with other
components/systems
 compatibility

13
 What’s the main challenges of software development
now-a-days?
◦ High Cost
◦ Difficult to deliver on Time
◦ Low Quality

14
Introduction
 Software Quality Assurance (SQA):
 Defined as a planned and systematic approach to the evaluation
of the quality of and adherence to software product standards,
processes, and procedures.
 An umbrella activity that is applied throughout the software
process.
 Consists of a means of monitoring the software engineering
processes and methods used to ensure quality.
 An effective approach to produce high quality software.

15
Introduction
 Software Testing:
 Software Testing is the process of executing a system or
component under specified conditions with the intent of
finding defects/bugs and to verify that it satisfies specified
requirements.
 Main goal ==> To detect bugs
 Have different levels
 Static testing vs. Dynamic testing
 Manual testing vs. Automated testing

16
Software Quality Assurance Software Testing
 Process-oriented activity • Product-oriented activity
 Oriented to bug prevention • Oriented to bug detection

QA vs. Testing
17
Software Quality Shrine(SQA
architecture)

18
Components of quality assurance
 Pre-project
 Project life cycle activities assessment
 Infrastructure error prevention and improvement
 Software quality management
 Standardization, certification and SQA system
assessment
 Organizing for SQA - the human components

19
Pre project components
◦ Contract review
 Agreements on functional specifications, budget and schedule.
 Evaluate the capacity of professional staff and customers
 Evaluate risks
◦ Development and quality plans (Integrated)
 Development plan
 Schedules
 Required manpower and hardware resources
 risk evaluations
 organizational issues
 project methodology, development tools
 software reuse plan

 Software quality assurance plan (SQAP)


 Quality goals
 Criteria for starting and ending each project stage
 sqa activities.

20
Project Life cycle components
 Reviews
◦ Formal design reviews (DR)
◦ Peer reviews: inspections and walkthroughs
 Expert opinions
 Software testing
 Software maintenance
◦ Corrective maintenance
◦ Adaptive maintenance
◦ Functionality improvement maintenance
 Similar SQA components as for the development
process
 Assurance of the quality of the external participant’s
work

21
Infrastructure components for error
prevention and improvement
 Goal: prevent software faults and improve
productivity
 Procedures and work instructions ç past experience
◦ Procedure: generally applicable to the entire organization
◦ Work instruction: detailed directions for unique teams
 Templates and checklists
 Staff training, retraining and certification
 Preventive and corrective actions
◦ Systematic study of past failures and successes
 Configuration management
 Documentation control
22
Management SQA components

 Project progress control


◦ Focus on resource usage, schedules, risks,
budget
 Software quality metrics
 Software quality costs

23
SQA standards, certification and
assessment components
 Quality management standards (what)
◦ SEI CMMI assessment standards
◦ ISO 9001:2008 - Quality management systems
◦ ISO 9001-3 - Quality Management and Quality
Assurance Standards - Part 3: Guidelines for the
application of ISO 9001 to the development, supply
and maintenance of software
 Project process standards (how)
◦ IEEE 1012 standard for System and Software
Verification and Validation
◦ ISO/IEC 12207 standard for Systems and software
 engineering -- Software life cycle processes

24
Quality Cost vs. Cost of Quality

Includes all costs of quality-related


activities.
Quality costs =
+ Prevention costs
+ Detection and Appraisal costs
+ Failure costs
 Internal failure costs
 External failure costs
Cost of Quality (COQ) – refers to the cost of
correcting defects once found.

25
Assurance VS Control
Quality control: A set of activities designed to
evaluate the quality of a developed or manufactured
product.
◦ Main objective: withhold any product that does not
qualify.
 Completed before the product is shipped to the
client
Quality assurance: Main objective: minimize the cost
of guaranteeing quality.
 Prevent the cause of errors; detect and correct them
early in the development process
 performed throughout the software life cycle

26
Introduction

 What is the COST of a bug?

27
Introduction
 Failure Example 01
 Flight Ariane 5
(Most Expensive Computer Bug in History)
On June 4, 1996, the rocket Ariane 5 tore
itself apart 37 seconds after launch because of a
malfunction in the control software making the
fault most expensive computer bug in history.
==> mission critical issue

28
Introduction
 Failure Example 02
 Lethal X-Rays :Therac-25 system
Therac-25 was a radiation therapy machine
produced by Atomic Energy of Canada Limited
(AECL) in 1986. But initially lot of people died
because of massive overdose of radiation. And
this is happen because of a software bug.
==> safety critical issue

29
Verification VS Validation
 Verification
◦ Main purpose is to detect defects in the
artifacts of the system under development.

 Validation
◦ Main purpose is to show that the system
under development meets user needs,
requirements, and expectations.

30

You might also like