S.A.M. is an automated mutation testing system designed to optimize and manage mutation-based software testing processes. Developed for research purposes, its core includes modules for mutation, configuration, and network communication, facilitating efficient test execution and analysis. The sys- tem is language-agnostic, provided mutation testing framework and static code metric tools are available. Initially built around the PIT mutation testing framework, S.A.M. integrates enhanced mutation selection models, probability-based optimizations, and distributed computing support. Its ad- vancements improve software test efficiency, making it suitable for research and practical applications. Future developments may further refine mutation testing methodologies and expand real-world implementations.
Configuration parameters can be specified within dedicated configuration files to ensure consistent deployment and execution.
The path to project dependencies targeted for mutation is defined in the metadata.ini file.
--classPath
Drive:\\HelloWorldExample\\p\\,Drive:\\HelloWorldExample\\p\\
--reportDir
Drive:\\reports\\
--targetClasses
com.uj.atm.common.Account,com.uj.atm.common.Atm,com.uj.atm.common.CreditCard,com.uj.atm.common.DummySample
--targetTests
com.uj.atm.Test.*
--sourceDirs
Drive:\\HelloWorldExample\\
run mutation -i
--classPath
D:\\<dir>\\PitPlayground\\IOgr602-master\\target\\test-classes\\,D:\\<dir>\\PitPlayground\\IOgr602-master\\target\\classes\\
--reportDir
D:\\trash
--targetclasses
matrixlibrary.*
--targetTests
matrixlibrary.*
--sourceDirs
D:\\<dir>\\PitPlayground\\IOgr602-master\\
Environment variables relevant to the mutation process are configured in the mainconfig.cfg file.
<HereConfigStarts>
PIT-JAR-DIR;D:\\<dir>\\pitcmd\\PIT-1.1.11-SNAPSHOT.jar
PIT-CMD-JAR-DIR;D:\\<dir>\\pitcmd\\PIT-command-line-1.1.11-SNAPSHOT.jar
HAMCREST-DIR;C:\\JUnit\\hamcrest-core-1.3.jar
JUnit-DIR;C:\\JUnit\\JUnit-4.12.jar
PROJECT-class-DIR;D:\\<dir>\\PitPlayground\\IOgr602-master\\target\\test-classes\\
PROJECT-TEST-class-DIR;D:\\Doktorat\\PitPlayground\\IOgr602-master\\target\\classes\\
<HeareConfigStarts>
PIT_JAR_DIR;G:\\repos\\GitHub\\S.A.M-Mutation-Core\\Resources\\pitest-1.1.11-SNAPSHOT.jar
PIT_CMD_JAR_DIR;G:\\repos\\GitHub\\S.A.M-Mutation-Core\\Resources\\pitest-command-line-1.1.11-SNAPSHOT.jar
HAMCREST_DIR;G:\\repos\\GitHub\\S.A.M-Mutation-Core\\Resources\\hamcrest-core-1.3.jar
JUNIT_DIR;G:\\repos\\GitHub\\S.A.M-Mutation-Core\\Resources\\junit-4.12.jar
SAM nodes require network configuration. SAM can be deployed as distributed software, where each node processes a designated subset of mutated data.
Setting up worker 1.
start
Set server working port Port:
8081
Server waiting for request on port:
8081
Setting up worker 2.
> start
Set server working port Port:
> 8082
Server waiting for request on port:
> 8082
Setting up a master node.
> connect
Server address:
> localhost
Server Port:
> 8081
FROM SERVER: You are connected to SAM-SYSTEM Node
> connect
Server address:
> localhost
Server Port:
> 8082
FROM SERVER: You are connected to SAM-SYSTEM Node