Anda di halaman 1dari 17

Software Testing and validation

SQA - SWE 434

Prof. Mohamed Batouche


batouche@ksu.edu.sa
What is quality ?

Quality popular view:


Something good but not quantifiable
Something luxury and classy

Quality professional view:


Conformance to requirement
(Crosby, 1979)
The requirements are clearly stated and the
product must conform to it
Any deviation from the requirements is
regarded as a defect
A good quality product contains fewer defects

Fitness for use (Juran, 1970):


Fit to user expectations: meet users needs
A good quality product provides better user
satisfaction
2
Definition of Quality
ISO 8402 definition
ISO 9216 Model:
of QUALITY:
Quality characteristics
The totality of features and
1.Functionality
characteristics of a product 2.Reliability
or a service that bear on 3.Usability
its ability to satisfy stated 4.Efficiency
or implied needs 5.Maintainability
6.Portability
3
Quality Concepts
Variation control is the heart of quality control

Quality of design
refers to characteristics designers specify for the end product to
be constructed
Quality of conformance
degree to which design specifications are followed in
manufacturing the product
Quality control
series of inspections, reviews, and tests used to ensure
conformance of a work product (artifact) to its specifications
Quality assurance
auditing and reporting procedures used to provide management
with data needed to make proactive decisions

4
Quality Control versus SQA

Quality Control (QC) is a set of activities carried out with the main
objective of withholding products from shipment if they do not
qualify.

Quality Assurance (QA) is meant to minimize the costs of quality by


introducing a variety of activities throughout the development
process and maintenance process in order to prevent the causes of
errors, detect them, and correct them in the early stages of the
development. As a result, quality assurance substantially reduces
the rate of non-qualifying products.

5
Why do we care about
Quality?

Development cost Correction cost & source

Specification : 6% Req. & Specification 56%


Design : 5% Design : 24%
Coding : 7% Coding : 10%
V&V (Testing) : 15% Other: 10%
Maintenance : 67%

6
Quality as Dealing with
defects
When people associate Quality or High Quality with software
system, it is an indication that few, if any, defects are expected to
occur during its operations or when problems do occur, the negative
impact is expected to be minimized.

Key of the correctness aspect of software quality is the concept of


defect, failure, fault and error.

The term defect refers to some problem with the software either
with its external or with internal characteristics.

7
Causes of software defects
1. Faulty requirements definition
2. Client-developer communication failures
3. Deliberate deviations from software
requirements
4. Logical design errors
5. Coding errors
6. Non-compliance with documentation and
coding instructions
7. Shortcomings of the testing process
8. User interface and procedure errors
9. Documentation errors
8
Software errors, software
faults and software failures
Software development process

software error
software fault
software failure

9
Software errors, software
faults and software failures
More precisely:

An error can be a grammatical error in one or more of the code


lines, or a logical error in carrying out one or more of the clients
requirements.

Not all software errors become software faults. in some cases, the
software error can cause improper functioning of the software. In
many other cases, erroneous code lines will not affect the
functionality of the software as a whole.

A failure is said to occur whenever the external behavior of a system


does not conform to that prescribed in the system specification. A
software fault becomes a software failure only when it is activated
10
Error, faults, failures

Aditya P. Mathur 2009 11


The Software Quality Shrine
Galins book

ts Pre
p one n -pro
ject
A c om SQ A co
Contract review ct SQ
oje Project mpo
Ch.5 e-pr Pr Development plan nen
ts
and Quality Plan
Ch.6

Project Life Cycle SQA components

SQA of External Participants


Formal Design Reviews

Software Maintenance
Software Testing
Experts Opinion
Peer Reviews

Chs. 9-10
Sec. 8.2

Sec. 8.3

Sec. 8.5

Ch. 11

Ch 12
Quality Infrastructure components Quality Management Standards
Supporting Training Preventive Configuration Document- Project Software Software Quality Project
Devices Instruction Management ation Progress Quality Quality Management Process
Procedures Actions Control Control Costs Standards
Ch. 18 Metrics Standards
Ch. 14 Ch. 15 Ch. 16 Ch.17 Ch. 19 Ch. 20 Ch. 21 Ch. 22 Ch. 23 Ch.24

Organizational Base Human components


Management - Ch. 25 SQA Unit - Sec. 26.1 SQA Trustees Sec. 26.2 SQA Committees Sec. 26.2 SQA Forums Sec 26.4

12
Software Testing

Software testing is a popular risk


management strategy. It is used to verify
that functional requirements were met.

The limitation of this approach, however,


is that by the time testing occurs, it is too
late to build quality into the product

13
What is Software
Testing?
Several definitions:

Testing is the process of establishing confidence that a program or


system does what it is supposed to. by Hetzel 1973

Testing is the process of executing a program or system with the


intent of finding errors. by Myers 1979

Testing is any activity aimed at evaluating an attribute or


capability of a program or system and determining that it meets its
required results. by Hetzel 1983
What is Software
Testing?
- One of very important software development phases

- A software process based on well-defined software quality


control and testing standards, testing methods, strategy, test
criteria, and tools.

- Engineers perform all types of software testing activities to


perform a software test process.

- The last quality checking point for software on its production


line
References
K. NAIK AND P. TRIPATHY: SOFTWARE TESTING AND
QUALITY ASSURANCE, WILEY, 2008.
IAN SOMMERVILLE, SOFTWARE ENGINEERING, 8TH
EDITION, 2006.
ADITYA P. MATHUR,FOUNDATIONS OF SOFTWARE
TESTING, PEARSON EDUCATION, 2009.
D. GALIN, SOFTWARE QUALITY ASSURANCE: FROM
THEORY TO IMPLEMENTATION, PEARSON EDUCATION,
2004

DAVID GUSTAFSON, THEORY AND PROBLEMS OF


SOFTWARE ENGINEERING, Schaums Outline Series,
McGRAW-HILL, 2002.
16