Documente Academic
Documente Profesional
Documente Cultură
(SQA)
SQA components in the project life
cycle
Objective:
Integration of SQA components
within each phase of the projects life
cycle.
1
Contents:
2
Components of Software Quality
Management (SQM):
3
Software Development Models:
The Software Development Life Cycle (SDLC)
model
Waterfall Model
The prototyping model
The spiral model
The object-oriented model
Agile Methodology
V- Model
4
The SDLC Model
Linear sequential model
Begins with requirements
and ends with system
maintenance
Outputs reviewed at ends
of each phase
Used as basic framework
for other models
Seven-phase process
5
The Prototyping Model
Users comments
on versions of the
prototype.
Developers correct
and incorporate
additional parts into it.
This process is
repeated until the goal
of prototyping is
achieved.
6
SDLC Vs Prototyping models
Advantages of Prototype:
Shorter development process
Substantial savings
Better fit to customer requirements
Reduced risk of project failure
Easier and faster user comprehension of the new system
Disadvantages of Prototype:
Diminished flexibility and adaptability to changes and
additions
Reduced preparation for unexpected instances of failure
7
The Spiral Model
Improved methodology for
larger and more complex
system/projects
Introduced elements of risk
analysis and customer
participation in the development
process
Each iterations includes :
Planning
Risk analysis and resolution
Engineering
Customer evaluation
8
Advanced Spiral Model
The Win-Win model
Extra emphasis on
communication and negotiation
between customer and developer.
Customer wins improving
chances to receive system that
satisfies most of his needs
Developer wins improving
chances of completing the
project within budgetary and
time constraints
9
Advanced Spiral model.Contd.
Each iterations includes :
Customers specification
Developers planning
Developers risk analysis and resolution
Developers design
Developers construction
Customer evaluation
10
The Object Oriented Model
Intensive reuse of software
components
Begins with sequence of OO
analysis and design activities
Followed by reusable software
library + regular development
Newly developed software
components are stocked in the library
for future reuse
Advantages:
Economy
Improved quality
Shorter development time
11
The Agile Model
The agile model of software development is a collection
of software developments based on iterative and
incremental development, where requirements evolve
through collaborations between self organizing, cross-
functional teams.
There are 12 principles which form the basis of this
development methodology.
It promotes adaptive planning, evolutionary development
& delivery and a time boxed iterative approach and
encourages rapid and flexible response to change.
12
Agile model..contd.
There are different agile software development
methodologies such as:
13
Applying Quality Assurance Activities:
Factors to consider:
Project magnitude
Project Factor Its complexity & difficulty
Extent of reusable components
Failure severity
Professional qualification
Teams acquaintance with the
project and its experience in the area
Team Factor Availability of professional support
Familiarity with team members, i.e.
% of new staff members
14
Example:
A software dev. team has planned the quality assurance activities
for its new consumer club project. The current project contract
signed with a leading furniture store is the teams 11th
consumer club project dealing in the last three years.
Inspection of the 1 1
design
System test of 4 2
completed software
16
The main considerations affecting this plan
are:
17
Verification, Validation, Qualification
Definitions:
As defined by IEEE Std 610.12-1990 (IEEE, 1990):
Verification:
A process of evaluating a system or component to determine
whether the products of a given development phase satisfy the
conditions imposed at the start of that phase.
Validation:
The process of evaluating a system, or component during, or at
the end of the development process to determine whether it
satisfies specified requirements.
Qualification:
The process used to determine whether a system, or components
is suitable for operational use.
18
Purpose:
Verification:
Examines the consistency of current development
activities with the products from previous phase.
Validation:
Represents the customers interests by examining
the extent to which the customers original
requirements have been fulfilled
Qualification
Focuses on operational aspects maintenance is
the main issue. Review professional standards and
coding procedures
19
REVIEWS:
As defined by IEEE (1990), a Review process is:
20
TESTING:
Objectives:
Explain testing objectives.
Discuss the differences between the various
testing strategies, their advantages and
disadvantages.
Describe the concepts of black box testing and
white box testing, as well as discuss their
advantages and disadvantages.
Define path coverage vs. line coverage
21
DEFINITION:
According to Myers classic definition:
Testing is the process of executing a program
with intention of finding errors.
Two definitions for testing suggested by IEEE Std. 610.12 (IEEE,
1990) are as below:
(1)The process of operating a system, or component
under specified conditions, observing or recording the
results, and making an evaluation of some aspect of the
system or component.
(2) The process of analyzing a software item to detect the
differences between existing and required conditions (that
is, bugs) and to evaluate the features of the software item.
22
Objectives of Testing
Direct objectives
To identify and reveal as many errors
To bring the tested software to an
acceptable quality level
To perform the required testing in an
efficient and effective way, within budget
and schedule
In-Direct objectives
To supply records of software errors to be
used for error prevention ( indirect
objective)
23
Testing strategies
Big bang testing
Test the software as a whole, once the
complete package is available
Incremental testing
Software module are tested as they are
completed ( unit tests)
Then integration testing is followed
Once the entire package is completed,
system test is performed.
24
24
Incremental testing
Top-down Unit/module
Bottom up
25
25
Incremental testing: Bottom-up
M11
Integration C
Integration B
M9 M10
Integration A
M8
M1 M2 M3 M4 M5 M6 M7
26
26
Incremental testing:
Top-down
M9 M10
M8
M6 M7
M1 M2
I-D
M3 M4 M5 I-E
27
27
Incremental testing:
Stubs and drivers
Stubs and drivers are software replacement
simulators required for modules not available when
performing a unit or an integration test.
A stub (often termed a dummy module) replaces an
unavailable lower level module, subordinate to the
module tested.
Stubs are required for top-down testing of
incomplete systems.
Like a stub, a driver is a substitute module, but of the
upper level module that activates the module tested.
The driver is passing the test data on to the tested
module, and accepting the results calculated by it.
28
Incremental testing:
Stubs and drivers - example
Top-down
Driver
M9 of M9
M8 M8
Stub Stub M1 M2
of M1 of M2
Bottom up
29
29
Big-bang Vs. incremental testing
BIG BANG Testing:
INCREMENTAL Testing:
Error identification is higher
More effective
Correction is faster- within unit
Resources and schedule - more planned
30
Bottom-up Vs. Top-down
Bottom Up Testing
Lateness to perform as a whole
Ease of performance
31
Black Box Testing:
As defined by IEEE (1990), a Black box
(functionality) testing is:
34
Advantages and Disadvantages of
White box testing
Examines the internal paths of calculations in order to
identify bugs
35
Path and Line Coverage in White box
testing:
Path coverage is the percentage of possible
paths of software processing activated by
the test cases.
36
White box testing:
Path coverage -Example