Analytical Techniques - Static Analysis - Call Graphs

9 important questions on Analytical Techniques - Static Analysis - Call Graphs

What are call graphs?

Call graphs are a static representation of communication complexity. They are directed graphs in which nodes represent program modules and edges represent communication among those modules.

Where are call graphs used?

Call graphs may be used in
  • unit testing where different functions or methods call each other
  • integration and system testing when separate modules call each other
  • system integration testing when separate systems call each other.

For which purpose can call graphs be used?

  • Designing tests that call a specific module or system
  • Establishing the number of locations within the software from where a module or system is called
  • Evaluating the structure of the code and of the system architecture
  • Providing suggestions for the order of integration (e.g., pairwise and neighborhood integration)
  • Higher grades + faster learning
  • Never study anything twice
  • 100% sure, 100% understanding
Discover Study Smart

Name two categories of integration testing

  • incremental (top-down, bottom-up, etc)
  • non-incremental (big bang).

Name three non incremental integration testing methods which uses call graphs.

  • Pairwise integration testing
  • Neighborhood integration testing
  • The theory of cyclomatic complexity (McCabe) as applied to a call graph for modules.

What's pairwise integration testing?

Targeting pairs of components that work together as seen in the call graph for integration testing.

What's the advantage of pairwise integration testing?

This method reduces the number of builds only by a small amount, it reduces the amount of test harness code needed

What's neighborhood integration testing?

Neighborhood integration tests all of the nodes that connect to a given node as the basis for the integration testing. All predecessor and successor nodes of a specific node in the call graph are the basis for the test.

For non incremental integration testing McCabe cyclomatic complexity method can be applied for call graphs. What should the call grap show?


The different ways that modules can call each other, including:
  • Unconditional call: the call of one module to another always happens
  • Conditional call: the call of one module to another sometimes happens
  • Mutually exclusive conditional call: a module will call one (and only one) of a number of different modules
  • Iterative call: one module calls another at least once but may call it multiple times
  • Iterative conditional call: one module can call another zero to many times.

The question on the page originate from the summary of the following study material:

  • A unique study and practice tool
  • Never study anything twice again
  • Get the grades you hope for
  • 100% sure, 100% understanding
Remember faster, study better. Scientifically proven.
Trustpilot Logo