Transcript Chapter 2
Chapter 2
What is software quality ?
Outline
•
•
•
•
•
•
What is software?
Software errors, faults and failures
Classification of the causes of software
errors
Software quality – definition
Software quality assurance – definition
and objectives
Software quality assurance and software
engineering
Software is:
(system analyst/tester/manager/programmer/
document expert/client)
- Computer programs,
- Procedures,
- Associated documentation, and
- Data pertaining to the operation
of a computer system.
Software development process
software error
software fault
software
failure
Loop bounds
Overflow
Underflow
Recursive calls
Input format
Synchronization
Memory leak
An Example:
The nine causes of software errors:
1.
Faulty requirements definition
(stakeholders: client/analyst)
- erroneous, absence, incomplete, unnecessary
2. Client-developer communication failures
(developer)
- misunderstanding/lack of attention (instructions, change, client responses)
3. Deliberate deviations from software requirements
- reuse module w/o adaption, omit, unapproved improvement, disregard “minor” change
4. Logical design errors (analyst/architect/programmer)
- erroneous algorithms, process sequencing errors, boundary conditions,
omission of system states & definitions to legal/illegal operations
5. Coding errors (programmer)
- misunderstanding design documentation, errors in using CASE tools
6. Non-compliance
with documentation and
coding instructions (programmer)
- waste time, more difficulty to understand, prone to error, hard to review,
no efficiency, difficulty for maintenance
7.
Shortcomings of the testing process (tester)
- incomplete test plan, failure to report detected errors, incomplete
correction, inappropriate indications of the reasons
Determining the test
methodology
Planning the tests
Designing the tests
Performing the tests
(implementation)
Determining the test methodology
The appropriate required quality standard
The software testing strategy
Planning the tests
Unit tests - modules
Integration tests - subsystems
System tests – entire software system
What to test?
Which sources to use for test cases?
Who is to perform? Where? When to
terminate?
Test design
Detailed design and procedures for each
test
Test case database/file
8. User interface and procedure errors
9.
(interface designer)
Documentation errors
- requirement document, design document, test document, user manuals
(functions missing, error explanation and instruction, listing of non-existing
functions)
Software quality is:
(1) The degree to which a system,
component, or process meets specified
requirements.
(2) The degree to which a system,
component, or process meets
customer or user needs or
expectations.
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.
Software quality assurance is:
1. A planned and systematic pattern of all
actions necessary to provide adequate
confidence that an item or product
conforms to established technical
requirements.
2. A set of activities designed to evaluate the
process by which the products are
developed or manufactured. Contrast
with: quality control.
Software quality assurance is:
A systematic, planned set of actions
necessary to provide adequate confidence
that the software development process or
the maintenance process of a software
system product conforms to established
functional technical requirements as well as
with the managerial requirements of
keeping the schedule and operating within
the budgetary confines.
(1) Assuring an acceptable level of confidence
that the software will conform to
functional technical requirements.
(2) Assuring an acceptable level of confidence
that the software will conform to
managerial scheduling and budgetary
requirements.
(3) Initiation and management of activities
for the improvement and greater
efficiency of software development and
SQA activities.
(1) Assuring an acceptable level of confidence
that the software maintenance activities will
conform to the functional technical
requirements.
(2) Assuring an acceptable level of confidence
that the software maintenance activities will
conform to managerial scheduling and
budgetary requirements.
(3) Initiate and manage activities to improve and
increase the efficiency of software
maintenance and SQA activities.
Software quality assurance and
software engineering
(1) The application of a systematic, disciplined,
quantifiable approach to the development,
operation and maintenance of software; that
is, the application of engineering to software.
(2) The study of approaches as in (1)
- The characteristics of SE make the SE environment
(methodologies and tools) a good infrastructure for
achieving SQA objectives.