Title: Software Quality Assurance
1Software Quality Assurance
- What is quality software and how to achieve it?
2Lecture Objectives
- To discuss what is meant by quality in software
- To understand the importance of quality in
software engineering - To describe the features of quality software
- To describe the measures used in assessing
software quality - To understand the international standards that
are applied to assess software quality
3What Is Quality Software?
- Is it software that works?
- Is it software that is error-free?
- Is it software that is very well-documented and
has help facility for all its functions? - Is it software that does not hang the machine?
- Is it software that does not bomb?
4Group Project
- How do you ensure the quality of the software you
are developing? - Have you defined the standards and tasks to
ensure the quality of the software? - Will the customer say that your software is a
quality product? - Are you fulfilling the customers expectations?
5Software Quality Definition
- Conformance to
- Explicitly stated functional and performance
requirements - Explicitly documented development standards, and
- Implicit characteristics that are expected of all
professionally developed software - (Pressman)
6Software Quality Factors
- Low defects level when deployed
- Zero defect most preferably
- High reliability
- Capability of running without crashes
- Majority of the user satisfy with software when
conducted the survey - Effective customer support
- Rapid defect repair
7Software Qualities
- Correctness
- Reliability
- Robustness
- Performance
- User friendliness
- Verifiability
- Maintainability
- Reparability
- Safety
- Evolvability
- Reusability
- Portability
- Understandability
- Productivity
- Size
- Timeliness
- Visibility
Select the critical attributes and plan how to
achieve them
8Benefits Of Software Quality
- Reduced maintenance cost
- Stable and useful product
- Satisfy customer needs
- Better chances for continuing releases
- Build corporate culture and identity
- Better chances for software and design reuse
9Software Quality Assurance
- Quality assurance a set of establish framework
(procedures standard) used by an organization
to achieve high quality software - Essential activity for any business that produce
product to used by others - It need to be planned and systematic
- It does not just happen
- Assure each of the software qualities is met
- Goal set in requirements specification
- Goal realized in the implementation
- SQA is applied at every stage of the software
process - Quality standard is selected to apply to the
software process
10Why SQA Payoff ?
11Principle Of SQA
- Set the standard and quality attributes that a
software product must meet - The goal to achieve
- Measure the quality of software product
- There is a way to determine how well the product
conforms to the standards and quality attributes - Track the values of the quality attributes
- It is possible to assess how well we are doing
- Use the information of software quality to
improve the quality of future software product - There is a feedback into the software development
process
12SQA Activities
- Application of Technical Methods
- Conduct of Formal Technical Reviews
- Software Testing
- Enforcement of Standards
- Control of Change
- Measurement
- Record keeping and Reporting
13Application of Technical Methods
- Select appropriate tools and methods to capture
system requirements, analyze system, design,
implementation and testing - Why use methods and tools
- To ensure high quality is achieve
- Analyst achieve high quality specifications
- Designer develop high quality designs
- Ability to measure quality in specifications and
designs
14Conduct of Formal Technical Reviews
- FTR is an activity to assess quality
- A stylised meeting conducted by technical staff
with the sole purpose of uncovering quality
problems - Found to be effective in uncovering defects in
software - All major software items should be subjected to
technical review
15Software Testing
- Testing is a process of executing a program with
the intent of finding errors, locate errors and
to proof system correctness - Testing is conducted based on the developed test
cases - Capture actual output
- Compare actual output with expected output
- Actual Expected Test case succeed
- Actual ! Expected Test case failed
- All test cases result must be recorded
16Software Testing(Cont)
- To identify errors in software developed
- Test case design methods produces tests to be
used on the software - Development of test strategy for a set of tests
that uncovers all possible errors - Thorough testing is not as effective as expected
in most cases
17Enforcement of Standards
- Formal standards and procedures varies from
company to company - Could be dictated by customer, regulations, or
self-imposed - If formal (written) standards exist, they must be
followed to ensure quality - Assessment of compliance is done through FTR or
audit
18Control of Change
- An activity executed throughout the system life
cycle to control change of products and life
cycle artifacts - Items that needs control changes
- Plans
- Specification
- Procedures
- Audit
- Report
- Support
- A software library need to be construct that
store, manages and track these items
19Control of Change (Cont)
- Every change has potential for introducing errors
or creating side effects that propagate errors - Change control process ensures quality
- Formalizing requests for change, evaluating
nature of change, and controlling the impact of
change
20Measurement
- Measurement Numeric derivation for some
attribute of a software product / process - Compare the value with standard apply
- Often expressed in and days
- Integral part to any engineering discipline
- Software metrics must be collected to track
quality - Also to assess the impact of methodological and
procedural changes on improved software quality
21Record keeping and Reporting
- Historical record for project - results of
reviews, audits, change control, testing, other
SQA activities - Provide procedures for collection and
dissemination of SQA information - Dissemination to development staff based on
need-to-know basis
22McCall Software Quality Model
Product Revision
Product Transition
Product Operations
23McCalls Software Quality Factors
- Product Operations
- Operational characteristics
- Product Revision
- Ability to undergo changes
- Product Transition
- Adaptability to new environments
24McCalls Software Quality Factors (Cont)
25FCM By McCall Approach
Factors user concern oriented
Criteria software concern oriented
Metrics quantitative measures
26Measuring the Factors
- The factors are difficult to measure directly
- McCall defined metrics that are assessed
subjectively, on a scale of 0 to 10 - Includes auditability, accuracy, completeness,
consistency,modularity, etc. - Factors calculated as follows
- Fq c1 x m1 c2 x m2 cn x mn
- where
- cn Weighting coefficient (or importance
factor) - mn Criteria measured
27Alternative Measurements
- Hewlett-Packard developed a set of quality
factors - FURPS - Functionality - features, capabilities, overall
- Usability - human factors, consistency, doc.
- Reliability - failure, accuracy, MTBF, recovery
- Performance -speed,response time, efficiency
- Supportability - maintainability, testability
- Quality metrics for each step in SE process
28Measuring Quality Factors In SE Process
Investigations/ Specifications
Design
Implementation
Testing
Support
..... ...
F
U
R
P
S
29Software Quality Assurance
- Quality assurance - essential activity for any
business that produces products to be used by
others - SQA - a planned and systematic pattern of actions
to ensure quality in software - Quality is Job 1
30Software Review
- like a filter for SE process
- must be applied at various points during
development - all technical work need reviewing
- also checks ones mistakes
- helps to discover defects early
- design can introduce 50 - 65 of errors
- review can uncover 75 of them
- cost of subsequent steps reduced
31ISO 9000
- Set of standards that can be applied to a range
of organisations from manufacturing through to
service industries - ISO 9001 - general standards, applies to design,
development, maintaining products - ISO 9000-3 - supporting document for software
development - Various countries also have own standards
32ISO Certification
- Some countries have bodies which certify that the
quality process in an organisation conforms to
ISO requirements - In Malaysia, SIRIM performs this function
- Customer looks for certification in an
organisation to indicate the quality of products
or services
33Areas covered by ISO 9001/9000-3 STANDARD (1/3)
- A. A. Quality System framework
- 1. Management responsibility
- quality policy defined, documented, understood,
implemented and maintained - responsibilities and authorities for all
personnel defined - in-house verification resources defined, trained
and funded - a designated manager ensures that the quality
program is implemented and maintained - 2. Quality system
- requires a documented quality system be
established - should be an integral process throughout the
entire life cycle - 3. Internal quality system audits
- requires audits be planned and performed
- results communicated to management
- deficiencies corrected
- 4. Corrective action
- requires causes of non-conforming product be
identified - potential causes of non-conformance eliminated
- procedures changed as a result
34Areas covered by ISO 9001/9000-3 STANDARD (2/3)
35Areas covered by ISO 9001/9000-3 STANDARD (3/3)
C. Quality System Supporting Activities
- 1. Configuration management
- process of development and maintenance should be
documented and controlled - 2. Document control
- distribution and modification of documents should
be controlled - 3. Quality records
- quality records should be collected, maintained
and dispositioned - 4. Measurement
- where appropriate, adequate statistical
techniques should be identified and used to
verify the acceptability of process capability
and product characteristics
- 5. Rules, practices and conventions
- are in place and followed
- 6. Tools and Techniques
- are applied appropriately to support the
development process - 7. Purchasing
- purchased products conform to their specified
requirements - 8. Included software product
- should be verified and maintained
- 9. Training
- training needs should be identified and training
provided since related tasks may require
qualified personnel - training records should be maintained
36Quality Management System
ISO 9000 Quality Models
instantiated as
Organisational Quality Manual
Organisational Quality Process
documents
is used to develop
instantiated as
Project Quality Management
Project 1 Quality Plan
Project 2 Quality Plan
Project 3 Quality Plan
37ISO SQA
- An organisation that have SQA tasks in place and
a quality management process would have most of
ISO elements - Ideally quality management should be separate
from project management - This is to ensure quality considerations are not
compromised by concerns of budget and schedule
38Process Improvement
- Understanding existing processes and changing
these processes - to improve product quality
- and/or to reduce costs and development time
- Assume that key factor to product quality is the
quality of development process - kaizen - process of continuous process improvement
39Capability Maturity Model
- Developed by Software Engineering Institute (SEI)
of Carnegie-Mellon U - SEI was established to improve the capabilities
of US software industry - Focus on improving the process of software
engineering - Similar to ISO, organisations are assessed and
certified to be on Level 1 to Level 5
40Process Maturity Model
41Level 1 Initial
- No effective management procedures or project
plans - No organisational mechanisms to ensure consistent
use of formal procedures - Successful software depends more on individual
skill rather than organisation
42Level 2 Repeatable
- Formal management, quality assurance and
configuration control procedures - Organisation can successfully repeat projects of
the same type - Lack of formal process model
43Level 3 Defined
- Organisation has defined its process and has a
basis for qualitative process improvement - Formal procedures are in place to ensure that the
defined process is followed in all software
projects
44Level 4 Managed
- Organisation has a defined process and a formal
programme of quantitative data collection - Process and product metrics are collected and fed
into the process improvement activity
45Level 5 Optimising
- Organisation is committed to continuous process
improvement - Process improvement is budgeted and planned and
is an integral part of the organisations process
46Key Process Area
47Key Process Areas
- Level 1 Initial
- none
- Level 2 Repeatable
- Software configuration management
- Software quality assurance
- Software subcontract management
- Software project tracking and oversight
- Software project planning
- Requirements management
48Key Process Areas (Continued)
- Level 3 Defined
- Peer reviews
- Intergroup coordination
- Software product engineering
- Integrated software management
- Training programme
- Organisation process definition
- Organisation process focus
49Key Process Areas (Continued)
- Level 4 Managed
- Software quality management
- Quantitative process management
- Level 5 Optimising
- Process change management
- Technology change management
- Defect prevention
50References
- Software Engineering A Practitioners Approach
5th Ed. by Roger S. Pressman, Mc-Graw-Hill, 2001 - Software Engineering by Ian Sommerville,
Addison-Wesley, 2001