Software Quality

advertisement

The software systems must do what they are supposed to do.

do the right things”

They must perform these specific tasks correctly or satisfactorily.

do the things right”

1.

2.

Consumers

of software products or services, including customers and users, either internally or externally

Producers

of software products, or anyone involved with the development, management, maintenance, marketing, and service of software products

User: The software system performs useful functions as it is specified

Performs the right functions as specified

Performs these functions correctly over a long period of time

The V & V of software: Verification & Validation

Many: ease of use or usability

Others: installation and operation – “plugand- play”

Extended definition of users: smooth operation and interaction between the software and the non-human users in the form of interoperability, and adaptability.

Customer: same as the user, with additional concern for the cost of the software or service.

Fulfill contractual obligations by: producing software products that conform to specifications or

Providing services that conform to service agreement

Product and service managers: adherence to pre-selected software process and relevant standards, proper choice of software methodologies, languages and tools

Other people on the producer side:

Usability and modifiability (for service)

Maintainability (for maintenance)

Portability (for third party or software packaging providers)

Profitability and customer value (for product marketing)

Quality frameworks accommodate various quality views and expectations

Define quality and related attributes, features, characteristics and measurements

ISO-9126 (ISO,2001)

Most influential in the Software Engineering

Discusses various adaptations of quality frameworks for specific application environments

provides a hierarchical framework for quality definition, organized into quality characteristics and sub-characteristics

Functionality

Reliability

Usability

Efficiency

Maintainability

Portability

A set of attributes that bear on the existence of a set of functions and their specified properties. The functions are those that satisfy stated or implied needs.

- Suitability

- Accuracy

- Interoperability

- Security

A set of attributes that bear on the capability of software to maintain its level of performance under stated conditions for a stated period of time.

- Maturity

- Fault tolerance

- Recoverability

A set of attributes that bear on the effort needed for use, and on the individual assessment of such use, by a stated or implied set of users.

- Understandability

- Learnability

- Operability

A set of attributes that bear on the relationship between the level of performance of the software and the amount of resources used, under stated conditions.

- Time behavior

- Resource behavior

A set of attributes that bear on the effort needed to make specified modifications.

- Analyzability

- Changeability

- Stability

- Testability

Correctness => several quality characteristics or sub-characteristics

Typically the most important aspect of quality for situations where daily life or business depends on software

Defect – some problem with the software, either with external behavior or internal characteristics, there are three types of defects:

Failure:

The inability of a system or component to perform its required functions within specified performance requirements.

Fault:

An incorrect step, process, or data definition in a computer program.

Error:

A human action that produces an incorrect result.

NOT

Bugs???

Debug??? Or Debugging???

INSTEAD

Defect detection and removal

- Specific activities related to defect discovery, including testing, inspection, etc.

- Specific follow-up activities after defect discovery, including defect diagnosis, analysis, fixing, and re-verification

Errors Faults Failures

View

Consumer/ External

(user & customer)

Producer/ Internal

(developer, manager, tester, etc)

Correctness

Failure- related properties

Fault-related properties

Attribute

Others

Usability

Maintainability

Portability

Performance

Instability

Readability etc (-ilities)

Design

Size

Change

Complexity etc

Failure properties and direct failure measurement:

Information about the specific failures, what they are, how they occur, etc.

Measured directly by examining failure count, distribution, density, etc.

Failure likelihood and reliability measurement:

captured in various reliability measures, where

reliability

given set of input

-> probability of failure-free operations for a specific time period or for a

Failure severity measurement and safety assurance:

Accidents -

failures with severe consequences, need to be avoided, contained, or dealt with to ensure the safety for the personnel involved and to minimize other damages.

Fix Problems or Faults that caused failures

Deal with the injection and activation of other faults

-

-

-

-

-

Faults can be analyzed and examined according to:

Types

Relations to specific failures and accidents

Causes

Time and circumstances when they are injected

Distribution and density

Defect prevention

Defect detection and removal

Defect containment

Quality engineering includes

Quality planning

Measurement, analysis and feedback

Evolving perceptions of quality

Quality --- physical objects (cars, tools, radio,

TV, etc

QA --- manufacturing process

Focus --- product conform to specifications

Quality problems --- non-conformance

Quality problems --- observed defects

Shift to expectations of quality,

Focus --- 0 defect

Customer loyalty over conformance

Conformance, adaptability and innovation

1. Functional stage - providing the automated functions to replace

2. Schedule stage - introducing important features and new systems on a timely and orderly basis to satisfy urgent user needs

3. Cost stage - reducing the price to stay competitive accompanied by the widespread use of personal computers.

4. Reliability stage - managing users’ quality expectations under the increased dependency on software and high cost or severe damages associated with software failures.

Software quality may include many different attributes and may be defined and perceived differently based on people’s different roles and responsibilities

High quality means none or few problems of limited damage to customers. These problems are encountered by software users and caused by internal software defects.

Download