Chapter 2 What is software quality ?. Outline What is software? Software errors, faults and failures...

Post on 20-Jan-2016

220 views 2 download

transcript

Chapter 2Chapter 2

What is software quality ?

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

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 faultsoftware

failure

software

error

Loop boundsOverflowUnderflowRecursive callsInput formatSynchronizationMemory leak

An Example:

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

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 Determining the test methodologymethodology

The appropriate required quality standard

The software testing strategy

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?

Test designTest designDetailed design and procedures

for each testTest case database/file

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)

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