SlideShare a Scribd company logo
1 of 20
Download to read offline
Java Unit Testing Tool Competition -
8th Round
Xavier Devroey <x.d.m.devroey@tudelft.nl>
Sebastiano Panichella <sebastiano.panichella@zhaw.ch>
Alessio Gambi <alessio.gambi@uni-passau.de>
History
Year Venue
Coverage
tool
Mutation
Tool
#CUTs #Projects
#Participants
(+ baseline)
Statistical
Tests
Round 1 2013 ICST Cobertura Javalanche 77 5 2 ✗
Round 2 2014 FITTEST JaCoCo PITest 63 9 4 ✗
Round 3 2015 SBST JaCoCo PITest 63 9 8 ✗
Round 4 2016 SBST
DEFECT4J
(Real Faults)
68 5 4 ✗
Round 5 2017 SBST JaCoCo
PITest +
Our Env.
69 8 2 (+ 2) ✓
Round 6 2018 SBST JaCoCo
PITest +
Our Env.
59 7 2 (+ 2)
✓ + combined
analysis
Round 7 2019 SBST JaCoCo
PITest +
Our Env.
69 8 2 (+ 2) ✓ + combined
analysis
Round 8 2020 SBST JaCoCo
PITest +
Our Env.
69 8 1 (+ 1)
✓ + combined
analysis
+
+
Infrastructure
JUnit Tool Contest Infrastructure
runtool runtool runtool
Randoop …. Tooln
CUT
Time budget
@Test @Test @Test
Infrastructure
JUnit Tool Contest Infrastructure
runtool runtool runtool
Randoop …. Tooln
CUT
Time budget
@Test @Test
Filtering
Flaky
Tests
Infrastructure
JUnit Tool Contest Infrastructure
runtool runtool runtool
Randoop …. Tooln
CUT
Time budget
@Test @Test
Filtering
Flaky
Tests
Infrastructure
JUnit Tool Contest Infrastructure
runtool runtool runtool
Randoop …. Tooln
CUT
Time budget
@Test @Test
Filtering
Flaky
Tests
Metrics
Scoring Formula
T = Generated Test
B = Search Budget
C = Class under test
R = independent Run
Covi = statement coverage
Covb = branch coverage
Covm = Strong Mutation
getTime = generation time
penalty = percentage of flaky test
and non-compiling tests
covScore(T, B, C, R) = 1 × Covi + 2 × Covb + 4 × Covm
tScore(T, B, C, R) = covScore(T, B, C, R) × min
(
1,
2 × B
genTime)
Score(T, B, C, R) = tScore(T, B, C, R) + penalty(T, B, C, R)
https://github.com/JUnitContest/junitcontest
Benchmark Projects
• Selection criteria
• GitHub repositories
• Project builds using Maven or Gradle
• Contains JUnit 4 test suite
Benchmark Projects
• Selection criteria
• GitHub repositories
• Project builds using Maven or Gradle
• Contains JUnit 4 test suite
• 4 projects selected
Fescar/Seata
https://github.com/google/guava https://github.com/seata/seata
https://github.com/apache/pdfboxhttps://github.com/INRIA/spoon/
Classes Under Test Selection
Classes
1,094

Classes
CC >= 5
Classes Under Test Selection
Classes
1,094

Classes
CC >= 5 382

Classes
Randoop

10 seconds
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●●●
●
●
●
●
●●
●
●
●
● ●●
●
●●
●
●
●●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●●
●
●●
●
●
●
●●
●
●
●
●
●
● ●● ●●●
●
●
●
●
●
●
●
●
●
●● ●
●
●
●
●● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
● ●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
● ●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●● ●
●
●● ●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●● ●
●
●
●
●
●
●
●
●
● ●
●
●
●
● ●●
●
●
●●
●
● ●
●
●●
●
●
● ●
●
●
●
●
●●
●
●
●
●
●
●
● ●●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●●●●●
●
●
●
●
●
●● ●
●
●
●
●● ●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●●
●●
●●
●
●
●
●●
●
●●
●
●
●
●
●
●
● ●●●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●●
●
●
●●●
●
●
●●
●
●
●
●●
●
●
●●
●
●
●●●
●
●
●
●
Candidate Sampled
0 25 50 75 100 0 25 50 75 100
0
25
50
75
100
Line coverage
Mutationscore
0
25
50
75
100
Branch
Classes Under Test Selection
Classes
1,094
Classes
CC >= 5 382
Classes
Randoop
10 seconds
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●●●
●
●
●
●
●●
●
●
●
● ●●
●
●●
●
●
●●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●●
●
●●
●
●
●
●●
●
●
●
●
●
● ●● ●●●
●
●
●
●
●
●
●
●
●
●● ●
●
●
●
●● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
● ●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
● ●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●● ●
●
●● ●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●● ●
●
●
●
●
●
●
●
●
● ●
●
●
●
● ●●
●
●
●●
●
● ●
●
●●
●
●
● ●
●
●
●
●
●●
●
●
●
●
●
●
● ●●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●●●●●
●
●
●
●
●
●● ●
●
●
●
●● ●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●●
●●
●●
●
●
●
●●
●
●●
●
●
●
●
●
●
● ●●●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●●
●
●
●●●
●
●
●●
●
●
●
●●
●
●
●●
●
●
●●●
●
●
●
●
Candidate Sampled
0 25 50 75 100 0 25 50 75 100
0
25
50
75
100
Line coverage
Mutationscore
0
25
50
75
100
Branch
70
CUTs
Random
Fescar 20
Guava 20
PdfBox 20
Spoon 10
Total 70
Contest Methodology
Search budgets
1 min. 3 min.
Classes under test
70 classes
Repetitions
10 repetitions
Execution environment Statistical analysis
Friedman’s test
Post-hoc Conover
The Tools
Baseline Competitor
Results
Line coverage Branch coverage Covered mutants Mutation score
R.1 E.1 R.3 E.3 R.1 E.1 R.3 E.3 R.1 E.1 R.3 E.3 R.1 E.1 R.3 E.3
0
25
50
75
100
R.1: Randoop, 1 min. - E.1: EvoSuite, 1 min. - R.3: Randoop, 3 min. - E.3: EvoSuite, 3 min.
Final Ranking
●
●
●●●●●●●●●●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
FESCAR GUAVA PDFBOX SPOON (all)
R.1 E.1 R.3 E.3 R.1 E.1 R.3 E.3 R.1 E.1 R.3 E.3 R.1 E.1 R.3 E.3 R.1 E.1 R.3 E.3
0
2
4
6
Scores per project
Score: 406.14
1
Lessons Learnt
• Results are consistent with other independent evaluations
• Shows that the bugs discovered in the infrastructure could be fixed
• The two-steps selection procedure for the classes under test is useful
• Discover configuration issues early
• Still largely a manual process
• Docker simplifies the evaluation procedure
What’s Next?
• Contest Infrastructure
• https://github.com/JUnitContest/junitcontest
• Improve usability
• Facilitate setup of an evaluation
• Facilitate evaluation in other contexts
• Update the user documentation
• Storage and versioning of the results (and participating tools?)
• For the next edition
• More tools
• More CUTs
Java Unit Testing Tool Competition -
9th Round
Chair: Sebastiano Panichella Co-chair(s): Alessio Gambi, You?

More Related Content

Similar to Unit Testing Tool Competition-Eighth Round

Optimal Nudging. Presentation UD.
Optimal Nudging. Presentation UD.Optimal Nudging. Presentation UD.
Optimal Nudging. Presentation UD.
r-uribe
 
アイ・トレーニング10点)
アイ・トレーニング10点)アイ・トレーニング10点)
アイ・トレーニング10点)
kenji sakuma
 
Pocket dot grid pages
Pocket dot grid pagesPocket dot grid pages
Pocket dot grid pages
HIKOO
 

Similar to Unit Testing Tool Competition-Eighth Round (20)

Consumer Preferences in Real Estate Markets
Consumer Preferences in Real Estate MarketsConsumer Preferences in Real Estate Markets
Consumer Preferences in Real Estate Markets
 
機械学習~データを予測に変える技術~で化学に挑む! (サイエンスアゴラ2021)
機械学習~データを予測に変える技術~で化学に挑む! (サイエンスアゴラ2021)機械学習~データを予測に変える技術~で化学に挑む! (サイエンスアゴラ2021)
機械学習~データを予測に変える技術~で化学に挑む! (サイエンスアゴラ2021)
 
Spray Democamp Dresden 2011-11-08
Spray Democamp Dresden 2011-11-08Spray Democamp Dresden 2011-11-08
Spray Democamp Dresden 2011-11-08
 
Fruit breedomics workshop wp6 application of high throughput micheletti
Fruit breedomics workshop wp6 application of high throughput michelettiFruit breedomics workshop wp6 application of high throughput micheletti
Fruit breedomics workshop wp6 application of high throughput micheletti
 
Entwicklung in Spielen als Innovationstreiber für Usability
Entwicklung in Spielen als Innovationstreiber für UsabilityEntwicklung in Spielen als Innovationstreiber für Usability
Entwicklung in Spielen als Innovationstreiber für Usability
 
Entwicklungen in Spielen als Innovationstreiber für Usability
Entwicklungen in Spielen als Innovationstreiber für UsabilityEntwicklungen in Spielen als Innovationstreiber für Usability
Entwicklungen in Spielen als Innovationstreiber für Usability
 
Gemeinsam kreativ für bessere Software - Vortragsreihe Dortmund
Gemeinsam kreativ für bessere Software - Vortragsreihe DortmundGemeinsam kreativ für bessere Software - Vortragsreihe Dortmund
Gemeinsam kreativ für bessere Software - Vortragsreihe Dortmund
 
Optimal Nudging. Presentation UD.
Optimal Nudging. Presentation UD.Optimal Nudging. Presentation UD.
Optimal Nudging. Presentation UD.
 
アイ・トレーニング10点)
アイ・トレーニング10点)アイ・トレーニング10点)
アイ・トレーニング10点)
 
Barley environmental association - Plant & Animal Genome 2018
Barley environmental association - Plant & Animal Genome 2018Barley environmental association - Plant & Animal Genome 2018
Barley environmental association - Plant & Animal Genome 2018
 
Zukunftsfähige Softwarearchitekturen
Zukunftsfähige SoftwarearchitekturenZukunftsfähige Softwarearchitekturen
Zukunftsfähige Softwarearchitekturen
 
Pocket dot grid pages
Pocket dot grid pagesPocket dot grid pages
Pocket dot grid pages
 
YAKINDU Traceability
YAKINDU TraceabilityYAKINDU Traceability
YAKINDU Traceability
 
Personas als Methode des Usability Engineerings
Personas als Methode des Usability EngineeringsPersonas als Methode des Usability Engineerings
Personas als Methode des Usability Engineerings
 
Usability und agile Softwareentwicklung
Usability und agile SoftwareentwicklungUsability und agile Softwareentwicklung
Usability und agile Softwareentwicklung
 
Will data scientists lead the discovery of cancer therapeutics?
Will data scientists lead the discovery of cancer therapeutics?Will data scientists lead the discovery of cancer therapeutics?
Will data scientists lead the discovery of cancer therapeutics?
 
Modernisierung von Altanwendungen
Modernisierung von AltanwendungenModernisierung von Altanwendungen
Modernisierung von Altanwendungen
 
01 intro
01 intro01 intro
01 intro
 
17 polishing
17 polishing17 polishing
17 polishing
 
Innovation & Issue process
Innovation & Issue processInnovation & Issue process
Innovation & Issue process
 

More from Sebastiano Panichella

Search-based Software Testing (SBST) '22
Search-based Software Testing (SBST) '22Search-based Software Testing (SBST) '22
Search-based Software Testing (SBST) '22
Sebastiano Panichella
 
NLBSE’22: Tool Competition
NLBSE’22: Tool CompetitionNLBSE’22: Tool Competition
NLBSE’22: Tool Competition
Sebastiano Panichella
 

More from Sebastiano Panichella (20)

The 3rd Intl. Workshop on NL-based Software Engineering
The 3rd Intl. Workshop on NL-based Software EngineeringThe 3rd Intl. Workshop on NL-based Software Engineering
The 3rd Intl. Workshop on NL-based Software Engineering
 
Diversity-guided Search Exploration for Self-driving Cars Test Generation thr...
Diversity-guided Search Exploration for Self-driving Cars Test Generation thr...Diversity-guided Search Exploration for Self-driving Cars Test Generation thr...
Diversity-guided Search Exploration for Self-driving Cars Test Generation thr...
 
SBFT Tool Competition 2024 -- Python Test Case Generation Track
SBFT Tool Competition 2024 -- Python Test Case Generation TrackSBFT Tool Competition 2024 -- Python Test Case Generation Track
SBFT Tool Competition 2024 -- Python Test Case Generation Track
 
SBFT Tool Competition 2024 - CPS-UAV Test Case Generation Track
SBFT Tool Competition 2024 - CPS-UAV Test Case Generation TrackSBFT Tool Competition 2024 - CPS-UAV Test Case Generation Track
SBFT Tool Competition 2024 - CPS-UAV Test Case Generation Track
 
Simulation-based Testing of Unmanned Aerial Vehicles with Aerialist
Simulation-based Testing of Unmanned Aerial Vehicles with AerialistSimulation-based Testing of Unmanned Aerial Vehicles with Aerialist
Simulation-based Testing of Unmanned Aerial Vehicles with Aerialist
 
Testing with Fewer Resources: Toward Adaptive Approaches for Cost-effective ...
Testing with Fewer Resources:  Toward Adaptive Approaches for Cost-effective ...Testing with Fewer Resources:  Toward Adaptive Approaches for Cost-effective ...
Testing with Fewer Resources: Toward Adaptive Approaches for Cost-effective ...
 
COSMOS: DevOps for Complex Cyber-physical Systems
COSMOS: DevOps for Complex Cyber-physical SystemsCOSMOS: DevOps for Complex Cyber-physical Systems
COSMOS: DevOps for Complex Cyber-physical Systems
 
Testing and Development Challenges for Complex Cyber-Physical Systems: Insigh...
Testing and Development Challenges for Complex Cyber-Physical Systems: Insigh...Testing and Development Challenges for Complex Cyber-Physical Systems: Insigh...
Testing and Development Challenges for Complex Cyber-Physical Systems: Insigh...
 
An Empirical Characterization of Software Bugs in Open-Source Cyber-Physical ...
An Empirical Characterization of Software Bugs in Open-Source Cyber-Physical ...An Empirical Characterization of Software Bugs in Open-Source Cyber-Physical ...
An Empirical Characterization of Software Bugs in Open-Source Cyber-Physical ...
 
Automated Identification and Qualitative Characterization of Safety Concerns ...
Automated Identification and Qualitative Characterization of Safety Concerns ...Automated Identification and Qualitative Characterization of Safety Concerns ...
Automated Identification and Qualitative Characterization of Safety Concerns ...
 
The 2nd Intl. Workshop on NL-based Software Engineering
The 2nd Intl. Workshop on NL-based Software EngineeringThe 2nd Intl. Workshop on NL-based Software Engineering
The 2nd Intl. Workshop on NL-based Software Engineering
 
The 16th Intl. Workshop on Search-Based and Fuzz Testing
The 16th Intl. Workshop on Search-Based and Fuzz TestingThe 16th Intl. Workshop on Search-Based and Fuzz Testing
The 16th Intl. Workshop on Search-Based and Fuzz Testing
 
Simulation-based Test Case Generation for Unmanned Aerial Vehicles in the Nei...
Simulation-based Test Case Generation for Unmanned Aerial Vehicles in the Nei...Simulation-based Test Case Generation for Unmanned Aerial Vehicles in the Nei...
Simulation-based Test Case Generation for Unmanned Aerial Vehicles in the Nei...
 
Exposed! A case study on the vulnerability-proneness of Google Play Apps
Exposed! A case study on the vulnerability-proneness of Google Play AppsExposed! A case study on the vulnerability-proneness of Google Play Apps
Exposed! A case study on the vulnerability-proneness of Google Play Apps
 
Search-based Software Testing (SBST) '22
Search-based Software Testing (SBST) '22Search-based Software Testing (SBST) '22
Search-based Software Testing (SBST) '22
 
NL-based Software Engineering (NLBSE) '22
NL-based Software Engineering (NLBSE) '22NL-based Software Engineering (NLBSE) '22
NL-based Software Engineering (NLBSE) '22
 
NLBSE’22: Tool Competition
NLBSE’22: Tool CompetitionNLBSE’22: Tool Competition
NLBSE’22: Tool Competition
 
"An NLP-based Tool for Software Artifacts Analysis" at @ICSME2021.
 "An NLP-based Tool for Software Artifacts Analysis" at @ICSME2021.  "An NLP-based Tool for Software Artifacts Analysis" at @ICSME2021.
"An NLP-based Tool for Software Artifacts Analysis" at @ICSME2021.
 
An Empirical Investigation of Relevant Changes and Automation Needs in Modern...
An Empirical Investigation of Relevant Changes and Automation Needs in Modern...An Empirical Investigation of Relevant Changes and Automation Needs in Modern...
An Empirical Investigation of Relevant Changes and Automation Needs in Modern...
 
Search-Based Software Testing Tool Competition 2021 by Sebastiano Panichella,...
Search-Based Software Testing Tool Competition 2021 by Sebastiano Panichella,...Search-Based Software Testing Tool Competition 2021 by Sebastiano Panichella,...
Search-Based Software Testing Tool Competition 2021 by Sebastiano Panichella,...
 

Recently uploaded

Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
amilabibi1
 
Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...
Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...
Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...
David Celestin
 
Unlocking Exploration: Self-Motivated Agents Thrive on Memory-Driven Curiosity
Unlocking Exploration: Self-Motivated Agents Thrive on Memory-Driven CuriosityUnlocking Exploration: Self-Motivated Agents Thrive on Memory-Driven Curiosity
Unlocking Exploration: Self-Motivated Agents Thrive on Memory-Driven Curiosity
Hung Le
 
Uncommon Grace The Autobiography of Isaac Folorunso
Uncommon Grace The Autobiography of Isaac FolorunsoUncommon Grace The Autobiography of Isaac Folorunso
Uncommon Grace The Autobiography of Isaac Folorunso
Kayode Fayemi
 
Jual obat aborsi Jakarta 085657271886 Cytote pil telat bulan penggugur kandun...
Jual obat aborsi Jakarta 085657271886 Cytote pil telat bulan penggugur kandun...Jual obat aborsi Jakarta 085657271886 Cytote pil telat bulan penggugur kandun...
Jual obat aborsi Jakarta 085657271886 Cytote pil telat bulan penggugur kandun...
ZurliaSoop
 

Recently uploaded (17)

in kuwait௹+918133066128....) @abortion pills for sale in Kuwait City
in kuwait௹+918133066128....) @abortion pills for sale in Kuwait Cityin kuwait௹+918133066128....) @abortion pills for sale in Kuwait City
in kuwait௹+918133066128....) @abortion pills for sale in Kuwait City
 
Dreaming Marissa Sánchez Music Video Treatment
Dreaming Marissa Sánchez Music Video TreatmentDreaming Marissa Sánchez Music Video Treatment
Dreaming Marissa Sánchez Music Video Treatment
 
AWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdf
AWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdfAWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdf
AWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdf
 
My Presentation "In Your Hands" by Halle Bailey
My Presentation "In Your Hands" by Halle BaileyMy Presentation "In Your Hands" by Halle Bailey
My Presentation "In Your Hands" by Halle Bailey
 
Dreaming Music Video Treatment _ Project & Portfolio III
Dreaming Music Video Treatment _ Project & Portfolio IIIDreaming Music Video Treatment _ Project & Portfolio III
Dreaming Music Video Treatment _ Project & Portfolio III
 
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
 
Report Writing Webinar Training
Report Writing Webinar TrainingReport Writing Webinar Training
Report Writing Webinar Training
 
lONG QUESTION ANSWER PAKISTAN STUDIES10.
lONG QUESTION ANSWER PAKISTAN STUDIES10.lONG QUESTION ANSWER PAKISTAN STUDIES10.
lONG QUESTION ANSWER PAKISTAN STUDIES10.
 
Digital collaboration with Microsoft 365 as extension of Drupal
Digital collaboration with Microsoft 365 as extension of DrupalDigital collaboration with Microsoft 365 as extension of Drupal
Digital collaboration with Microsoft 365 as extension of Drupal
 
Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...
Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...
Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...
 
Unlocking Exploration: Self-Motivated Agents Thrive on Memory-Driven Curiosity
Unlocking Exploration: Self-Motivated Agents Thrive on Memory-Driven CuriosityUnlocking Exploration: Self-Motivated Agents Thrive on Memory-Driven Curiosity
Unlocking Exploration: Self-Motivated Agents Thrive on Memory-Driven Curiosity
 
Introduction to Artificial intelligence.
Introduction to Artificial intelligence.Introduction to Artificial intelligence.
Introduction to Artificial intelligence.
 
ICT role in 21st century education and it's challenges.pdf
ICT role in 21st century education and it's challenges.pdfICT role in 21st century education and it's challenges.pdf
ICT role in 21st century education and it's challenges.pdf
 
Uncommon Grace The Autobiography of Isaac Folorunso
Uncommon Grace The Autobiography of Isaac FolorunsoUncommon Grace The Autobiography of Isaac Folorunso
Uncommon Grace The Autobiography of Isaac Folorunso
 
Zone Chairperson Role and Responsibilities New updated.pptx
Zone Chairperson Role and Responsibilities New updated.pptxZone Chairperson Role and Responsibilities New updated.pptx
Zone Chairperson Role and Responsibilities New updated.pptx
 
SOLID WASTE MANAGEMENT SYSTEM OF FENI PAURASHAVA, BANGLADESH.pdf
SOLID WASTE MANAGEMENT SYSTEM OF FENI PAURASHAVA, BANGLADESH.pdfSOLID WASTE MANAGEMENT SYSTEM OF FENI PAURASHAVA, BANGLADESH.pdf
SOLID WASTE MANAGEMENT SYSTEM OF FENI PAURASHAVA, BANGLADESH.pdf
 
Jual obat aborsi Jakarta 085657271886 Cytote pil telat bulan penggugur kandun...
Jual obat aborsi Jakarta 085657271886 Cytote pil telat bulan penggugur kandun...Jual obat aborsi Jakarta 085657271886 Cytote pil telat bulan penggugur kandun...
Jual obat aborsi Jakarta 085657271886 Cytote pil telat bulan penggugur kandun...
 

Unit Testing Tool Competition-Eighth Round

  • 1. Java Unit Testing Tool Competition - 8th Round Xavier Devroey <x.d.m.devroey@tudelft.nl> Sebastiano Panichella <sebastiano.panichella@zhaw.ch> Alessio Gambi <alessio.gambi@uni-passau.de>
  • 2. History Year Venue Coverage tool Mutation Tool #CUTs #Projects #Participants (+ baseline) Statistical Tests Round 1 2013 ICST Cobertura Javalanche 77 5 2 ✗ Round 2 2014 FITTEST JaCoCo PITest 63 9 4 ✗ Round 3 2015 SBST JaCoCo PITest 63 9 8 ✗ Round 4 2016 SBST DEFECT4J (Real Faults) 68 5 4 ✗ Round 5 2017 SBST JaCoCo PITest + Our Env. 69 8 2 (+ 2) ✓ Round 6 2018 SBST JaCoCo PITest + Our Env. 59 7 2 (+ 2) ✓ + combined analysis Round 7 2019 SBST JaCoCo PITest + Our Env. 69 8 2 (+ 2) ✓ + combined analysis Round 8 2020 SBST JaCoCo PITest + Our Env. 69 8 1 (+ 1) ✓ + combined analysis + +
  • 3. Infrastructure JUnit Tool Contest Infrastructure runtool runtool runtool Randoop …. Tooln CUT Time budget @Test @Test @Test
  • 4. Infrastructure JUnit Tool Contest Infrastructure runtool runtool runtool Randoop …. Tooln CUT Time budget @Test @Test Filtering Flaky Tests
  • 5. Infrastructure JUnit Tool Contest Infrastructure runtool runtool runtool Randoop …. Tooln CUT Time budget @Test @Test Filtering Flaky Tests
  • 6. Infrastructure JUnit Tool Contest Infrastructure runtool runtool runtool Randoop …. Tooln CUT Time budget @Test @Test Filtering Flaky Tests Metrics
  • 7. Scoring Formula T = Generated Test B = Search Budget C = Class under test R = independent Run Covi = statement coverage Covb = branch coverage Covm = Strong Mutation getTime = generation time penalty = percentage of flaky test and non-compiling tests covScore(T, B, C, R) = 1 × Covi + 2 × Covb + 4 × Covm tScore(T, B, C, R) = covScore(T, B, C, R) × min ( 1, 2 × B genTime) Score(T, B, C, R) = tScore(T, B, C, R) + penalty(T, B, C, R)
  • 9. Benchmark Projects • Selection criteria • GitHub repositories • Project builds using Maven or Gradle • Contains JUnit 4 test suite
  • 10. Benchmark Projects • Selection criteria • GitHub repositories • Project builds using Maven or Gradle • Contains JUnit 4 test suite • 4 projects selected Fescar/Seata https://github.com/google/guava https://github.com/seata/seata https://github.com/apache/pdfboxhttps://github.com/INRIA/spoon/
  • 11. Classes Under Test Selection Classes 1,094
 Classes CC >= 5
  • 12. Classes Under Test Selection Classes 1,094
 Classes CC >= 5 382
 Classes Randoop
 10 seconds ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ●● ● ●●● ● ● ● ● ●● ● ● ● ● ●● ● ●● ● ● ●● ● ● ● ● ● ● ●●●● ● ● ● ● ● ● ●● ● ●● ● ● ● ●● ● ● ● ● ● ● ●● ●●● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ●● ● ●● ● ● ● ● ● ● ● ● ● ● ●● ● ●● ● ●● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ●● ● ● ●● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ●● ● ● ● ● ●● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●●● ● ● ● ●●●●●● ● ● ● ● ● ●● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ●● ●● ● ● ● ●● ● ●● ● ● ● ● ● ● ● ●●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ●●● ● ● ●● ● ● ● ●● ● ● ●● ● ● ●●● ● ● ● ● Candidate Sampled 0 25 50 75 100 0 25 50 75 100 0 25 50 75 100 Line coverage Mutationscore 0 25 50 75 100 Branch
  • 13. Classes Under Test Selection Classes 1,094 Classes CC >= 5 382 Classes Randoop 10 seconds ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ●● ● ●●● ● ● ● ● ●● ● ● ● ● ●● ● ●● ● ● ●● ● ● ● ● ● ● ●●●● ● ● ● ● ● ● ●● ● ●● ● ● ● ●● ● ● ● ● ● ● ●● ●●● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ●● ● ●● ● ● ● ● ● ● ● ● ● ● ●● ● ●● ● ●● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ●● ● ● ●● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ●● ● ● ● ● ●● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●●● ● ● ● ●●●●●● ● ● ● ● ● ●● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ●● ●● ● ● ● ●● ● ●● ● ● ● ● ● ● ● ●●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ●●● ● ● ●● ● ● ● ●● ● ● ●● ● ● ●●● ● ● ● ● Candidate Sampled 0 25 50 75 100 0 25 50 75 100 0 25 50 75 100 Line coverage Mutationscore 0 25 50 75 100 Branch 70 CUTs Random Fescar 20 Guava 20 PdfBox 20 Spoon 10 Total 70
  • 14. Contest Methodology Search budgets 1 min. 3 min. Classes under test 70 classes Repetitions 10 repetitions Execution environment Statistical analysis Friedman’s test Post-hoc Conover
  • 16. Results Line coverage Branch coverage Covered mutants Mutation score R.1 E.1 R.3 E.3 R.1 E.1 R.3 E.3 R.1 E.1 R.3 E.3 R.1 E.1 R.3 E.3 0 25 50 75 100 R.1: Randoop, 1 min. - E.1: EvoSuite, 1 min. - R.3: Randoop, 3 min. - E.3: EvoSuite, 3 min.
  • 17. Final Ranking ● ● ●●●●●●●●●● ●●● ● ● ● ● ● ● ● ● ●● ● ● ● ● ●● ● ● FESCAR GUAVA PDFBOX SPOON (all) R.1 E.1 R.3 E.3 R.1 E.1 R.3 E.3 R.1 E.1 R.3 E.3 R.1 E.1 R.3 E.3 R.1 E.1 R.3 E.3 0 2 4 6 Scores per project Score: 406.14 1
  • 18. Lessons Learnt • Results are consistent with other independent evaluations • Shows that the bugs discovered in the infrastructure could be fixed • The two-steps selection procedure for the classes under test is useful • Discover configuration issues early • Still largely a manual process • Docker simplifies the evaluation procedure
  • 19. What’s Next? • Contest Infrastructure • https://github.com/JUnitContest/junitcontest • Improve usability • Facilitate setup of an evaluation • Facilitate evaluation in other contexts • Update the user documentation • Storage and versioning of the results (and participating tools?) • For the next edition • More tools • More CUTs
  • 20. Java Unit Testing Tool Competition - 9th Round Chair: Sebastiano Panichella Co-chair(s): Alessio Gambi, You?