Why not speed up testing using a function dependency graph?

It seems logical to me that if you have a dependency graph of the source code (a tree that displays the stack of calls of all functions in the code base), you can save a huge amount of time on performing functional and integration tests after each release.

In essence, you can tell testers exactly what functionality to test, since the rest of the functions remain unchanged from the point of view of the source code.

If, for example, you change the spelling error in one piece of code, there is no reason to run the entire test test script again “just in case” when you entered a critical error.

My question is: why are dependency trees not used in software development, and if you use them, how do you support them? What tools are available to generate these trees for C # .NET, C ++, and C source code?

+3
source share
4 answers

High-quality versions of Visual Studio 2010 (Premium and Ultimate), in conjunction with TFS, provide this kind of dependency analysis called “impact analysis”.

See “ Optimizing the testing process with analysis of test results ” and “ Identifying the impact of code changes on tests .

+3
source

. . , A B. A a(), :

shared_memory.x.inc_by(2);

Thread B b():

assert(shared_memory.x.value % 2 == 0);
...

(;)).

shared_memory.x.inc_by(3);

- . a(), b(), - .

- . , , - " " .

, - - - , - , - (C/++) .

0

In addition to the visual studio, there are many standalone source code dependency analyzers that can be used for this; The insight source is one such tool that provides a dependency graph and a visual call stack.

0
source

Source: https://habr.com/ru/post/1783161/


All Articles