Sunteți pe pagina 1din 37

Software Quality Assurance:

(SQA)
SQA components in the project life
cycle
Objective:
Integration of SQA components
within each phase of the projects life
cycle.
1
Contents:

Software development models


Applying Quality Assurance Activities: Factors to
consider
Verification, Validation, Qualification
Review
Testing

2
Components of Software Quality
Management (SQM):

Project progress control resource usage, schedules, RMA,


budget
Software quality metrics quality of s/w development,
productivity, fault density, schedule deviations
Software quality costs

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:

Extreme Programming (XP)


Adaptive Software development
Dynamic systems development method
SCRUM
Crystal
Feature-driven development

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.

The team estimates that about seven man-months needs to be


invested by the two team members assigned in the project
whose duration is estimated at four months. It is estimated that
a reusable components library can supply 90% of the project
software.

Three quality assurance activities were planned by the project


leader. The quality assurance activities and their duration are
listed here.
15
Example..contd.
Duration of quality assurance activities
Quality Assurance Duration of QA Duration of
Activity activities (days) correction and
changes (days)

Design review of 0.5 1


requirements
definition

Inspection of the 1 1
design
System test of 4 2
completed software

16
The main considerations affecting this plan
are:

Degree of teams acquaintance with the subject


High percentage of software reuse
Size of the project ( in this case , medium)
Severity of the failure if the project fails.

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:

A process or meeting during which a work product,


or set of work products, is presented to project
personnel, managers, users, customers, or other
interested parties for comment or approval.

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

I-B Integration A M11

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:

Error identification is difficult


Less effective
Correction is laborious
Resources and schedule - fuzzy

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

Top Down Testing

Difficulty of its performance


Early stage of performance as a whole

31
Black Box Testing:
As defined by IEEE (1990), a Black box
(functionality) testing is:

(1)Testing that ignores the internal mechanism of a


system, or component, and focuses solely on the
outputs generated in response to selected inputs and
execution conditions.
(2) Testing conducted to evaluate the compliance of
a system, or component with specified functional
requirements.
32
Advantages and Disadvantages of Black
box Testing:
Identifies bugs only according to malfunctioning of the
software as revealed from its outputs.
Disregards the internal paths of calculation performed by
the software.

Allows the tester to carry out almost all test classes


For test classes that can be carried out by both white and black
testing, black box testing required less resources

Lacks control of line coverage


Lacks possibilities to test the quality of coding work
Less error detection
33
White Box Testing:
As defined by IEEE (1990), a White box (structural)
testing is:

Testing that takes into account the internal


mechanism of a system or component .

34
Advantages and Disadvantages of
White box testing
Examines the internal paths of calculations in order to
identify bugs

Allows direct checking paths and algorithms


Provides line coverage follow-up Lines of code (LOC) that
not yet been checked
Testing quality of coding
Disadvantages:
Requires vast resources
Cannot test the performance of software in terms of
availability, reliability, stress etc.

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.

Line coverage is the percentage of executed


Lines of Code (LOC) examined during
test cases

36
White box testing:
Path coverage -Example

1 Different paths in a software module


are created by the choice in conditional
statements, such as IF-THEN-ELSE, or
2 DO WHILE, or DO UNTIL.
E.g. minimum number of paths:
3 4
1-2-3-5-6-8
5 1-2-4-5-7-8
Full coverage of the path include:
6 7 1-2-3-5-7-8
8 1-2-4-5-6-8
1-2-3-5-6-8
1-2-4-5-7-8
37
37

S-ar putea să vă placă și