A Review of Graphs for Testing Directed graphs
- Slides: 11
A Review of Graphs for Testing
Directed graphs • A directed graph G(V, E) • A finite V = {n 1, n 2, …, nm} of nodes • A finite set E = {e 1, e 2, …, ep} of edges • Each edge ek = {ni, nj} is an ordered pair (start and end nodes) n 1 e 1 n 2 e 3 n 4 • V = {n 1, n 2, n 3} • E = {e 1, e 2, e 3} = {(n 1, 2), (n 2, n 3), (n 2, n 4)} 2
Graph terminology • Indegree (ni): the number of distinct edges that have ni as a terminal node • Outdegree (ni): the number of distinct edges that have ni as starting node • Source node: a node with indegree={} • Sink node: a node with outdegree = {} • Transfer node: a node with indegree !={} and outdegree != {} 3
Graph terminology • Directed path: a sequence of edges such that for any adjacent pairs of ei, ej, the terminal node of ei is the start node of ej • Connectedness: for two odes ni, nj • 0 -connected: iff there is no path between ni, nj • 2 -connected: iff there is a path between ni, nj • 3 -connected: iff there is a path from ni to nj and a path from nj to ni • Strongly connected graph: all pairs of nodes are 3 connected 4
Program graphs • Given a program in an imperative language, its graph is a directed graph in which noes are either entire statements or fragments of a statement and edges represent flow of control 5
Program graphs • Given a program in an imperative language, its graph is a directed graph in which noes are either entire statements or fragments of a statement and edges represent flow of control 6
Program graphs 7
Program flowgraph: an example 8
Program flowgraph: another example 9
Cyclomatic complexity • The cyclomatic number of a graph G is given by • V(G) = e – n + 2, where • e is the number of edges in G • n is the number of nodes in G • Cyclomatic complexity pertains to both ordinary and directed graphs • V(G) is sometimes called Mc. Cabe Complexity after Thomas Mc. Cabe 10
Cyclomatic complexity • Used for testing (identifying the number of independent paths) and design (reduce complexity) • It gives the number of independent paths from in a program (also called the basis path) • It provides the degree of complexity 11
- Syntax directed definition
- Transition bugs in software testing
- Directed automated random testing
- Comparing distance/time graphs to speed/time graphs
- Graphs that enlighten and graphs that deceive
- 5-3 polynomial functions
- State graphs in software testing
- What is domain test
- Logic based testing
- Data flow testing strategies in software testing
- Positive and negative testing
- Cs3250