SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Downloaden Sie, um offline zu lesen
SCOTCH
 Improving Test-to-Code Traceability
using Slicing and Conceptual Coupling
  Abdallah Qusef*, Gabriele Bavota*, Rocco Oliveto!
          Andrea De Lucia*, David Binkley"

   * Software Engineering Lab, University of Salerno, Italy
       ! STAT Department, University of Molise, Italy

            " Loyola University Maryland, USA
Context
     Test-to-code traceability recovery




          SCOTCH
          Slicing and COupling based Test to Code trace Hunter




                     Empirical Evaluation
SCOTCH vs Naming Convention vs LCBA vs DFA
context




     Test-to-code traceability recovery
TestSuiteClass




go al
        Class_1
        TES
            TED
        CLA                  Class_2
            SS
                             TES
                                 TED
                             CLA
                                 SS
Test-to-code traceability


                  Software Comprehension

                       Regression Testing

                       Impact Analysis

                        Refactoring
retrieve links between classes




       challenges
test-to-code traceability
                                        Class_1



                      ll   s                         Class_2
                   ca
TestSuite
                                calls



                               calls
                                                  Class_3
        ca
             lls
                     Class_4




                       challenges
test-to-code traceability
                                        Class_1
                                        hel
                                             per
                                         cla
                                            ss

                      ll   s                          Class_2
                   ca
                                                      TES
TestSuite                                                 TED
                                                      CLA
                                calls                     SS



                               calls
                                                   Class_3
        ca
             lls                                    moc
                     Class_4                       obj k
                                                      ect
                     hel
                         per
                     cla
                         ss




                       challenges
state of the art
state of the art




Van Rompaey et al.     Qusef et al.
   CSMR 2009           ICSM 2010
state of the art


                     Last Call Before Assert




                      Naming Convention



Van Rompaey et al.         Qusef et al.
   CSMR 2009               ICSM 2010
state of the art



Data Flow Analysis




 Van Rompaey et al.     Qusef et al.
    CSMR 2009           ICSM 2010
SCOTCH
Slicing and
COupling based
Test to
Code trace
Hunter
TestSuite
                                             assertTrue(--)
               Identifying the last assert
               statement for each method     slicing critirion




                                             Dynamic Slicing


Class in STS

                 Extracting the classes            slice



                                             Class in CTS

                  Conceptual Coupling
example
public class RemoveElementsTest extends TestCase {

      public void testRemoveElement () {
!   !    ConnectedGraphFactory factory = ConnectedGraphFactory.newFactory();
!   !    ConnectedGraph graph = factory.newGraph();
!   !    NodeElement node1 = graph.getStartNode();
!   !    NodeElement node2 = graph.newNode();

!   !       ... ... ...
!
!   !       EdgeElement edge1, edge2, edge3, edge4, edge5;
!   !       edge1 = graph.newEdge(node1, node2);
!   !       edge2 = graph.newEdge(node2, node3);

! !         ... ... ...

!   !       try {
!   !       ! removedElement = graph.removeElement(edge2);
!   !       ! fail("DisconnectedGraphException expected");
!   !       } catch (DisconnectedGraphException e) {
!   !       ! assertTrue(true);
!   !       }
        }
!
}
example
public class RemoveElementsTest extends TestCase {

      public void testRemoveElement () {
!   !    ConnectedGraphFactory factory = ConnectedGraphFactory.newFactory();
!   !    ConnectedGraph graph = factory.newGraph();
!   !    NodeElement node1 = graph.getStartNode();
!   !    NodeElement node2 = graph.newNode();

!   !       ... ... ...
!
!   !       EdgeElement edge1, edge2, edge3, edge4, edge5;
!   !       edge1 = graph.newEdge(node1, node2);
!   !       edge2 = graph.newEdge(node2, node3);

! !         ... ... ...

!   !       try {
!   !       ! removedElement = graph.removeElement(edge2);
!   !       ! fail("DisconnectedGraphException expected");
!   !       } catch (DisconnectedGraphException e) {
               assertTrue(true);
! !         }
        }
!
}
example
STS - Dynamic Slicing Output

 Disconnected                                                            ConnectedGraph
                     EdgeElement          NodeElement   ConnectedGraph
GraphException                                                              Factory




     ConnectedGraph            0.60
  ConnectedGraphFactory        0.56               t =       * max(CCBC)
       EdgeElement                 0.49
       NodeElement             0.48                             = 0.95
DisconnectedGraphException         0.10
example
STS - Dynamic Slicing Output

 Disconnected                                                            ConnectedGraph
                     EdgeElement          NodeElement   ConnectedGraph
GraphException                                                              Factory




     ConnectedGraph            0.60          t = 0.95 * 0.60 = 0.57
  ConnectedGraphFactory        0.56
       EdgeElement                 0.49
       NodeElement             0.48
DisconnectedGraphException         0.10
example
STS - Dynamic Slicing Output

 Disconnected                                                             ConnectedGraph
                     EdgeElement          NodeElement    ConnectedGraph
GraphException                                                               Factory




     ConnectedGraph            0.60                     CTS - Filtered by CCBC

  ConnectedGraphFactory        0.56
                                                                ConnectedGraph
       EdgeElement                 0.49
       NodeElement             0.48
DisconnectedGraphException         0.10
empirical evaluation
results
                           NC
            85



            72



            59
F-Measure




            46



            33



         20
        AgilePlanner     ArgoUML   eXVantage
NC applicability
              #CUTs=1        #CUTs=1 and NC applied


100




 75




 50




 25




  0
      AgilePlanner      ArgoUML                  eXVantage
results
                       NC               LCBA
            85



            72



            59
F-Measure




            46



            33



         20
        AgilePlanner          ArgoUML          eXVantage
results
                       NC      LCBA     DFA
            85



            72



            59
F-Measure




            46



            33



         20
        AgilePlanner          ArgoUML         eXVantage
results
                       NC   LCBA             DFA   SCOTCH
            85



            72



            59
F-Measure




            46



            33



         20
        AgilePlanner               ArgoUML                  eXVantage
future work
conclusion
...conclusion...




SCOTCH: how to overcome the limitations
   of the state of the art techniques
...conclusion...




SCOTCH outperforms the state of the art techniques
...future work...

replicate the experiment on different datasets




                   investigate about other heuristics
Thank you!


              Questions and/or
                 comments

Gabriele Bavota
PHD student
se@sa Lab, Univeristy of Salerno
gbavota@unisa.it

Weitere ähnliche Inhalte

Was ist angesagt?

PVS-Studio in 2021 - Error Examples
PVS-Studio in 2021 - Error ExamplesPVS-Studio in 2021 - Error Examples
PVS-Studio in 2021 - Error ExamplesAndrey Karpov
 
SystemVerilog OOP Ovm Features Summary
SystemVerilog OOP Ovm Features SummarySystemVerilog OOP Ovm Features Summary
SystemVerilog OOP Ovm Features SummaryAmal Khailtash
 
How Data Flow analysis works in a static code analyzer
How Data Flow analysis works in a static code analyzerHow Data Flow analysis works in a static code analyzer
How Data Flow analysis works in a static code analyzerAndrey Karpov
 
Java fundamentals
Java fundamentalsJava fundamentals
Java fundamentalsHCMUTE
 
Session 6 sv_randomization
Session 6 sv_randomizationSession 6 sv_randomization
Session 6 sv_randomizationNirav Desai
 
Sentence-to-Code Traceability Recovery with Domain Ontologies
Sentence-to-Code Traceability Recovery with Domain OntologiesSentence-to-Code Traceability Recovery with Domain Ontologies
Sentence-to-Code Traceability Recovery with Domain OntologiesShinpei Hayashi
 
Tool wear monitoring and alarm system based on pattern recognition with logic...
Tool wear monitoring and alarm system based on pattern recognition with logic...Tool wear monitoring and alarm system based on pattern recognition with logic...
Tool wear monitoring and alarm system based on pattern recognition with logic...Nehem Tudu
 
Test and refactoring
Test and refactoringTest and refactoring
Test and refactoringKenneth Ceyer
 
PHP Forum Paris 2012: Magic behind the numbers. Software metrics in practice
PHP Forum Paris 2012: Magic behind the numbers. Software metrics in practicePHP Forum Paris 2012: Magic behind the numbers. Software metrics in practice
PHP Forum Paris 2012: Magic behind the numbers. Software metrics in practiceSebastian Marek
 
Www javatpoint-com-corejava-interview-questions-2
Www javatpoint-com-corejava-interview-questions-2Www javatpoint-com-corejava-interview-questions-2
Www javatpoint-com-corejava-interview-questions-2ssuserd2d58b
 
System verilog coverage
System verilog coverageSystem verilog coverage
System verilog coveragePushpa Yakkala
 
Dead locks9cm604.39
Dead locks9cm604.39Dead locks9cm604.39
Dead locks9cm604.39myrajendra
 
Unit Testing Standards - Recommended Best Practices
Unit Testing Standards - Recommended Best PracticesUnit Testing Standards - Recommended Best Practices
Unit Testing Standards - Recommended Best PracticesVitaliy Kulikov
 
Detecting Occurrences of Refactoring with Heuristic Search
Detecting Occurrences of Refactoring with Heuristic SearchDetecting Occurrences of Refactoring with Heuristic Search
Detecting Occurrences of Refactoring with Heuristic SearchShinpei Hayashi
 

Was ist angesagt? (20)

PVS-Studio in 2021 - Error Examples
PVS-Studio in 2021 - Error ExamplesPVS-Studio in 2021 - Error Examples
PVS-Studio in 2021 - Error Examples
 
SystemVerilog OOP Ovm Features Summary
SystemVerilog OOP Ovm Features SummarySystemVerilog OOP Ovm Features Summary
SystemVerilog OOP Ovm Features Summary
 
How Data Flow analysis works in a static code analyzer
How Data Flow analysis works in a static code analyzerHow Data Flow analysis works in a static code analyzer
How Data Flow analysis works in a static code analyzer
 
Java fundamentals
Java fundamentalsJava fundamentals
Java fundamentals
 
Session 6 sv_randomization
Session 6 sv_randomizationSession 6 sv_randomization
Session 6 sv_randomization
 
Extending and scripting PDT
Extending and scripting PDTExtending and scripting PDT
Extending and scripting PDT
 
Sentence-to-Code Traceability Recovery with Domain Ontologies
Sentence-to-Code Traceability Recovery with Domain OntologiesSentence-to-Code Traceability Recovery with Domain Ontologies
Sentence-to-Code Traceability Recovery with Domain Ontologies
 
ICPC08b.ppt
ICPC08b.pptICPC08b.ppt
ICPC08b.ppt
 
Tool wear monitoring and alarm system based on pattern recognition with logic...
Tool wear monitoring and alarm system based on pattern recognition with logic...Tool wear monitoring and alarm system based on pattern recognition with logic...
Tool wear monitoring and alarm system based on pattern recognition with logic...
 
Test and refactoring
Test and refactoringTest and refactoring
Test and refactoring
 
PHP Forum Paris 2012: Magic behind the numbers. Software metrics in practice
PHP Forum Paris 2012: Magic behind the numbers. Software metrics in practicePHP Forum Paris 2012: Magic behind the numbers. Software metrics in practice
PHP Forum Paris 2012: Magic behind the numbers. Software metrics in practice
 
Www javatpoint-com-corejava-interview-questions-2
Www javatpoint-com-corejava-interview-questions-2Www javatpoint-com-corejava-interview-questions-2
Www javatpoint-com-corejava-interview-questions-2
 
TDD Hands-on
TDD Hands-onTDD Hands-on
TDD Hands-on
 
System verilog coverage
System verilog coverageSystem verilog coverage
System verilog coverage
 
Checking VirtualDub
Checking VirtualDubChecking VirtualDub
Checking VirtualDub
 
Dead locks9cm604.39
Dead locks9cm604.39Dead locks9cm604.39
Dead locks9cm604.39
 
Unit Testing Standards - Recommended Best Practices
Unit Testing Standards - Recommended Best PracticesUnit Testing Standards - Recommended Best Practices
Unit Testing Standards - Recommended Best Practices
 
Detecting Occurrences of Refactoring with Heuristic Search
Detecting Occurrences of Refactoring with Heuristic SearchDetecting Occurrences of Refactoring with Heuristic Search
Detecting Occurrences of Refactoring with Heuristic Search
 
Comp102 lec 5.1
Comp102   lec 5.1Comp102   lec 5.1
Comp102 lec 5.1
 
C++ aptitude
C++ aptitudeC++ aptitude
C++ aptitude
 

Andere mochten auch

Impact analysis - A Seismology-inspired Approach to Study Change Propagation
Impact analysis - A Seismology-inspired Approach to Study Change PropagationImpact analysis - A Seismology-inspired Approach to Study Change Propagation
Impact analysis - A Seismology-inspired Approach to Study Change PropagationICSM 2011
 
Industry - The Evolution of Information Systems. A Case Study on Document Man...
Industry - The Evolution of Information Systems. A Case Study on Document Man...Industry - The Evolution of Information Systems. A Case Study on Document Man...
Industry - The Evolution of Information Systems. A Case Study on Document Man...ICSM 2011
 
Migration and Refactoring - Identifying Overly Strong Conditions in Refactori...
Migration and Refactoring - Identifying Overly Strong Conditions in Refactori...Migration and Refactoring - Identifying Overly Strong Conditions in Refactori...
Migration and Refactoring - Identifying Overly Strong Conditions in Refactori...ICSM 2011
 
Lionel Briand ICSM 2011 Keynote
Lionel Briand ICSM 2011 KeynoteLionel Briand ICSM 2011 Keynote
Lionel Briand ICSM 2011 KeynoteICSM 2011
 
Richard Kemmerer Keynote icsm11
Richard Kemmerer Keynote icsm11Richard Kemmerer Keynote icsm11
Richard Kemmerer Keynote icsm11ICSM 2011
 
Faults and Regression Testing - Fault interaction and its repercussions
Faults and Regression Testing - Fault interaction and its repercussionsFaults and Regression Testing - Fault interaction and its repercussions
Faults and Regression Testing - Fault interaction and its repercussionsICSM 2011
 
ERA - Measuring Disruption from Software Evolution Activities Using Graph-Bas...
ERA - Measuring Disruption from Software Evolution Activities Using Graph-Bas...ERA - Measuring Disruption from Software Evolution Activities Using Graph-Bas...
ERA - Measuring Disruption from Software Evolution Activities Using Graph-Bas...ICSM 2011
 
Industry - Precise Detection of Un-Initialized Variables in Large, Real-life ...
Industry - Precise Detection of Un-Initialized Variables in Large, Real-life ...Industry - Precise Detection of Un-Initialized Variables in Large, Real-life ...
Industry - Precise Detection of Un-Initialized Variables in Large, Real-life ...ICSM 2011
 
Natural Language Analysis - Expanding Identifiers to Normalize Source Code Vo...
Natural Language Analysis - Expanding Identifiers to Normalize Source Code Vo...Natural Language Analysis - Expanding Identifiers to Normalize Source Code Vo...
Natural Language Analysis - Expanding Identifiers to Normalize Source Code Vo...ICSM 2011
 
Components - Graph Based Detection of Library API Limitations
Components - Graph Based Detection of Library API LimitationsComponents - Graph Based Detection of Library API Limitations
Components - Graph Based Detection of Library API LimitationsICSM 2011
 
Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...
Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...
Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...ICSM 2011
 
ICSM'01 Most Influential Paper - Rainer Koschke
ICSM'01 Most Influential Paper - Rainer KoschkeICSM'01 Most Influential Paper - Rainer Koschke
ICSM'01 Most Influential Paper - Rainer KoschkeICSM 2011
 
Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...
Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...
Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...ICSM 2011
 
ERA - Tracking Technical Debt
ERA - Tracking Technical DebtERA - Tracking Technical Debt
ERA - Tracking Technical DebtICSM 2011
 
Postdoc Symposium - Abram Hindle
Postdoc Symposium - Abram HindlePostdoc Symposium - Abram Hindle
Postdoc Symposium - Abram HindleICSM 2011
 
Industry - Estimating software maintenance effort from use cases an indu...
Industry - Estimating software maintenance effort from use cases an      indu...Industry - Estimating software maintenance effort from use cases an      indu...
Industry - Estimating software maintenance effort from use cases an indu...ICSM 2011
 
Impact Analysis - ImpactScale: Quantifying Change Impact to Predict Faults in...
Impact Analysis - ImpactScale: Quantifying Change Impact to Predict Faults in...Impact Analysis - ImpactScale: Quantifying Change Impact to Predict Faults in...
Impact Analysis - ImpactScale: Quantifying Change Impact to Predict Faults in...ICSM 2011
 
Components - Crossing the Boundaries while Analyzing Heterogeneous Component-...
Components - Crossing the Boundaries while Analyzing Heterogeneous Component-...Components - Crossing the Boundaries while Analyzing Heterogeneous Component-...
Components - Crossing the Boundaries while Analyzing Heterogeneous Component-...ICSM 2011
 
Industry - Testing & Quality Assurance in Data Migration Projects
Industry - Testing & Quality Assurance in Data Migration Projects Industry - Testing & Quality Assurance in Data Migration Projects
Industry - Testing & Quality Assurance in Data Migration Projects ICSM 2011
 
ERA - Measuring Maintainability of Spreadsheets in the Wild
ERA - Measuring Maintainability of Spreadsheets in the Wild ERA - Measuring Maintainability of Spreadsheets in the Wild
ERA - Measuring Maintainability of Spreadsheets in the Wild ICSM 2011
 

Andere mochten auch (20)

Impact analysis - A Seismology-inspired Approach to Study Change Propagation
Impact analysis - A Seismology-inspired Approach to Study Change PropagationImpact analysis - A Seismology-inspired Approach to Study Change Propagation
Impact analysis - A Seismology-inspired Approach to Study Change Propagation
 
Industry - The Evolution of Information Systems. A Case Study on Document Man...
Industry - The Evolution of Information Systems. A Case Study on Document Man...Industry - The Evolution of Information Systems. A Case Study on Document Man...
Industry - The Evolution of Information Systems. A Case Study on Document Man...
 
Migration and Refactoring - Identifying Overly Strong Conditions in Refactori...
Migration and Refactoring - Identifying Overly Strong Conditions in Refactori...Migration and Refactoring - Identifying Overly Strong Conditions in Refactori...
Migration and Refactoring - Identifying Overly Strong Conditions in Refactori...
 
Lionel Briand ICSM 2011 Keynote
Lionel Briand ICSM 2011 KeynoteLionel Briand ICSM 2011 Keynote
Lionel Briand ICSM 2011 Keynote
 
Richard Kemmerer Keynote icsm11
Richard Kemmerer Keynote icsm11Richard Kemmerer Keynote icsm11
Richard Kemmerer Keynote icsm11
 
Faults and Regression Testing - Fault interaction and its repercussions
Faults and Regression Testing - Fault interaction and its repercussionsFaults and Regression Testing - Fault interaction and its repercussions
Faults and Regression Testing - Fault interaction and its repercussions
 
ERA - Measuring Disruption from Software Evolution Activities Using Graph-Bas...
ERA - Measuring Disruption from Software Evolution Activities Using Graph-Bas...ERA - Measuring Disruption from Software Evolution Activities Using Graph-Bas...
ERA - Measuring Disruption from Software Evolution Activities Using Graph-Bas...
 
Industry - Precise Detection of Un-Initialized Variables in Large, Real-life ...
Industry - Precise Detection of Un-Initialized Variables in Large, Real-life ...Industry - Precise Detection of Un-Initialized Variables in Large, Real-life ...
Industry - Precise Detection of Un-Initialized Variables in Large, Real-life ...
 
Natural Language Analysis - Expanding Identifiers to Normalize Source Code Vo...
Natural Language Analysis - Expanding Identifiers to Normalize Source Code Vo...Natural Language Analysis - Expanding Identifiers to Normalize Source Code Vo...
Natural Language Analysis - Expanding Identifiers to Normalize Source Code Vo...
 
Components - Graph Based Detection of Library API Limitations
Components - Graph Based Detection of Library API LimitationsComponents - Graph Based Detection of Library API Limitations
Components - Graph Based Detection of Library API Limitations
 
Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...
Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...
Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...
 
ICSM'01 Most Influential Paper - Rainer Koschke
ICSM'01 Most Influential Paper - Rainer KoschkeICSM'01 Most Influential Paper - Rainer Koschke
ICSM'01 Most Influential Paper - Rainer Koschke
 
Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...
Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...
Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...
 
ERA - Tracking Technical Debt
ERA - Tracking Technical DebtERA - Tracking Technical Debt
ERA - Tracking Technical Debt
 
Postdoc Symposium - Abram Hindle
Postdoc Symposium - Abram HindlePostdoc Symposium - Abram Hindle
Postdoc Symposium - Abram Hindle
 
Industry - Estimating software maintenance effort from use cases an indu...
Industry - Estimating software maintenance effort from use cases an      indu...Industry - Estimating software maintenance effort from use cases an      indu...
Industry - Estimating software maintenance effort from use cases an indu...
 
Impact Analysis - ImpactScale: Quantifying Change Impact to Predict Faults in...
Impact Analysis - ImpactScale: Quantifying Change Impact to Predict Faults in...Impact Analysis - ImpactScale: Quantifying Change Impact to Predict Faults in...
Impact Analysis - ImpactScale: Quantifying Change Impact to Predict Faults in...
 
Components - Crossing the Boundaries while Analyzing Heterogeneous Component-...
Components - Crossing the Boundaries while Analyzing Heterogeneous Component-...Components - Crossing the Boundaries while Analyzing Heterogeneous Component-...
Components - Crossing the Boundaries while Analyzing Heterogeneous Component-...
 
Industry - Testing & Quality Assurance in Data Migration Projects
Industry - Testing & Quality Assurance in Data Migration Projects Industry - Testing & Quality Assurance in Data Migration Projects
Industry - Testing & Quality Assurance in Data Migration Projects
 
ERA - Measuring Maintainability of Spreadsheets in the Wild
ERA - Measuring Maintainability of Spreadsheets in the Wild ERA - Measuring Maintainability of Spreadsheets in the Wild
ERA - Measuring Maintainability of Spreadsheets in the Wild
 

Ähnlich wie Dynamic Analysis - SCOTCH: Improving Test-to-Code Traceability using Slicing and Conceptual Coupling

Stephan berg track f
Stephan berg   track fStephan berg   track f
Stephan berg track fAlona Gradman
 
D Trace Support In My Sql Guide To Solving Reallife Performance Problems
D Trace Support In My Sql Guide To Solving Reallife Performance ProblemsD Trace Support In My Sql Guide To Solving Reallife Performance Problems
D Trace Support In My Sql Guide To Solving Reallife Performance ProblemsMySQLConference
 
System Verilog 2009 & 2012 enhancements
System Verilog 2009 & 2012 enhancementsSystem Verilog 2009 & 2012 enhancements
System Verilog 2009 & 2012 enhancementsSubash John
 
Training course lect3
Training course lect3Training course lect3
Training course lect3Noor Dhiya
 
Java 5 6 Generics, Concurrency, Garbage Collection, Tuning
Java 5 6 Generics, Concurrency, Garbage Collection, TuningJava 5 6 Generics, Concurrency, Garbage Collection, Tuning
Java 5 6 Generics, Concurrency, Garbage Collection, TuningCarol McDonald
 
Solit 2012, TDD и отдельные аспекты тестирования в Java, Антонина Шафранская
Solit 2012, TDD и отдельные аспекты тестирования в Java, Антонина ШафранскаяSolit 2012, TDD и отдельные аспекты тестирования в Java, Антонина Шафранская
Solit 2012, TDD и отдельные аспекты тестирования в Java, Антонина Шафранскаяsolit
 
Using Rhino Mocks for Effective Unit Testing
Using Rhino Mocks for Effective Unit TestingUsing Rhino Mocks for Effective Unit Testing
Using Rhino Mocks for Effective Unit TestingMike Clement
 
Huong dan cu the svm
Huong dan cu the svmHuong dan cu the svm
Huong dan cu the svmtaikhoan262
 
Deuce STM - CMP'09
Deuce STM - CMP'09Deuce STM - CMP'09
Deuce STM - CMP'09Guy Korland
 
PVS-Studio Meets Octave
PVS-Studio Meets Octave PVS-Studio Meets Octave
PVS-Studio Meets Octave PVS-Studio
 
Intro to Testing in Zope, Plone
Intro to Testing in Zope, PloneIntro to Testing in Zope, Plone
Intro to Testing in Zope, PloneQuintagroup
 
How Scala promotes TDD
How Scala promotes TDDHow Scala promotes TDD
How Scala promotes TDDShai Yallin
 
Project Gemini - a fuzzing tool used by Scylla to guarantee that data, once w...
Project Gemini - a fuzzing tool used by Scylla to guarantee that data, once w...Project Gemini - a fuzzing tool used by Scylla to guarantee that data, once w...
Project Gemini - a fuzzing tool used by Scylla to guarantee that data, once w...ScyllaDB
 
Владимир Иванов. Java 8 и JVM: что нового в HotSpot
Владимир Иванов. Java 8 и JVM: что нового в HotSpotВладимир Иванов. Java 8 и JVM: что нового в HotSpot
Владимир Иванов. Java 8 и JVM: что нового в HotSpotVolha Banadyseva
 

Ähnlich wie Dynamic Analysis - SCOTCH: Improving Test-to-Code Traceability using Slicing and Conceptual Coupling (20)

bluespec talk
bluespec talkbluespec talk
bluespec talk
 
Stephan berg track f
Stephan berg   track fStephan berg   track f
Stephan berg track f
 
D Trace Support In My Sql Guide To Solving Reallife Performance Problems
D Trace Support In My Sql Guide To Solving Reallife Performance ProblemsD Trace Support In My Sql Guide To Solving Reallife Performance Problems
D Trace Support In My Sql Guide To Solving Reallife Performance Problems
 
System Verilog 2009 & 2012 enhancements
System Verilog 2009 & 2012 enhancementsSystem Verilog 2009 & 2012 enhancements
System Verilog 2009 & 2012 enhancements
 
Training course lect3
Training course lect3Training course lect3
Training course lect3
 
Java 5 6 Generics, Concurrency, Garbage Collection, Tuning
Java 5 6 Generics, Concurrency, Garbage Collection, TuningJava 5 6 Generics, Concurrency, Garbage Collection, Tuning
Java 5 6 Generics, Concurrency, Garbage Collection, Tuning
 
Solit 2012, TDD и отдельные аспекты тестирования в Java, Антонина Шафранская
Solit 2012, TDD и отдельные аспекты тестирования в Java, Антонина ШафранскаяSolit 2012, TDD и отдельные аспекты тестирования в Java, Антонина Шафранская
Solit 2012, TDD и отдельные аспекты тестирования в Java, Антонина Шафранская
 
Using Rhino Mocks for Effective Unit Testing
Using Rhino Mocks for Effective Unit TestingUsing Rhino Mocks for Effective Unit Testing
Using Rhino Mocks for Effective Unit Testing
 
How to fake_properly
How to fake_properlyHow to fake_properly
How to fake_properly
 
Guide
GuideGuide
Guide
 
Huong dan cu the svm
Huong dan cu the svmHuong dan cu the svm
Huong dan cu the svm
 
Deuce STM - CMP'09
Deuce STM - CMP'09Deuce STM - CMP'09
Deuce STM - CMP'09
 
Exception Handling in Scala
Exception Handling in ScalaException Handling in Scala
Exception Handling in Scala
 
PVS-Studio Meets Octave
PVS-Studio Meets Octave PVS-Studio Meets Octave
PVS-Studio Meets Octave
 
Intro to Testing in Zope, Plone
Intro to Testing in Zope, PloneIntro to Testing in Zope, Plone
Intro to Testing in Zope, Plone
 
How Scala promotes TDD
How Scala promotes TDDHow Scala promotes TDD
How Scala promotes TDD
 
Java reflection
Java reflectionJava reflection
Java reflection
 
First fare 2010 java-introduction
First fare 2010 java-introductionFirst fare 2010 java-introduction
First fare 2010 java-introduction
 
Project Gemini - a fuzzing tool used by Scylla to guarantee that data, once w...
Project Gemini - a fuzzing tool used by Scylla to guarantee that data, once w...Project Gemini - a fuzzing tool used by Scylla to guarantee that data, once w...
Project Gemini - a fuzzing tool used by Scylla to guarantee that data, once w...
 
Владимир Иванов. Java 8 и JVM: что нового в HotSpot
Владимир Иванов. Java 8 и JVM: что нового в HotSpotВладимир Иванов. Java 8 и JVM: что нового в HotSpot
Владимир Иванов. Java 8 и JVM: что нового в HotSpot
 

Kürzlich hochgeladen

Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 

Kürzlich hochgeladen (20)

Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 

Dynamic Analysis - SCOTCH: Improving Test-to-Code Traceability using Slicing and Conceptual Coupling

  • 1. SCOTCH Improving Test-to-Code Traceability using Slicing and Conceptual Coupling Abdallah Qusef*, Gabriele Bavota*, Rocco Oliveto! Andrea De Lucia*, David Binkley" * Software Engineering Lab, University of Salerno, Italy ! STAT Department, University of Molise, Italy " Loyola University Maryland, USA
  • 2. Context Test-to-code traceability recovery SCOTCH Slicing and COupling based Test to Code trace Hunter Empirical Evaluation SCOTCH vs Naming Convention vs LCBA vs DFA
  • 3. context Test-to-code traceability recovery
  • 4. TestSuiteClass go al Class_1 TES TED CLA Class_2 SS TES TED CLA SS
  • 5. Test-to-code traceability Software Comprehension Regression Testing Impact Analysis Refactoring
  • 6. retrieve links between classes challenges
  • 7. test-to-code traceability Class_1 ll s Class_2 ca TestSuite calls calls Class_3 ca lls Class_4 challenges
  • 8. test-to-code traceability Class_1 hel per cla ss ll s Class_2 ca TES TestSuite TED CLA calls SS calls Class_3 ca lls moc Class_4 obj k ect hel per cla ss challenges
  • 10. state of the art Van Rompaey et al. Qusef et al. CSMR 2009 ICSM 2010
  • 11. state of the art Last Call Before Assert Naming Convention Van Rompaey et al. Qusef et al. CSMR 2009 ICSM 2010
  • 12. state of the art Data Flow Analysis Van Rompaey et al. Qusef et al. CSMR 2009 ICSM 2010
  • 14. TestSuite assertTrue(--) Identifying the last assert statement for each method slicing critirion Dynamic Slicing Class in STS Extracting the classes slice Class in CTS Conceptual Coupling
  • 15. example public class RemoveElementsTest extends TestCase { public void testRemoveElement () { ! ! ConnectedGraphFactory factory = ConnectedGraphFactory.newFactory(); ! ! ConnectedGraph graph = factory.newGraph(); ! ! NodeElement node1 = graph.getStartNode(); ! ! NodeElement node2 = graph.newNode(); ! ! ... ... ... ! ! ! EdgeElement edge1, edge2, edge3, edge4, edge5; ! ! edge1 = graph.newEdge(node1, node2); ! ! edge2 = graph.newEdge(node2, node3); ! ! ... ... ... ! ! try { ! ! ! removedElement = graph.removeElement(edge2); ! ! ! fail("DisconnectedGraphException expected"); ! ! } catch (DisconnectedGraphException e) { ! ! ! assertTrue(true); ! ! } } ! }
  • 16. example public class RemoveElementsTest extends TestCase { public void testRemoveElement () { ! ! ConnectedGraphFactory factory = ConnectedGraphFactory.newFactory(); ! ! ConnectedGraph graph = factory.newGraph(); ! ! NodeElement node1 = graph.getStartNode(); ! ! NodeElement node2 = graph.newNode(); ! ! ... ... ... ! ! ! EdgeElement edge1, edge2, edge3, edge4, edge5; ! ! edge1 = graph.newEdge(node1, node2); ! ! edge2 = graph.newEdge(node2, node3); ! ! ... ... ... ! ! try { ! ! ! removedElement = graph.removeElement(edge2); ! ! ! fail("DisconnectedGraphException expected"); ! ! } catch (DisconnectedGraphException e) { assertTrue(true); ! ! } } ! }
  • 17. example STS - Dynamic Slicing Output Disconnected ConnectedGraph EdgeElement NodeElement ConnectedGraph GraphException Factory ConnectedGraph 0.60 ConnectedGraphFactory 0.56 t = * max(CCBC) EdgeElement 0.49 NodeElement 0.48 = 0.95 DisconnectedGraphException 0.10
  • 18. example STS - Dynamic Slicing Output Disconnected ConnectedGraph EdgeElement NodeElement ConnectedGraph GraphException Factory ConnectedGraph 0.60 t = 0.95 * 0.60 = 0.57 ConnectedGraphFactory 0.56 EdgeElement 0.49 NodeElement 0.48 DisconnectedGraphException 0.10
  • 19. example STS - Dynamic Slicing Output Disconnected ConnectedGraph EdgeElement NodeElement ConnectedGraph GraphException Factory ConnectedGraph 0.60 CTS - Filtered by CCBC ConnectedGraphFactory 0.56 ConnectedGraph EdgeElement 0.49 NodeElement 0.48 DisconnectedGraphException 0.10
  • 21. results NC 85 72 59 F-Measure 46 33 20 AgilePlanner ArgoUML eXVantage
  • 22. NC applicability #CUTs=1 #CUTs=1 and NC applied 100 75 50 25 0 AgilePlanner ArgoUML eXVantage
  • 23. results NC LCBA 85 72 59 F-Measure 46 33 20 AgilePlanner ArgoUML eXVantage
  • 24. results NC LCBA DFA 85 72 59 F-Measure 46 33 20 AgilePlanner ArgoUML eXVantage
  • 25. results NC LCBA DFA SCOTCH 85 72 59 F-Measure 46 33 20 AgilePlanner ArgoUML eXVantage
  • 27. ...conclusion... SCOTCH: how to overcome the limitations of the state of the art techniques
  • 28. ...conclusion... SCOTCH outperforms the state of the art techniques
  • 29. ...future work... replicate the experiment on different datasets investigate about other heuristics
  • 30. Thank you! Questions and/or comments Gabriele Bavota PHD student se@sa Lab, Univeristy of Salerno gbavota@unisa.it