KEMBAR78
Validation testing in software engineering | PPTX
SUPERIOR GROUP OF COLLEGES, SARGODHA
SUPERIOR GROUP OF COLLEGES, SARGODHA
Software
Engineering
LECTURE
PROF. MUHAMMAD BILAL QURESHI
SUPERIOR GROUP OF COLLEGES, SARGODHA
Validation testing
SUPERIOR GROUP OF COLLEGES, SARGODHA
Validation testing
• Validation testing follows integration testing
• The distinction between conventional and
object-oriented software disappears and
Focuses on user-visible actions and user-
recognizable output from the system
SUPERIOR GROUP OF COLLEGES, SARGODHA
Validation-Test Criteria
• Designed to ensure that All functional requirements are
satisfied , All behavioral characteristics are achieved , All
performance requirements are attained
• Documentation is correct
• Usability and other requirements are met (e.g.,
transportability, compatibility, error recovery,
maintainability)
• After each validation test
– The function or performance characteristic conforms to
specification and is accepted
– A deviation from specification is uncovered and a
deficiency list is created
SUPERIOR GROUP OF COLLEGES, SARGODHA
Configuration Review
• The intent of this review is to ensure that all
elements of the software configuration
•have been properly developed,
•are cataloged, and
•have the necessary detail to encourage the
support activities.
SUPERIOR GROUP OF COLLEGES, SARGODHA
Alpha and Beta Testing
• Alpha testing conducted at the developer’s site by end users
– Software is used in a natural setting with developers
watching intently
– Testing is conducted in a controlled environment
• Beta testing conducted at end-user sites
– Developer is generally not present
– It serves as a live application of the software in an
environment that cannot be controlled by the developer
– The end-user records all problems that are encountered
and reports these to the developers at regular intervals
• After beta testing is complete, software engineers make
software modifications and prepare for release of the
software product to the entire customer base
SUPERIOR GROUP OF COLLEGES, SARGODHA
SYSTEM
TESTING
SUPERIOR GROUP OF COLLEGES, SARGODHA
SYSTEM TESTING
System testing is a series of different tests whose purpose is
to fully exercise the computer based system
• Recovery testing
– Tests for recovery from system faults
– Forces the software to fail in a variety of ways and verifies
that recovery is properly performed
– Tests reinitialization, check pointing mechanisms, data
recovery, and restart for correctness
SUPERIOR GROUP OF COLLEGES, SARGODHA
Security Testing
– Verifies that protection mechanisms built into a
system will, in fact, protect it from improper access.
• Stress testing
– Executes a system in a manner that demands
resources in abnormal quantity, frequency, or
volume
SUPERIOR GROUP OF COLLEGES, SARGODHA
Performance Testing
– Tests the run-time performance of software
within the context of an integrated system
– Often coupled with stress testing and
usually requires both hardware and software
instrumentation
– Can uncover situations that lead to
degradation and possible system failure
SUPERIOR GROUP OF COLLEGES, SARGODHA
Deployment Testing
– Also known as configuration testing
– It examines all installations procedures that
will be used by customers
SUPERIOR GROUP OF COLLEGES, SARGODHA
INTERNALAND
EXTERNAL VIEWS
OF TESTING
SUPERIOR GROUP OF COLLEGES, SARGODHA
INTERNALAND EXTERNAL
VIEWS OF TESTING
•The first test approach takes an external view
and is called black-box testing.
•The second requires an internal view and is
termed white-box testing.
SUPERIOR GROUP OF COLLEGES, SARGODHA
White box testing
• White box testing is also called as glass-box testing
• Using white-box testing methods can derive test
cases that
– guarantee that all independent paths within a
module have been exercised at least once
– exercise all logical decisions on their true and false
sides
– execute all loops at their boundaries and within
their operational bounds
– exercise internal data structures to ensure their
validity
SUPERIOR GROUP OF COLLEGES, SARGODHA
Basis path testing
• Basis path testing is a white-box testing
technique
• The basis path method enables the test-case
designer to derive a logical complexity measure
of a procedural design and use this measure as a
guide for defining a basis set of execution paths
• Flow Graph Notation:
– a simple notation for the representation of
control flow, called a flow graph
– It also know as program graph
SUPERIOR GROUP OF COLLEGES, SARGODHA
`
• Arrows called edges or links represent flow of
control
• Circles called flow graph nodes represent one or
more actions
• Areas bounded by edges and nodes called regions
• A predicate node is a node containing a condition
SUPERIOR GROUP OF COLLEGES, SARGODHA
• Independent program paths:
– An independent path is any path through the
program that introduces at least one new set of
processing statements or a new condition
– independent path must move along at least one edge
that has not been traversed(pass through) before the
path is defined
– An independent path is any path through the
program that introduces at least one new set of
processing statements or a new condition
– independent path must move along at least one edge
that has not been traversed before the path is defined
SUPERIOR GROUP OF COLLEGES, SARGODHA
– Example:
SUPERIOR GROUP OF COLLEGES, SARGODHA
• Deriving test cases
– Using the design or code as a foundation,
draw a corresponding flow graph.
– Determine the cyclomatic complexity of
the resultant flow graph.
– Determine a basis set of linearly
independent paths.
– Prepare test cases that will force execution
of each path in the basis set
SUPERIOR GROUP OF COLLEGES, SARGODHA
• Graph matrices
– A data structure, called a graph matrix, can
be quite useful for developing a software tool
that assists in basis path testing
– A graph matrix is a square matrix whose
size (i.e., number of rows and columns) is
equal to the number of nodes on the flow
graph
SUPERIOR GROUP OF COLLEGES, SARGODHA
Black box testing
• Black-box testing, also called behavioral testing
• Black-box testing attempts to find errors in the
following categories:
– incorrect or missing functions
– interface errors
– errors in data structures or external database
access
– behavior or performance errors
– initialization and termination errors.
SUPERIOR GROUP OF COLLEGES, SARGODHA
Graph-based testing methods
The first step in black-box testing is to understand the
objects that are modeled in software and the relationships
that connect these objects. Once this has been accomplished,
the next step is to define a series of tests that verify “all
objects have the expected relationship to one another”
[Bei95]. Stated in another way, software testing begins by
creating a graph of important objects and their relationships
and then planning a series of tests that will cover the graph
so that each object and relationship is exercised and errors
are uncovered.
SUPERIOR GROUP OF COLLEGES, SARGODHA
To accomplish these steps, you begin by creating a graph—
a collection of nodes that represent objects, links that
represent the relationships between objects, node weights
that describe the properties of a node (e.g., a specific data
value or state behavior), and link weights that describe some
characteristic of a link. Nodes are represented as circles
connected by links that take a number of different forms. A
directed link (represented by an arrow) indicates that a
relationship moves in only one direction. A bidirectional
link, also called a symmetric link, implies that the
relationship applies in both directions. Parallel links are
used when a number of different relationships are stablished
between graph nodes.
SUPERIOR GROUP OF COLLEGES, SARGODHA
These test cases are designed in an attempt to find
errors in any of the relationships. Beizer describes a
number of behavioral testing methods that can make
use of graphs:
Transaction flow modeling.
Finite state modeling
Data flow modeling.
Timing modeling.
SUPERIOR GROUP OF COLLEGES, SARGODHA
Equivalence Partitioning
• Equivalence partitioning is a black-box
testing method that divides the input domain
of a program into classes of data from which
test cases can be derived
• equivalence classes for an input condition.
Using concepts introduced in the preceding
section, if a set of objects can be linked by
relationships that are symmetric, transitive,
and reflexive, an equivalence class is present
SUPERIOR GROUP OF COLLEGES, SARGODHA
• Equivalence classes may be defined according to the
following guidelines:
1. If an input condition specifies a range, one valid and
two invalid equivalence classes are defined.
2. If an input condition requires a specific value, one valid
and two invalid equivalence classes are defined.
3. If an input condition specifies a member of a set, one
valid and one invalid equivalence class are defined.
4. If an input condition is Boolean, one valid and one
invalid class are defined.
SUPERIOR GROUP OF COLLEGES, SARGODHA
Boundary Value Analysis
• A greater number of errors occurs at the
boundaries of the input domain rather than in
the “center.” It is for this reason that
boundary value analysis (BVA) has been
developed as a testing technique
• Boundary value analysis leads to a selection
of test cases that exercise bounding values
SUPERIOR GROUP OF COLLEGES, SARGODHA
• Guidelines for BVA are similar in many respects to those
provided for equivalence partitioning:
– If an input condition specifies a range bounded by values a
and b, test cases should be designed with values a and b and
just above and just below a and b.
– If an input condition specifies a number of values, test cases
should be developed that exercise the minimum and maximum
numbers.Values just above and below minimum and maximum
are also tested.
– Apply guidelines 1 and 2 to output conditions
– If internal program data structures have prescribed boundaries
(e.g., a table has a defined limit of 100 entries), be certain to
design a test case to exercise the data structure at its boundary.
SUPERIOR GROUP OF COLLEGES, SARGODHA
Orthogonal Array Testing
• Orthogonal array testing can be applied to problems
in which the input domain is relatively small but too
large to accommodate complete testing
• The orthogonal array testing method is particularly
useful in finding region faults
• a single parameter value makes the software fault.
These faults are called single mode faults
• If there exists a consistent problem when specific
levels of two parameters occur together, it is called a
double mode fault
SUPERIOR GROUP OF COLLEGES, SARGODHA

Validation testing in software engineering

  • 1.
    SUPERIOR GROUP OFCOLLEGES, SARGODHA
  • 2.
    SUPERIOR GROUP OFCOLLEGES, SARGODHA Software Engineering LECTURE PROF. MUHAMMAD BILAL QURESHI
  • 3.
    SUPERIOR GROUP OFCOLLEGES, SARGODHA Validation testing
  • 4.
    SUPERIOR GROUP OFCOLLEGES, SARGODHA Validation testing • Validation testing follows integration testing • The distinction between conventional and object-oriented software disappears and Focuses on user-visible actions and user- recognizable output from the system
  • 5.
    SUPERIOR GROUP OFCOLLEGES, SARGODHA Validation-Test Criteria • Designed to ensure that All functional requirements are satisfied , All behavioral characteristics are achieved , All performance requirements are attained • Documentation is correct • Usability and other requirements are met (e.g., transportability, compatibility, error recovery, maintainability) • After each validation test – The function or performance characteristic conforms to specification and is accepted – A deviation from specification is uncovered and a deficiency list is created
  • 6.
    SUPERIOR GROUP OFCOLLEGES, SARGODHA Configuration Review • The intent of this review is to ensure that all elements of the software configuration •have been properly developed, •are cataloged, and •have the necessary detail to encourage the support activities.
  • 7.
    SUPERIOR GROUP OFCOLLEGES, SARGODHA Alpha and Beta Testing • Alpha testing conducted at the developer’s site by end users – Software is used in a natural setting with developers watching intently – Testing is conducted in a controlled environment • Beta testing conducted at end-user sites – Developer is generally not present – It serves as a live application of the software in an environment that cannot be controlled by the developer – The end-user records all problems that are encountered and reports these to the developers at regular intervals • After beta testing is complete, software engineers make software modifications and prepare for release of the software product to the entire customer base
  • 8.
    SUPERIOR GROUP OFCOLLEGES, SARGODHA SYSTEM TESTING
  • 9.
    SUPERIOR GROUP OFCOLLEGES, SARGODHA SYSTEM TESTING System testing is a series of different tests whose purpose is to fully exercise the computer based system • Recovery testing – Tests for recovery from system faults – Forces the software to fail in a variety of ways and verifies that recovery is properly performed – Tests reinitialization, check pointing mechanisms, data recovery, and restart for correctness
  • 10.
    SUPERIOR GROUP OFCOLLEGES, SARGODHA Security Testing – Verifies that protection mechanisms built into a system will, in fact, protect it from improper access. • Stress testing – Executes a system in a manner that demands resources in abnormal quantity, frequency, or volume
  • 11.
    SUPERIOR GROUP OFCOLLEGES, SARGODHA Performance Testing – Tests the run-time performance of software within the context of an integrated system – Often coupled with stress testing and usually requires both hardware and software instrumentation – Can uncover situations that lead to degradation and possible system failure
  • 12.
    SUPERIOR GROUP OFCOLLEGES, SARGODHA Deployment Testing – Also known as configuration testing – It examines all installations procedures that will be used by customers
  • 13.
    SUPERIOR GROUP OFCOLLEGES, SARGODHA INTERNALAND EXTERNAL VIEWS OF TESTING
  • 14.
    SUPERIOR GROUP OFCOLLEGES, SARGODHA INTERNALAND EXTERNAL VIEWS OF TESTING •The first test approach takes an external view and is called black-box testing. •The second requires an internal view and is termed white-box testing.
  • 15.
    SUPERIOR GROUP OFCOLLEGES, SARGODHA White box testing • White box testing is also called as glass-box testing • Using white-box testing methods can derive test cases that – guarantee that all independent paths within a module have been exercised at least once – exercise all logical decisions on their true and false sides – execute all loops at their boundaries and within their operational bounds – exercise internal data structures to ensure their validity
  • 16.
    SUPERIOR GROUP OFCOLLEGES, SARGODHA Basis path testing • Basis path testing is a white-box testing technique • The basis path method enables the test-case designer to derive a logical complexity measure of a procedural design and use this measure as a guide for defining a basis set of execution paths • Flow Graph Notation: – a simple notation for the representation of control flow, called a flow graph – It also know as program graph
  • 17.
    SUPERIOR GROUP OFCOLLEGES, SARGODHA ` • Arrows called edges or links represent flow of control • Circles called flow graph nodes represent one or more actions • Areas bounded by edges and nodes called regions • A predicate node is a node containing a condition
  • 18.
    SUPERIOR GROUP OFCOLLEGES, SARGODHA • Independent program paths: – An independent path is any path through the program that introduces at least one new set of processing statements or a new condition – independent path must move along at least one edge that has not been traversed(pass through) before the path is defined – An independent path is any path through the program that introduces at least one new set of processing statements or a new condition – independent path must move along at least one edge that has not been traversed before the path is defined
  • 19.
    SUPERIOR GROUP OFCOLLEGES, SARGODHA – Example:
  • 20.
    SUPERIOR GROUP OFCOLLEGES, SARGODHA • Deriving test cases – Using the design or code as a foundation, draw a corresponding flow graph. – Determine the cyclomatic complexity of the resultant flow graph. – Determine a basis set of linearly independent paths. – Prepare test cases that will force execution of each path in the basis set
  • 21.
    SUPERIOR GROUP OFCOLLEGES, SARGODHA • Graph matrices – A data structure, called a graph matrix, can be quite useful for developing a software tool that assists in basis path testing – A graph matrix is a square matrix whose size (i.e., number of rows and columns) is equal to the number of nodes on the flow graph
  • 22.
    SUPERIOR GROUP OFCOLLEGES, SARGODHA Black box testing • Black-box testing, also called behavioral testing • Black-box testing attempts to find errors in the following categories: – incorrect or missing functions – interface errors – errors in data structures or external database access – behavior or performance errors – initialization and termination errors.
  • 23.
    SUPERIOR GROUP OFCOLLEGES, SARGODHA Graph-based testing methods The first step in black-box testing is to understand the objects that are modeled in software and the relationships that connect these objects. Once this has been accomplished, the next step is to define a series of tests that verify “all objects have the expected relationship to one another” [Bei95]. Stated in another way, software testing begins by creating a graph of important objects and their relationships and then planning a series of tests that will cover the graph so that each object and relationship is exercised and errors are uncovered.
  • 24.
    SUPERIOR GROUP OFCOLLEGES, SARGODHA To accomplish these steps, you begin by creating a graph— a collection of nodes that represent objects, links that represent the relationships between objects, node weights that describe the properties of a node (e.g., a specific data value or state behavior), and link weights that describe some characteristic of a link. Nodes are represented as circles connected by links that take a number of different forms. A directed link (represented by an arrow) indicates that a relationship moves in only one direction. A bidirectional link, also called a symmetric link, implies that the relationship applies in both directions. Parallel links are used when a number of different relationships are stablished between graph nodes.
  • 25.
    SUPERIOR GROUP OFCOLLEGES, SARGODHA These test cases are designed in an attempt to find errors in any of the relationships. Beizer describes a number of behavioral testing methods that can make use of graphs: Transaction flow modeling. Finite state modeling Data flow modeling. Timing modeling.
  • 26.
    SUPERIOR GROUP OFCOLLEGES, SARGODHA Equivalence Partitioning • Equivalence partitioning is a black-box testing method that divides the input domain of a program into classes of data from which test cases can be derived • equivalence classes for an input condition. Using concepts introduced in the preceding section, if a set of objects can be linked by relationships that are symmetric, transitive, and reflexive, an equivalence class is present
  • 27.
    SUPERIOR GROUP OFCOLLEGES, SARGODHA • Equivalence classes may be defined according to the following guidelines: 1. If an input condition specifies a range, one valid and two invalid equivalence classes are defined. 2. If an input condition requires a specific value, one valid and two invalid equivalence classes are defined. 3. If an input condition specifies a member of a set, one valid and one invalid equivalence class are defined. 4. If an input condition is Boolean, one valid and one invalid class are defined.
  • 28.
    SUPERIOR GROUP OFCOLLEGES, SARGODHA Boundary Value Analysis • A greater number of errors occurs at the boundaries of the input domain rather than in the “center.” It is for this reason that boundary value analysis (BVA) has been developed as a testing technique • Boundary value analysis leads to a selection of test cases that exercise bounding values
  • 29.
    SUPERIOR GROUP OFCOLLEGES, SARGODHA • Guidelines for BVA are similar in many respects to those provided for equivalence partitioning: – If an input condition specifies a range bounded by values a and b, test cases should be designed with values a and b and just above and just below a and b. – If an input condition specifies a number of values, test cases should be developed that exercise the minimum and maximum numbers.Values just above and below minimum and maximum are also tested. – Apply guidelines 1 and 2 to output conditions – If internal program data structures have prescribed boundaries (e.g., a table has a defined limit of 100 entries), be certain to design a test case to exercise the data structure at its boundary.
  • 30.
    SUPERIOR GROUP OFCOLLEGES, SARGODHA Orthogonal Array Testing • Orthogonal array testing can be applied to problems in which the input domain is relatively small but too large to accommodate complete testing • The orthogonal array testing method is particularly useful in finding region faults • a single parameter value makes the software fault. These faults are called single mode faults • If there exists a consistent problem when specific levels of two parameters occur together, it is called a double mode fault
  • 31.
    SUPERIOR GROUP OFCOLLEGES, SARGODHA

Editor's Notes

  • #4 INTEGRATION TESTING:individual units are combined and tested as a group.
  • #6 Bolster: support or encourage, cataloged : make a systematic list
  • #17 Predicate: found or build,
  • #18 Traversed: pass through
  • #23 Devising: planning
  • #26 Preceding: previous, symmetric: similar, transitive: requires a direct object to complete the meaning, reflexive: compulsory
  • #27 Boolean: creating true/false statements
  • #29 boundary value analysis
  • #30 Orthogonal: at right angles