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

834 views

Published on

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

Authors: Abdallah Qusef, Gabriele Bavota, Rocco Oliveto, Andrea De Lucia, David Binkley

Session: Research Track Session 3: Dynamic Analysis

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
834
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

  1. 1. SCOTCH Improving Test-to-Code Traceabilityusing 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. 2. Context Test-to-code traceability recovery SCOTCH Slicing and COupling based Test to Code trace Hunter Empirical EvaluationSCOTCH vs Naming Convention vs LCBA vs DFA
  3. 3. context Test-to-code traceability recovery
  4. 4. TestSuiteClassgo al Class_1 TES TED CLA Class_2 SS TES TED CLA SS
  5. 5. Test-to-code traceability Software Comprehension Regression Testing Impact Analysis Refactoring
  6. 6. retrieve links between classes challenges
  7. 7. test-to-code traceability Class_1 ll s Class_2 caTestSuite calls calls Class_3 ca lls Class_4 challenges
  8. 8. test-to-code traceability Class_1 hel per cla ss ll s Class_2 ca TESTestSuite TED CLA calls SS calls Class_3 ca lls moc Class_4 obj k ect hel per cla ss challenges
  9. 9. state of the art
  10. 10. state of the artVan Rompaey et al. Qusef et al. CSMR 2009 ICSM 2010
  11. 11. state of the art Last Call Before Assert Naming ConventionVan Rompaey et al. Qusef et al. CSMR 2009 ICSM 2010
  12. 12. state of the artData Flow Analysis Van Rompaey et al. Qusef et al. CSMR 2009 ICSM 2010
  13. 13. SCOTCHSlicing andCOupling basedTest toCode traceHunter
  14. 14. TestSuite assertTrue(--) Identifying the last assert statement for each method slicing critirion Dynamic SlicingClass in STS Extracting the classes slice Class in CTS Conceptual Coupling
  15. 15. examplepublic 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. 16. examplepublic 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. 17. exampleSTS - Dynamic Slicing Output Disconnected ConnectedGraph EdgeElement NodeElement ConnectedGraphGraphException Factory ConnectedGraph 0.60 ConnectedGraphFactory 0.56 t = * max(CCBC) EdgeElement 0.49 NodeElement 0.48 = 0.95DisconnectedGraphException 0.10
  18. 18. exampleSTS - Dynamic Slicing Output Disconnected ConnectedGraph EdgeElement NodeElement ConnectedGraphGraphException Factory ConnectedGraph 0.60 t = 0.95 * 0.60 = 0.57 ConnectedGraphFactory 0.56 EdgeElement 0.49 NodeElement 0.48DisconnectedGraphException 0.10
  19. 19. exampleSTS - Dynamic Slicing Output Disconnected ConnectedGraph EdgeElement NodeElement ConnectedGraphGraphException Factory ConnectedGraph 0.60 CTS - Filtered by CCBC ConnectedGraphFactory 0.56 ConnectedGraph EdgeElement 0.49 NodeElement 0.48DisconnectedGraphException 0.10
  20. 20. empirical evaluation
  21. 21. results NC 85 72 59F-Measure 46 33 20 AgilePlanner ArgoUML eXVantage
  22. 22. NC applicability #CUTs=1 #CUTs=1 and NC applied100 75 50 25 0 AgilePlanner ArgoUML eXVantage
  23. 23. results NC LCBA 85 72 59F-Measure 46 33 20 AgilePlanner ArgoUML eXVantage
  24. 24. results NC LCBA DFA 85 72 59F-Measure 46 33 20 AgilePlanner ArgoUML eXVantage
  25. 25. results NC LCBA DFA SCOTCH 85 72 59F-Measure 46 33 20 AgilePlanner ArgoUML eXVantage
  26. 26. future workconclusion
  27. 27. ...conclusion...SCOTCH: how to overcome the limitations of the state of the art techniques
  28. 28. ...conclusion...SCOTCH outperforms the state of the art techniques
  29. 29. ...future work...replicate the experiment on different datasets investigate about other heuristics
  30. 30. Thank you! Questions and/or commentsGabriele BavotaPHD studentse@sa Lab, Univeristy of Salernogbavota@unisa.it

×