The document discusses key concepts in software quality including:
1) The relationships between software errors, faults, and failures and their causes during development.
2) The importance of software quality and quality assurance objectives like defect prevention and removal.
3) Quality assurance techniques like verification, validation, inspections, testing and standards to evaluate conformance.
4) How quality is managed through metrics, process engineering, and cost controls.
1. PHILIPPINES :: MALAYSIA :: VIETNAM :: INDONESIA :: INDIA :: CHINA
2. Learning Bites
• Understand what is a software and identify software errors, faults and failures;
• Determine the relationship between software errors, faults and failures in software
development process and their causes;
• Learn and understand software quality and its importance;
• Realize software quality assurance and its objectives to development and maintenance
activities;
• Appreciate software quality verification and validation including defect prevention, detection
and removal; and
• Learn to manage software quality components through quality management standards and
other project process standard.
3. What is Software?
“Computer programs, procedures, and possibly associated documentation and data
pertaining to the operation of a computer system.”
Computer
programs Documentation
Components of
Software
Data necessary
Procedures for operating the
software system
4. What are software errors, faults and failures?
Software failures lies in a software error made by
a programmer. Error can be grammatical error or a logical error.
Not all software errors become software faults. A software error can cause improper
functioning of the software in general or in a specific application.
What is the relationship between software faults and software failures? Do all
software faults end with software failures?
A software fault becomes a software failure only when it is “activated” – when the
software user tries to apply the specific faulty application.
5. Software Development Process
Software Development Process
software error software fault software failure
An illustration of the relationships between software errors, faults and
failures. The development process yields 17 software errors, only eight of
which become software faults. Of these faults, only three turnout to be
software failures.
Developers and users have different views of the software product
regarding its internal defects. While developers are interested in software
errors and faults, their elimination and the way to prevent their generation,
software users are worried about software failures
6. What are the causes of software errors?
Faulty definition requirements
Client-developer communication failures
Deliberate deviations from software requirements
Logical design errors
Coding errors.
Non-compliance with documentation and coding instructions
Shortcoming of the testing process
Procedure errors
Documentation errors
7. What is Software Quality?
• The degree to which a system, component, or
process meets specified requirements
• The degree to which a system, component, or process
meets customer or user need or expectations
• Conformance to explicitly stated functional and performance requirements,
explicitly documented development standards and implicit characteristics that
are expected of all professionally developed software
8. Why Software Quality?
• Higher reliability resulting to greater customer
satisfaction;
• Ensure that software is conformance to certain
requirements and standards;
• Maintenance cost of the software is gradually reduced as
the software requires less modification after SQA; and
• SQA procedures would identify more errors before the
software gets released resulting to overall reduction of the
life cycle cost.
9. What is Software Quality Assurance?
• A planned and systematic pattern of all actions necessary to provide adequate
confidence that an item or product conforms to established technical requirements.
• A set of activities designed to evaluate the process by which the products are
developed or manufactured. Contrast with: quality control.
• A systematic, planned set of actions necessary to provide adequate confidence
that the software development process or maintenance process of a software
system product conforms to established functional technical requirements.
10. Why Software Quality Assurance?
• Ensure acceptable levels of confidence, conformance to
functional technical requirements.
• Ensure acceptable levels of confidence, conformance to
managerial requirements of scheduling and budgets.
• Initiating and managing activities for the improvement
and greater efficiency of software development and SQA
activities.
11. Objectives of SQA in Development (process-oriented)
Assuring an acceptable level of confidence that the software will conform to
functional technical requirements.
Assuring an acceptable level of confidence that the software will conform to
managerial scheduling and budgetary requirements.
Initiation and management of activities for the improvement and greater efficiency
of software development and SQA activities.
12. Objectives of SQA in Maintenance (product-oriented)
1. Assuring an acceptable level of confidence that the software maintenance
activities will conform to the functional technical requirements.
Assuring an acceptable level of confidence that the software maintenance
activities will conform to managerial scheduling and budgetary requirements.
Initiate and manage activities to improve and increase the efficiency of software
maintenance and SQA activities.
13. Software Quality Verification and Validation
Verification
• Are we building the product right? Requirement verification
• Performed at the end of a phase to
ensure that requirements
established during previous phase
have been met. Architecting verification
Validation
• Are we building the right product?
• Performed at the end of the Low Design verification
development process to ensure
compliance with product
requirements.
Coding verification
validation
14. Software Quality Assurance also includes
Defect prevention
• Prevents defects from occurring in the first place
• Activities: training, planning and simulation
Defect detection
• Finds defects in a software artifact
• Activities: inspections, testing or measuring
Defect removal
• Isolation, correction, verification of fixes
• Activities: fault isolation, fault analysis, regression testing
15. Typical Activities of a SQA Process
Metrics and continuous
improvement
Process engineering
and standards
Dynamic testing
Static code checking
(inspection/reviews)
Design Verification
Requirements
validation
16. Management of Software Quality Components
Managerial of software quality components support the managerial control of software
development projects and maintenance services.
Control components include:
Project progress control Software quality metrics Software quality costs
Resource usage • Quality of software • Costs of control
Schedules development and (prevention costs,
Risk management maintenance activities appraisal costs,
activities • Development team’s managerial preparation
The budget productivity and control costs)
• Help desk and • Costs of failure (internal
maintenance team’s failure costs, external
productivity failure costs and
• Software faults density managerial failure costs)
• Schedule deviations
17. Standards, Certification and Assessment Components
Quality management standards – these standards focus on what is required and
leave the decision about how to achieve it to the organization. Organizations that
comply with quality achievement requirements can seek Software Quality
certification. Examples are:
• CMMI assessment standard
• ISO 9001:2008 standard
Project process standards – are professional standards that provide
methodological guidelines for the development team.
• IEEE 1012 standard – System and software verification and validation
• ISO 12207 standard – Software lifecycle processes
18. The Software Quality Challenges
The uniqueness of software product:
• High complexity;
• Invisibility of the product; and
• Limited opportunities to detect defects (“bugs”)
• only opportunity is Product development
The environment in which software is developed:
• Contracted;
• Subjection to customer-supplier relationship;
• Requirement for teamwork;
• Need for cooperation and coordination with other development teams;
• Need for interfaces with other software systems;
• Need to continue carrying out a project while the team changes; and
• Need to continue maintaining the software system for years.
19. Summary
• Software quality management is concerned with ensuring that software meets its required
standards
• Quality assurance procedures should be documented in an organisational quality manual
• Software standards are an encapsulation of best practice
• Reviews are the most widely used approach for assessing software quality
• Software measurement gathers information about both the software process and the software
product
• Product quality metrics should be used to identify potentially problematical components
20.
21. Thank you very much!
facebook.com/eccinternational
linkedin.com/company/ecc-international
eccinternational.wordpress.com