A Review of Graphs for Testing Directed graphs

  • Slides: 11
Download presentation
A Review of Graphs for Testing

A Review of Graphs for Testing

Directed graphs • A directed graph G(V, E) • A finite V = {n

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

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

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

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

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 graphs 7

Program flowgraph: an example 8

Program flowgraph: an example 8

Program flowgraph: another example 9

Program flowgraph: another example 9

Cyclomatic complexity • The cyclomatic number of a graph G is given by •

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

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