19
Chapter 2 Chapter 2 What is software quality ?

Chapter 2 What is software quality ?. Outline What is software? Software errors, faults and failures Classification of the causes of software errors Software

Embed Size (px)

Citation preview

Page 1: Chapter 2 What is software quality ?. Outline What is software? Software errors, faults and failures Classification of the causes of software errors Software

Chapter 2Chapter 2

What is software quality ?

Page 2: Chapter 2 What is software quality ?. Outline What is software? Software errors, faults and failures Classification of the causes of software errors Software

OutlineOutline• 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

Page 3: Chapter 2 What is software quality ?. Outline What is software? Software errors, faults and failures Classification of the causes of software errors Software

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.

Page 4: Chapter 2 What is software quality ?. Outline What is software? Software errors, faults and failures Classification of the causes of software errors Software

Software development process

software faultsoftware

failure

software

error

Loop boundsOverflowUnderflowRecursive callsInput formatSynchronizationMemory leak

Page 5: Chapter 2 What is software quality ?. Outline What is software? Software errors, faults and failures Classification of the causes of software errors Software

An Example:

Page 6: Chapter 2 What is software quality ?. Outline What is software? Software errors, faults and failures Classification of the causes of software errors Software

The nine causes of software errors: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

Page 7: Chapter 2 What is software quality ?. Outline What is software? Software errors, faults and failures Classification of the causes of software errors Software

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

Page 8: Chapter 2 What is software quality ?. Outline What is software? Software errors, faults and failures Classification of the causes of software errors Software

Determining the test methodology

Planning the tests

Designing the tests

Performing the tests(implementation)

Page 9: Chapter 2 What is software quality ?. Outline What is software? Software errors, faults and failures Classification of the causes of software errors Software

Determining the test Determining the test methodologymethodology

The appropriate required quality standard

The software testing strategy

Page 10: Chapter 2 What is software quality ?. Outline What is software? Software errors, faults and failures Classification of the causes of software errors Software

Planning the testsPlanning the tests

Unit tests - modulesIntegration tests - subsystemsSystem tests – entire software system

What to test?Which sources to use for test cases?Who is to perform? Where? When to

terminate?

Page 11: Chapter 2 What is software quality ?. Outline What is software? Software errors, faults and failures Classification of the causes of software errors Software

Test designTest designDetailed design and procedures

for each testTest case database/file

Page 12: Chapter 2 What is software quality ?. Outline What is software? Software errors, faults and failures Classification of the causes of software errors Software

8. User interface and procedure errors (interface designer)

9. Documentation errors - requirement document, design document, test document, user manuals

(functions missing, error explanation and instruction, listing of non-existing functions)

Page 13: Chapter 2 What is software quality ?. Outline What is software? Software errors, faults and failures Classification of the causes of software errors Software

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.

Page 14: Chapter 2 What is software quality ?. Outline What is software? Software errors, faults and failures Classification of the causes of software errors Software

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.

Page 15: Chapter 2 What is software quality ?. Outline What is software? Software errors, faults and failures Classification of the causes of software errors 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.

Page 16: Chapter 2 What is software quality ?. Outline What is software? Software errors, faults and failures Classification of the causes of software errors Software

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. 

Page 17: Chapter 2 What is software quality ?. Outline What is software? Software errors, faults and failures Classification of the causes of software errors Software

(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.

Page 18: Chapter 2 What is software quality ?. Outline What is software? Software errors, faults and failures Classification of the causes of software errors Software

(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.

Page 19: Chapter 2 What is software quality ?. Outline What is software? Software errors, faults and failures Classification of the causes of software errors Software

Software quality assurance Software quality assurance and software engineeringand 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.