Unit 5
Unit 5
UNIT V
Graph Matrices and Application: Motivational overview, matrix of graph, relations,
powerof a matrix, node reduction algorithm, building tools. (Student should be given an
exposure to a tool like JMeter or Win-runner).
Tool Building
If you build test tools or want to know how they work, sooner or later you will be
implementing or investigating analysis routines based on these methods.
It is hard to build algorithms over visual graphs so the properties or graph matrices
are fundamental to tool building.
A simple weight
A simplest weight we can use is to note that there is or isn’t a connection. Let
“1” mean that there is a connection and “0” mean that there isn’t.
The arithmetic rules are:
1+1=1 1*1=1
1+0=1 1*0=0
0+0=0 0*0=0
A matrix defined like this is called connection matrix.
Connection matrix
The connection matrix is obtained by replacing each entry with 1 if there is a
link and 0 if there isn’t.
As usual we don’t write down 0 entries to reduce the clutter.
Connection Matrix-continued
Each row of a matrix denotes the out links of the node corresponding to that row.
Each column denotes the in links corresponding to that node.
A branch is a node with more than one nonzero entry in its row.
A junction is node with more than one nonzero entry in its column.
A self-loop is an entry along the diagonal.
Cyclomatic Complexity
The cyclomatic complexity obtained by subtracting 1 from the total number of entries
in each row and ignoring rows with no entries, we obtain the equivalent number of
decisions for each row. Adding these values and then adding 1 to the sum yields the
graph’s cyclomatic complexity.
Relations
A relation is a property that exists between two objects of interest.
For example,
“Node a is connected to node b” or aRb where “R” means “is connected to”.
“a>=b” or aRb where “R” means greater than or equal”.
A graph consists of set of abstract objects called nodes and a relation R between the
nodes.
If aRb, which is to say that a has the relation R to b, it is denoted by a link from a to b.
For some relations we can associate properties called as link weights.
Transitive Relations
A relation is transitive if aRb and bRc implies aRc.
Most relations used in testing are transitive.
Examples of transitive relations include: is connected to, is greater than or equal to, is
less than or equal to, is a relative of, is faster than, is slower than, takes more time
than, is a subset of, includes, shadows, is the boss of.
Examples of intransitive relations include: is acquainted with, is a friend of, is a
neighbor of, is lied to, has a du chain between.
Reflexive Relations
A relation R is reflexive if, for every a, aRa.
A reflexive relation is equivalent to a self-loop at every node.
Examples of reflexive relations include: equals, is acquainted with, is a relative of.
Examples of irreflexive relations include: not equals, is a friend of, is on top of, is
under.
Symmetric Relations
A relation R is symmetric if for every a and b, aRb implies bRa.
A symmetric relation mean that if there is a link from a to b then there is also a link
from b to a.
A graph whose relations are not symmetric are called directed graph.
A graph over a symmetric relation is called an undirected graph.
The matrix of an undirected graph is symmetric (aij=aji) for all i,j)
Antisymmetric Relations
A relation R is antisymmetric if for every a and b, if aRb and bRa, then a=b, or they
Quivalence Relations
An equivalence relation is a relation that satisfies the reflexive, transitive, and
symmetric properties.
Equality is the most familiar example of an equivalence relation.
If a set of objects satisfy an equivalence relation, we say that they form an
equivalence class over that relation.
The importance of equivalence classes and relations is that any member of the
equivalence class is, with respect to the relation, equivalent to any other member of
that class.
The idea behind partition testing strategies such as domain testing and path testing, is
that we canpartition the input space into equivalence classes.
Testing any member of the equivalence class is as effective as testing them all.
Partitioning Algorithm
Consider any graph over a transitive relation. The graph may have loops.
We would like to partition the graph by grouping nodes in such a way that every loop
is contained within one group or another.