7

Google built a testing system that can infer which tests need to be run after a change. In their own words:

... we built a continuous integration system that uses dependency analysis to determine all the tests a change transitively affects and then runs only those tests for every change.

...

enter image description here

Inspired by that, I have created a tool for Python that also uses dependency analysis to detect which tests need to be run. The difference is that it is not tied to a CI system. It is meant to be run locally and looks for file changes since the last time the tests passed, instead of looking at commits on the version control system.

Visual Studio 2010 has a featured called "Test impact analysis" that "inform the developer of what tests they should run to verify the code changes they are making".

My question is: Is there a name for this approach? I believe I read somewhere that this is called "Incremental Testing", but I cannot find the reference anymore.

Glorfindel
  • 3,137
  • 6
  • 25
  • 33
jbochi
  • 374
  • 2
  • 8

3 Answers3

1

I'd call it regression testing. Or perhaps automated regression testing.

From the link:

Regression testing can be used to test a system efficiently by systematically 
selecting the appropriate minimum set of tests needed to adequately cover a 
particular change.
Peter K.
  • 3,828
  • 1
  • 23
  • 34
0

Incremental testing is something else (testing after every increment of code). There are also tools for Java that do this - Infinitest and JUnit Max. I read some people calling this approach "continuous testing".

-1

I'm not sure if there's a canonical name but where I work we call this "automatic test selection."

Ron Pihlgren
  • 109
  • 3