Вы находитесь на странице: 1из 18

Software Quality

Assurance
and Testing
Lecture 3
What is Software Quality?
Historical Perspective

Outline

A Historical Perspective of Quality

Changing Views of Quality

Software Quality Factors


McCalls Factor Model

Software Quality Assurance an


overview

A Historical Perspective of
Quality

Under the traditional setting, quality is


typically associated with the
manufacturing process
An emerging view of quality is that
business needs to adjust to the
dynamically shifting expectations of
customers

Software Quality Assurance &


Testing

A Historical Perspective of
Quality Contd

A historical perspective of SE, in 4 stages


(Musa & Everett, 1990):

functional: focus on automation


schedule: timely/orderly product intro
cost: competitive marketplace
reliability: meet user expectations

Software Quality Assurance &


Testing

A Historical Perspective of
Quality Contd

The 90s era and beyond is Quality era


So, what is software quality?

many aspects/perspective, but


correctness-centered in SQE

Software Quality Assurance &


Testing

Quality is everyone's
responsibility,
including white-collar
workers, the indirect
Present
labor force and the
over head staf

Quality is the
responsibility of blue
collar workers and
direct labor
Past
employees working on
the product

Quality defects should


be hidden from the
customers and
management

Defects should be
highlighted and
brought to the surface
for corrective action

Quality problem lead


to blame, faulty
justifications and
excuses

Quality problems lead


to co-operative
solutions

Changing Views of Quality

Software Quality Assurance an


overview

Software Quality Factors

Several models of software quality factors


have been suggested.
The classic model of software quality
factors, suggested by McCall, consists of
11 factors (McCall et al., 1977).
Deutsch and Willis (1988) and by Evans
and Marciniak (1987) models consists of
12 to 15 factors.

Software Quality Assurance &


Testing

McCalls Factor Model

The 11 factors are grouped into three


categories sub categories:
Product operation factors:
Correctness, Reliability, Efficiency, Integrity,
Usability.
Product revision factors:
Maintainability, Flexibility, Testability.
Product transition factors:
Portability, Reusability, Interoperability.
Software Quality Assurance &
Testing

Product operation factors


Correctness:
Defined in a list of the software systems
required output

The output mission (e.g. red alarms when


temperature rises to 100 C)
Required accuracy of the output (e.g. non-accurate
output will not exceed 1%)
Completeness of the output info (e.g. probability of
missing data less than 1%)
The up-to-dateness of the info (e.g. it will take no
more than 1s for the information to be updated)
The availability of the info (e.g. reaction time for
queries will be less than 2s on average)
The required standards and guidelines (the software
and its docs must
comply
the
clients guidelines)
Software
Quality with
Assurance
&
Testing

Product operation factors


Contd

Reliability:

Determines the maximum allowed software


system failure rate
Can focus on entire system or just on a
separate function
E.g. a heart-monitors failure rate must be less
than 1:20 years

Software Quality Assurance &


Testing

10

Product operation factors


Contd

Eficiency:

Focus is on hardware resources needed to


perform the operations to fulfill the
requirements (memory, storage, CPU speed,
etc.)

Integrity:

Requirements to prevent access to


unauthorized persons
Rights management (e.g. limit the write
permit to key personnel)
Software Quality Assurance &
Testing

11

Product operation factors


Contd

Usability:

Deals with the scope of staf resources needed


to train a new employee and to operate the
software system
E.g. training of a new employee to operate the
system will take no more than 2 working days
(16h)

Software Quality Assurance &


Testing

12

Product revision factors

Maintainability:

Determines the efort needed to identify the


causes for software failures, to correct them,
and to verify the success of the corrections
Refers to the modular structure of the software
as well as to the manuals and documentations

Software Quality Assurance &


Testing

13

Product revision factors


Contd

Flexibility:

The efort required to support adaptive


maintenance activities

E.g. man-days required to adapt a software


package to a variety of customers of the same
trade

Testability:

Testability requirements include automatic


diagnostics checks and log files, etc.

E.g. a standard test must be run every morning


before the production begins
Software Quality Assurance &
Testing

14

Product transition factors

Portability:

Adaptation of the system to other


environments of diferent hardware, OS,
etc.

Reusability:

Mostly the developer himself will initiate


the reusability requirements by recognizing
the potential benefit of a reuse
Its expected to save development
resources, shorten the development time
and provide higher quality modules
Software Quality Assurance &
Testing

15

Product transition factors


Contd

Interoperability:

Focuses on developing interfaces with other


software systems or with other equipment
firmwares
e.g a laboratory equipment is required to
process its results (output) according to a
standard data structure, which the laboratory
information system can then use as an input

Software Quality Assurance &


Testing

16

McCalls Factor Model


Contd

Software Quality Assurance &


Testing

17

References

Software Quality Assurance: From Theory


to Implementation, Daniel Galin,Addison.
Wesley, 2003. (Chapter 3 section 3.3)
Software Quality Engineering: Testing,
Quality Assurance, and Quantifiable
Improvement by Jef Tian, published by
John Wiley & sons, 2005. (Chapter 2
section 2.4)

Software Quality Assurance &


Testing

18

Вам также может понравиться