# what is graph, software testing

**What is graph?**

A graph is a set of nodes and that set must not be empty. The graph contains the following important components.

**Start node:** A set of initial nodes and that set must not be empty.

**Final node:** A set of final nodes and that set must not be empty.

**Edges:** A set of edges. Edge is a link of one node with another node.

**Path :** A path is a sequence of nodes.

**Edge:** Each pair of nodes is an edge

**Length:** The number of edges represents the length of the graph. Note that only one single node is a path of length 0

**Subpath:** A smaller subset path of a big superset path is subpath.

**Reach:** A reach is a subgraph that can be reached from nodes.

__Example of Paths:__

Following are some of the paths in the above-mentioned diagram.

[ 0, 3, 7 ], [ 1, 4, 8, 5, 1 ], [ 2, 6, 9 ]

Similarly, there are also some more possible paths in figure 2.

__Example of Reach:__

Following are some of the reach in the above-mentioned Figure 2.

**Reach (0) = **{ 0, 3, 4, 7, 8, 5, 1, 9 }

This means that if we starts from node 0 then we can reach 3, we can reach,4 and similarly we can reach 7,8,5,1,9

**Reach([2,6]) = **{2, 6, 9}

This means that if we starts from node 0 and then after 0 if we read 6, then we can reach 9 only.