STARTS is a static class-level regression test selection tool for Maven-based Java programs.
- Java 1.8
- Maven 3.2.5 and above
- Maven Surefire 2.14 and above
- Operating System: Linux or OSX
Change the pom.xml to add the configuration for the STARTS plugin:
<build>
<plugins>
<plugin>
<groupId>edu.illinois</groupId>
<artifactId>starts-maven-plugin</artifactId>
<version>1.3</version>
</plugin>
</plugins>
</build>
git clone https://github.com/TestingResearchIllinois/starts
cd starts
mvn install
- To see all the goals that STARTS provides, run
mvn starts:help
- To see the details for any of the goals, run
mvn starts:help -Ddetail=true -Dgoal=<goal>
; replace<goal>
with the goal of interest.
-
To see the types that changed since the last time STARTS was run:
mvn starts:diff
-
To see the types that may be impacted by changes since the last time STARTS was run:
mvn starts:impacted
-
To see the tests that are affected by the most recent changes:
mvn starts:select
-
To perform RTS using STARTS (i.e., select tests and run the selected tests):
mvn starts:starts
-
To remove all artifacts that STARTS stores between versions (i.e. in the
.starts
directories):mvn starts:clean
NOTE: By default, commands (1) - (3) will not update the
checksums of files in the latest version, while the command in (4)
will update the checksums of the files. Each command has a
update**Checksums
option that can be used to change the default
behavior. For example, to update the checksums while checking the
diff, run mvn starts:diff -DupdateDiffChecksums=true
.
Below is a list of research papers that describe some aspects of STARTS:
- STARTS: STAtic Regression Test Selection
Owolabi Legunsen, August Shi, Darko Marinov 32nd IEEE/ACM International Conference On Automated Software Engineering, Tool Demonstrations Track (ASE Demo 2017), pages 949-954, Urbana-Champaign, IL, October-November 2017
- An Extensive Study of Static Regression Test Selection in Modern Software Evolution
Owolabi Legunsen, Farah Hariri, August Shi, Yafeng Lu, Lingming Zhang, Darko Marinov 24th ACM SIGSOFT International Symposium on the Foundations of Software Engineering (FSE 2016), pages 583-594, Seattle, WA, November 2016