Lecture 1 Intro To SQA
Lecture 1 Intro To SQA
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.
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
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.
7
What is Software Quality?
8
Software quality factors
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
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
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
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
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