background image

Quality of software 

(development)

Krzysztof Bronk, Łukasz Jopek

Krzysztof Bronk, Łukasz Jopek

background image

For your information

For your information

This presentation is organized in 

This presentation is organized in 

detailed points, so that all the 

detailed points, so that all the 

necessary information is available

necessary information is available

Straight-forward explanation 

Straight-forward explanation 

background image

What is software 

What is software 

(development) quality?

(development) quality?

all the actions leading to 

all the actions leading to 

satisfaction of all the interested 

satisfaction of all the interested 

people in the project

people in the project

assurance of the project meeting 

assurance of the project meeting 

the requirements and standards

the requirements and standards

background image

Why is it difficult to 

Why is it difficult to 

measure quality?

measure quality?

Many of the criteria are intangible

Many of the criteria are intangible

Those happen to be most important

Those happen to be most important

Measures should be accurate

Measures should be accurate

Complexity of the final product

Complexity of the final product

Test data explosion

Test data explosion

Multifaceted approach (wieloaspektowe podejście)

Multifaceted approach (wieloaspektowe podejście)

Long term use

Long term use

Criteria have to be known before project creation

Criteria have to be known before project creation

Different use

Different use

Scalability

Scalability

Time, money costs

Time, money costs

Speculation and assumptions, patterns, heuristics

Speculation and assumptions, patterns, heuristics

background image

TQM

TQM

Total Quality Management

Total Quality Management

Author: Eiji Toyoda

Author: Eiji Toyoda

Aim: motorization industry repair in 1950

Aim: motorization industry repair in 1950

Formalized by Americans (Deming, Crosby, Juran, 

Formalized by Americans (Deming, Crosby, Juran, 

Feigenbaum) and Japanese (Toyoda, Imai, Ishikawa) 

Feigenbaum) and Japanese (Toyoda, Imai, Ishikawa) 

and British (Oakland).

and British (Oakland).

ISO definition:

ISO definition:

 

 

"TQM is a management approach for an 

"TQM is a management approach for an 

organization, centred on quality, based on the 

organization, centred on quality, based on the 

participation of all its members and aiming at long-

participation of all its members and aiming at long-

term success through customer satisfaction, and 

term success through customer satisfaction, and 

benefits to all members of the organization and to 

benefits to all members of the organization and to 

society."

society."

My definition: “Client is happy 

My definition: “Client is happy 

 We are happy”

 We are happy”

background image

Quality in ISO 9000

Quality in ISO 9000

ISO 9000 - a family of ISO (the International 

ISO 9000 - a family of ISO (the International 

Organization for Standardization) standards for quality 

Organization for Standardization) standards for quality 

management systems

management systems

Primarily concerns with "quality management", which 

Primarily concerns with "quality management", which 

means what the company does to fulfil:

means what the company does to fulfil:

the customer's quality requirements

the customer's quality requirements

applicable regulatory requirements, while aiming to

applicable regulatory requirements, while aiming to

enhance customer satisfaction

enhance customer satisfaction

achieve consecutive performance improvements

achieve consecutive performance improvements

background image

ISO 9000 terminology

ISO 9000 terminology

quality

quality

 is a desirable characteristic, customers 

 is a desirable characteristic, customers 

expectations, that a product or service must have

expectations, that a product or service must have

Quality system

Quality system

 is a organization pattern of 

 is a organization pattern of 

responsibilities, authorities, and relationships that 

responsibilities, authorities, and relationships that 

control how people perform their functions

control how people perform their functions

Quality management

Quality management

 includes all the activities that 

 includes all the activities that 

managers carry out in an effort to implement their 

managers carry out in an effort to implement their 

quality policy

quality policy

quality policy

quality policy

 statement defines or describes an 

 statement defines or describes an 

organization's commitment to quality

organization's commitment to quality

Quality audits

Quality audits

 

 

examine the elements of a quality 

examine the elements of a quality 

management system in order to evaluate how well 

management system in order to evaluate how well 

these elements comply with quality system 

these elements comply with quality system 

requirements

requirements

background image

Policy & system quality 

Policy & system quality 

(1)

(1)

Quality policy should:

Quality policy should:

State a clear commitment to quality

State a clear commitment to quality

Recognize customer needs and expectations

Recognize customer needs and expectations

Be actively supported by senior management

Be actively supported by senior management

List the quality objectives you want to achieve

List the quality objectives you want to achieve

Be understood by everyone in the organization

Be understood by everyone in the organization

Be consistent with your organization's goal

Be consistent with your organization's goal

Be applied and maintained throughout your 

Be applied and maintained throughout your 

organization

organization

background image

Policy & system quality 

Policy & system quality 

(2)

(2)

Quality system should:

Quality system should:

Describe the structure of your organization

Describe the structure of your organization

Discuss your quality system procedures

Discuss your quality system procedures

Define quality documents and records

Define quality documents and records

Set responsibilities and objectives

Set responsibilities and objectives

background image

Software quality 

Software quality 

planning

planning

ISO 9000 

ISO 9000 

Has a "manufacturing" focus and was not written 

Has a "manufacturing" focus and was not written 

with software in mind

with software in mind

Designed to be a generic standard, applicable to any 

Designed to be a generic standard, applicable to any 

business

business

ISO 9000-3 

ISO 9000-3 

Designed to assist software development

Designed to assist software development

Deals with potential complexity and interaction 

Deals with potential complexity and interaction 

among software subsystems and software-hardware 

among software subsystems and software-hardware 

subsystems, and a unique product life cycle 

subsystems, and a unique product life cycle 

IEEE 610-12

IEEE 610-12

Quality measurement is based on the combination of 

Quality measurement is based on the combination of 

desirable features

desirable features

background image

ISO 9126

ISO 9126

Six groups that build up quality

Six groups that build up quality

Functionality

Functionality

Reliability

Reliability

Usability

Usability

Effectiveness 

Effectiveness 

Maint

Maint

enance

enance

Portability

Portability

background image

Functionality

Functionality

Meeting requirements

Meeting requirements

Careful examination

Careful examination

Precisely designed

Precisely designed

Precise

Precise

Liaison (współdziałanie)

Liaison (współdziałanie)

Security

Security

background image

Reliability

Reliability

Mature product

Mature product

Error tolerance

Error tolerance

System restore after crash

System restore after crash

background image

Usability

Usability

Easy to understand

Easy to understand

Easy to use

Easy to use

background image

Effectiveness

Effectiveness

Reasonable response time

Reasonable response time

Reasonable resource use

Reasonable resource use

background image

Maint

Maint

enance

enance

Easy to change

Easy to change

Easy to validate

Easy to validate

Easy to modify

Easy to modify

Stable

Stable

Available

Available

background image

Portability

Portability

Adjustability

Adjustability

Installation in different 

Installation in different 

environment

environment

Functional correspondence 

Functional correspondence 

(zgodność)

(zgodność)

background image

Quality Management

Quality Management

Client oriented

Client oriented

Good leadership

Good leadership

Staff satisfaction

Staff satisfaction

Staff motivation

Staff motivation

Staff training

Staff training

Process approach: processes as steps, measures of 

Process approach: processes as steps, measures of 

processes, relationship between processes

processes, relationship between processes

System approach: detailed control of the whole 

System approach: detailed control of the whole 

developing environment

developing environment

Good management = combination of both

Good management = combination of both

Evolution, not revolution

Evolution, not revolution

Feedback

Feedback

Close relationship with client for the sake of the project

Close relationship with client for the sake of the project

background image

Software quality 

Software quality 

assurance

assurance

Software Quality Assurance

Software Quality Assurance

 (SQA) is defined as “a 

 (SQA) is defined as “a 

planned and systematic approach to the evaluation of 

planned and systematic approach to the evaluation of 

the quality of and adherence to software product 

the quality of and adherence to software product 

standards, processes, and procedures”

standards, processes, and procedures”

Software QA involves the entire software development 

Software QA involves the entire software development 

process - monitoring and improving the it, making sure 

process - monitoring and improving the it, making sure 

that any agreed-upon standards and procedures are 

that any agreed-upon standards and procedures are 

followed

followed

In most cases, because of the software complexity, we 

In most cases, because of the software complexity, we 

inspect crucial parts only

inspect crucial parts only

Software Quality Assurance Plan

Software Quality Assurance Plan

 (SQAP) defines 

 (SQAP) defines 

inspection procedures in each of the projects phases

inspection procedures in each of the projects phases

background image

Quality loss risk

Quality loss risk

If the project is new

If the project is new

If the project is complex

If the project is complex

Staff not trained well

Staff not trained well

Inexperienced staff

Inexperienced staff

New procedures

New procedures

Low organizational maturity of the 

Low organizational maturity of the 

developer

developer

background image

How to lower the risk

How to lower the risk

SQA should start the work early

SQA should start the work early

Check the user requirements, 

Check the user requirements, 

plans, standards

plans, standards

Higher cost of an error if detected 

Higher cost of an error if detected 

too late

too late

background image

Quality assurance 

Quality assurance 

methods 

methods 

(SQM)

(SQM)

Tasks from organization perspective:

Tasks from organization perspective:

Developing process maintenance, supervision, and 

Developing process maintenance, supervision, and 

acknowledgement

acknowledgement

Standards usage

Standards usage

Tasks from project perspective:

Tasks from project perspective:

Adapt standards

Adapt standards

Project reviews

Project reviews

Testing 

Testing 

Taking part in inspections

Taking part in inspections

Developing and qualities plans evaluation

Developing and qualities plans evaluation

System configuration maintenance audits

System configuration maintenance audits

Participation in managing committee

Participation in managing committee

background image

Quality assurance 

Quality assurance 

methods 

methods 

(SQM)

(SQM)

Staff should verify if:

Staff should verify if:

Project is well organized

Project is well organized

Projects life cycle is appropriate

Projects life cycle is appropriate

Team members have assigned tasks and 

Team members have assigned tasks and 

responsibilities

responsibilities

Staff should also:

Staff should also:

Supervise documentation

Supervise documentation

Check measurements data

Check measurements data

Plan controls, audits, tests

Plan controls, audits, tests

Register problems and solutions

Register problems and solutions

Approve development tools, techniques, methods

Approve development tools, techniques, methods

Approve software storage

Approve software storage

background image

Main quality assurance 

Main quality assurance 

methods groups

methods groups

Systems certification before the implementation

Systems certification before the implementation

Enforcing standards of gathering and processing data

Enforcing standards of gathering and processing data

Reviewing and certification of developing and 

Reviewing and certification of developing and 

documentation

documentation

System architecture standards and programming 

System architecture standards and programming 

patterns developing

patterns developing

Project reviewing in sense of compatibility

Project reviewing in sense of compatibility

New and modified software testing

New and modified software testing

Developing managing standards

Developing managing standards

Trainings

Trainings

background image

Quality norms – IEEE-

Quality norms – IEEE-

730

730

General quality assurance plan

General quality assurance plan

Analysis of the point of view

Analysis of the point of view

Reference of the developer

Reference of the developer

Software management

Software management

Documentation

Documentation

Standardization of actions

Standardization of actions

Inspections

Inspections

Audits

Audits

Software configuration management

Software configuration management

Reports of problems

Reports of problems

Used methods and tools

Used methods and tools

Code control

Code control

Data warehouse management

Data warehouse management

Code maintenance

Code maintenance

IEEE-983 as more detailed IEEE-730

IEEE-983 as more detailed IEEE-730

background image

Developing processes 

Developing processes 

maturity and 

maturity and 

immaturity

immaturity

Developing processes immaturity factors:

Developing processes immaturity factors:

Improvisation during the developing process

Improvisation during the developing process

Process is specified, but the specification is not used

Process is specified, but the specification is not used

Immediate crisis actions

Immediate crisis actions

Timetable and budget are being exceeded

Timetable and budget are being exceeded

Constantly decreased functionality

Constantly decreased functionality

Low-grade product quality

Low-grade product quality

No objective estimation criteria

No objective estimation criteria

background image

Developing processes 

Developing processes 

maturity and 

maturity and 

immaturity

immaturity

Developing processes maturity factors:

Developing processes maturity factors:

Software building ability is a characteristic of an 

Software building ability is a characteristic of an 

organization, and not a person

organization, and not a person

Process is determined, known and used

Process is determined, known and used

Process is analysed and improved

Process is analysed and improved

Tasks are planned and monitored

Tasks are planned and monitored

Roles and responsibilities are defined

Roles and responsibilities are defined

Objective and quantitative estimation is possible

Objective and quantitative estimation is possible

background image

Capability Maturity 

Capability Maturity 

Model 

Model 

(CMM)

(CMM)

Initiated in response to the request of the U.S. 

Initiated in response to the request of the U.S. 

Government to provide a method for assessing the 

Government to provide a method for assessing the 

capability of its contractors

capability of its contractors

The CMM is a framework that describes the key 

The CMM is a framework that describes the key 

elements of an effective process

elements of an effective process

Describes an evolutionary improvement path from an 

Describes an evolutionary improvement path from an 

ad hoc, immature process to a mature, disciplined 

ad hoc, immature process to a mature, disciplined 

process

process

The CMM covers practices for planning, engineering, 

The CMM covers practices for planning, engineering, 

and managing development and maintenance activities

and managing development and maintenance activities

Partially based on TQM concept

Partially based on TQM concept

background image

CMM's Five Maturity 

CMM's Five Maturity 

Levels of Software 

Levels of Software 

Processes

Processes

background image

CMM's Five Maturity 

CMM's Five Maturity 

Levels of Software 

Levels of Software 

Processes

Processes

At the 

At the 

initial level

initial level

, processes are disorganized, even chaotic. Success 

, processes are disorganized, even chaotic. Success 

is likely to depend on individual efforts, and is not considered to be 

is likely to depend on individual efforts, and is not considered to be 

repeatable, because processes would not be sufficiently defined and 

repeatable, because processes would not be sufficiently defined and 

documented to allow them to be replicated. 

documented to allow them to be replicated. 

At the 

At the 

repeatable level

repeatable level

, basic project management techniques are 

, basic project management techniques are 

established, and successes could be repeated, because the requisite 

established, and successes could be repeated, because the requisite 

processes would have been made established, defined, and 

processes would have been made established, defined, and 

documented. 

documented. 

At the 

At the 

defined level

defined level

, an organization has developed its own standard 

, an organization has developed its own standard 

software process through greater attention to documentation, 

software process through greater attention to documentation, 

standardization, and integration. 

standardization, and integration. 

At the 

At the 

managed level

managed level

, an organization monitors and controls its own 

, an organization monitors and controls its own 

processes through data collection and analysis. 

processes through data collection and analysis. 

At the 

At the 

optimizing level

optimizing level

, processes are constantly being improved 

, processes are constantly being improved 

through monitoring feedback from current processes and introducing 

through monitoring feedback from current processes and introducing 

innovative processes to better serve the organization's particular 

innovative processes to better serve the organization's particular 

needs.

needs.

background image

Software quality 

Software quality 

assurance plan

assurance plan

Maintained through the whole 

Maintained through the whole 

development life cycle

development life cycle

First version a

First version a

t the end of the

t the end of the

 user 

 user 

requirements phase

requirements phase

Size should resemble the size of 

Size should resemble the size of 

the project

the project

Should deal with all recognized 

Should deal with all recognized 

aspects of quality assurance

aspects of quality assurance

background image

SQAP sections

SQAP sections

SQAP for user requirements

SQAP for user requirements

SQAP for analysis

SQAP for analysis

SQAP for project architecture

SQAP for project architecture

SQAP for design phase

SQAP for design phase

SQAP for implementation and 

SQAP for implementation and 

deployment

deployment

background image

Basic rules

Basic rules

Numbers for points should not be 

Numbers for points should not be 

changed

changed

Additional information should not 

Additional information should not 

be included in the main document 

be included in the main document 

part

part

Document easy to navigate

Document easy to navigate

Easy to understand

Easy to understand

Coherent (spójny)

Coherent (spójny)

Modifiable 

Modifiable 

background image

What’s inside - Aim

What’s inside - Aim

SQAP aim

SQAP aim

Type of reader

Type of reader

Software products related to 

Software products related to 

SQAP

SQAP

Wilful use of software (name the 

Wilful use of software (name the 

development phase)

development phase)

background image

What’s inside - 

What’s inside - 

Management

Management

Organizations dealing with quality

Organizations dealing with quality

Roles (with no assignments)

Roles (with no assignments)

Organization’s responsibility 

Organization’s responsibility 

background image

What’s inside – 

What’s inside – 

Documentation

Documentation

Identifies all documents produced 

Identifies all documents produced 

in this phase

in this phase

How to check those documents 

How to check those documents 

for user requirements conformity 

for user requirements conformity 

(zgodność)

(zgodność)

background image

What’s inside – 

What’s inside – 

Standards

Standards

Details on standards and 

Details on standards and 

references to other documents

references to other documents

background image

What’s inside – 

What’s inside – 

Inspections/Audits

Inspections/Audits

Describes methods of monitoring 

Describes methods of monitoring 

of  plan and procedure 

of  plan and procedure 

correspondence 

correspondence 

Role of SQA personnel in those 

Role of SQA personnel in those 

procedures

procedures

background image

What’s inside – Tests

What’s inside – Tests

How to monitor and verify the 

How to monitor and verify the 

verification process and how to 

verification process and how to 

check the acceptation tests

check the acceptation tests

background image

What’s inside – 

What’s inside – 

Problem reports

Problem reports

How to signify an error of problem

How to signify an error of problem

How to measure errors

How to measure errors

Error reaction procedure

Error reaction procedure

background image

What’s inside – Code 

What’s inside – Code 

control

control

How to maintain clear code, make 

How to maintain clear code, make 

it portable, how to store it

it portable, how to store it

 

 

securely

securely

Code documentation procedures

Code documentation procedures

background image

What’s inside – Media 

What’s inside – Media 

control

control

Procedures regarding media, on 

Procedures regarding media, on 

which the software and 

which the software and 

documentation will be stored

documentation will be stored

background image

What’s inside – 

What’s inside – 

Provider

Provider

Know your provider

Know your provider

control procedures

control procedures

background image

What’s inside – Notes 

What’s inside – Notes 

maint

maint

enance

enance

 

 

procedures regarding notes from 

procedures regarding notes from 

meetings or general information 

meetings or general information 

exchange and how to store them 

exchange and how to store them 

properly

properly

who has access to notes

who has access to notes

background image

Apart from google & 

Apart from google & 

Włodek

Włodek

http://www.state.gov/

http://www.state.gov/

http://www.praxiom.com/

http://www.praxiom.com/

http://www.iso.org/

http://www.iso.org/

http://www.mhhe.com/

http://www.mhhe.com/


Document Outline