For every function, corresponding data flow graph should
be constructed firstly. To complete a function, a path from a
data source node to a data terminal node in the data flow graph
should be executed. To test a function comprehensively, all the
paths from data source nodes to data terminal nodes in the data
flow graph should be executed.