Possible values:
- Project: Maven, Gradle, Intellij
- JDK: 1.8, 11, 17
- Framework: JUnit 4, JUnit 5, TestNG
- Parametrization: On, Off
Suggestion:
Let's do independent validation of "JDK <-> Framework" and "JDK <-> Framework <-> Parametrization". Project type will equally distributed between testers.
JDK <-> Framework Pair:
All possible combinations of JDK and Framework are selected.
Project type is iterated independently.
Parametrization is OFF.
Scenario:
- Crete new project with specified project type, JDK.
- Remove default test dependency from Maven or Gradle configuration and refresh project structure.
- Copy paste
org.utbot.examples.exceptions.ExceptionExamples and org.utbot.examples.controlflow.Conditions from UTBot project into source code folder.
- Invoke test generation for
org.utbot.examples.exceptions.ExceptionExamples file with specific Framework - all test frameworks suggested to be installed.
- Generate tests - tests are generated without error with proper test Framework.
- Run tests - tests run without error.
- Invoke test generation again for
org.utbot.examples.controlflow.Conditions, all except installed framework suggested to be installed.
- Generate and run tests with the same framework - tests are generated and executed without errors.
| Project |
JDK |
Framework |
Status |
Comment |
| Gradle |
1.8 |
JUnit 5 |
✅ |
|
| Maven |
1.8 |
TestNG |
✅ |
7.5 added |
| Gradle |
11 |
JUnit 5 |
✅ |
|
| Maven |
11 |
TestNG |
✅ |
7.6 added |
| Maven |
17 |
JUnit 5 |
✅ |
|
| Gradle |
17 |
TestNG |
✅ |
7.6 added |
JDK <-> Framework <-> Parametrization
All possible combinations of Parametrization and Framework need to be tested. But actually all cases with Parametrization OFF were tested in previous section, so we select only case Parametrization is ON.
Additionally Parametrization is possible only with JUnit5 and TestNG frameworks, so we leave only with 6 test cases:
| JDK |
Framework |
Parametrization |
Status |
Comment |
| 1.8 |
JUnit 4 |
On |
➖ |
Not applicable |
| 1.8 |
JUnit 5 |
On |
✅ |
|
| 1.8 |
TestNG |
On |
➖ |
Not applicable |
| 11 |
JUnit 4 |
On |
➖ |
Not applicable |
| 11 |
JUnit 5 |
On |
✅ |
|
| 11 |
TestNG |
On |
✅ |
|
| 17 |
JUnit 4 |
On |
➖ |
Not applicable |
| 17 |
JUnit 5 |
On |
✅ |
|
| 17 |
TestNG |
On |
✅ |
|
| JDK |
Fuzzing/Symbolic |
Symbolic 100% |
Fuzzing 100% |
| 1.8 |
casts |
casts |
exceptions |
| 11 |
mock |
mock |
casts |
| 17 |
mock |
exceptions |
exceptions |
| Test Generation Timeout |
Fuzzing/Symbolic |
Symbolic 100% |
Fuzzing 100% |
| 60 |
strings |
structures |
lambda |
| 10 |
x |
x |
algorithms/CorrectBracketSequences |
| 1 |
x |
x |
x |
Tests used during verification:
Possible values:
Suggestion:
Let's do independent validation of "JDK <-> Framework" and "JDK <-> Framework <-> Parametrization". Project type will equally distributed between testers.
JDK <-> Framework Pair:
All possible combinations of JDK and Framework are selected.
Project type is iterated independently.
Parametrization is OFF.
Scenario:
org.utbot.examples.exceptions.ExceptionExamplesandorg.utbot.examples.controlflow.Conditionsfrom UTBot project into source code folder.org.utbot.examples.exceptions.ExceptionExamplesfile with specific Framework - all test frameworks suggested to be installed.org.utbot.examples.controlflow.Conditions, all except installed framework suggested to be installed.JDK <-> Framework <-> Parametrization
All possible combinations of Parametrization and Framework need to be tested. But actually all cases with Parametrization OFF were tested in previous section, so we select only case Parametrization is ON.
Additionally Parametrization is possible only with JUnit5 and TestNG frameworks, so we leave only with 6 test cases:
castscastsexceptionsmockmockcastsmockexceptionsexceptionsstringsstructureslambdaalgorithms/CorrectBracketSequencesTests used during verification: