SlideShare a Scribd company logo
Understanding Plug-in Test Suites
 from an Integration Perspective
         Michaela Greiler, Arie van Deursen
        Software Engineering Research Group
            Delft University of Technology
Understanding Plug-in Test Suites
Understanding Eclipse Plug-in Test Suites @ The Eclipse Testing Day 2011
Understanding Eclipse Plug-in Test Suites @ The Eclipse Testing Day 2011
Need more Information?




  Which Information?
Understanding Eclipse Plug-in Test Suites @ The Eclipse Testing Day 2011
Code Dependencies
   which plug-ins are using each other




 Service Relations
which plug-ins are using services each other



Extension Relations
 which plug-ins are extending each other
Understanding Eclipse Plug-in Test Suites @ The Eclipse Testing Day 2011
Interviewed 25 Eclipse practitioners



                                  Understanding
                                    test cases




                                 Understanding
                                   test suites
Interviewed 25 Eclipse practitioners
                                            Understanding
                                              test cases




  Coding standards, naming conventions.


  Explanation and Motivation.


  “Tests are also like other parts of code. Sometimes people give bad
  names to their methods and variables. Then it is hard to understand.”
Interviewed 25 Eclipse practitioners
                                Understanding
                                  test suites




“What one specific test does, that’s quite
easy to understand. What’s difficult is to see
where the blank spots on the map are.”
Interviewed 25 Eclipse practitioners
                                     Understanding
                                       test suites




  Challenges keeping an Overview:

  “It is difficult. You have to read it all. If you skip
  one test, you do not know one part of the system.”

  Test Organization and Structure.

  Nested Test Suites.
Interviewed 25 Eclipse practitioners
                                    Understanding
                                      test suites




  “We realized: either we work on a particular point, and
  we run only one test case, or we run all of them.

  We worry very often about not being able to run the test
  suite in a more fine-grained way..”
Understanding Eclipse Plug-in Test Suites @ The Eclipse Testing Day 2011
Which plug-ins are
                             How are the plug-in
tested by which test-
                            extensions and services
     component?
                                    tested?



                          How are the plug-ins
                          extending each other?
 Which extensions are
 used during the tests?
Manual Inspection!
Look at…

     … extension relations

       Only Static


           …code
Understanding Plug-in Test Suites
 from an Integration Perspective
5 Architectural View


                                                        Extension        Service
   Plug-in         Test-Suite          Extension
                                                       Usage View      Usage View
Modularization   Modularization      Initialization
    View             View                 View

Plug-in Level    Test Case Level   Extension Level    Method Level    Method Level

                    Plug-in A         Plug-in A         Plug-in A       Plug-in A
  Plug-in A
                   is tested by         loads            invokes          invokes
    uses
                    test case t      extension e      method m of     method m of
  Plug-in B
                   of Plug-in B      of Plug-in B     extension e        service s
                                                       in plug-in B    in plug-in B
Ingredients: Data Behind

                   Static Data & Dynamic Trace Data

        plugin.xml & schema                          Test suite
              manifest                               class files
              class files




     Fact Extraction                             Instrumentation
           Facts                                        Traces


                              Reconstruction




                                  VIEWS


                                          Recipe: Reconstructing The Views
Recipe: Reconstructing the Extension Usage View


STATIC: plug-in.xml, schema, .class                        DYNAMIC: Method Calls
       Fact Extraction                                      Instrumentation
              Facts                                                Traces

                                      Reconstruction
                            Extension Method Set: Heuristic
                             (all methods of an extension)

                                  Inspect the Trace File




                             Extension Usage View
                             which “extension methods” are
                                        invoked
ETSE: Eclipse Test Suite Explorer
Empirical Evaluation
Case Study Set-Up


                                             Connector
     27 plug-ins       5 main plug-ins    3 main plug-ins
11 test-components    2 test components  1 test component
   2 test suites        4 test suites      2 test suites
    200,000 LOCs         100,000 LOCs        8,500 LOCs
30,000 LOCs tests    14,000 lines tests 3,400 lines tests
Understanding Eclipse Plug-in Test Suites @ The Eclipse Testing Day 2011
ETSE: Eclipse Test Suite Explorer
Static




                        Dynamic



 Which plug-ins are
tested by which test-
     component?
Dynamic & Static




            System Level
                              How are the plug-in
                           extension-relations tested?
How are the plug-ins
extending each other?
Plug-in Level
                                Dynamic & Static


                             How are the plug-in
                          extension-relations tested?
How are the plug-ins
extending each other?
When and how have
                         the extensions been
                                used?
Which extensions are
used during the tests?
ETSE: Eclipse Test Suite Explorer
Want to use ETSE in your project?



                 Contactus!
                m.s.greiler@tudelft.nl
             arie.vandeursen@tudelft.nl


                      Update site:
http://swerl.tudelft.nl/etse/ETSE_UpdateSite/site.xml

More Related Content

PDF
Unit and integration Testing
PDF
Unit Testing Fundamentals
PPTX
Unit Testing Concepts and Best Practices
PPTX
Java Unit Test and Coverage Introduction
PDF
Clean Unit Test Patterns
PPTX
Unit tests & TDD
PPTX
UNIT TESTING
Unit and integration Testing
Unit Testing Fundamentals
Unit Testing Concepts and Best Practices
Java Unit Test and Coverage Introduction
Clean Unit Test Patterns
Unit tests & TDD
UNIT TESTING

What's hot (20)

PPTX
Unit testing
PDF
Unit testing with JUnit
PDF
Workshop unit test
PPTX
Unit Testing
PPT
Testing and Mocking Object - The Art of Mocking.
PDF
Unit Testing
PPTX
Unit Testing And Mocking
PPTX
NUnit Features Presentation
ODP
Testing In Java
PDF
What is JUnit? | Edureka
PPSX
Unit Test Presentation
ODP
Beginners - Get Started With Unit Testing in .NET
PPTX
Introduction to JUnit
PPTX
Unit Tests And Automated Testing
PPTX
Unit testing
PPTX
Unit Testing (C#)
PDF
Unit testing with Junit
PPTX
.Net Unit Testing with Visual Studio 2010
PPTX
Test driven development in .Net - 2010 + Eclipse
PPTX
Intro To Unit and integration Testing
Unit testing
Unit testing with JUnit
Workshop unit test
Unit Testing
Testing and Mocking Object - The Art of Mocking.
Unit Testing
Unit Testing And Mocking
NUnit Features Presentation
Testing In Java
What is JUnit? | Edureka
Unit Test Presentation
Beginners - Get Started With Unit Testing in .NET
Introduction to JUnit
Unit Tests And Automated Testing
Unit testing
Unit Testing (C#)
Unit testing with Junit
.Net Unit Testing with Visual Studio 2010
Test driven development in .Net - 2010 + Eclipse
Intro To Unit and integration Testing
Ad

Viewers also liked (20)

PDF
ICSE 2012: Test Confessions - A study of testing practices for plug-in systems
PDF
How to Code Review
PDF
Strategies to Avoid Test Fixture Smells durin Software Evolution
PDF
JDD Effective Code Review In Agile Teams
PDF
EclipseCon: Test Confessions - What Eclipsers think and do about testing
PPTX
Code review process checklist by VINTAGE
PDF
Code review in practice
PDF
Code review drinking game
PDF
Code Review
PDF
Review your code like a Googler
PDF
Code Review: Veni, ViDI, Vici (saner15)
PDF
Code Review for Teams Too Busy to Review Code - Atlassian Summit 2010
KEY
Code Review: An apple a day
PDF
On to code review lessons learned at microsoft
PDF
The Impact of Code Review Coverage and Participation on Software Quality
PDF
Can we induce change with what we measure?
PDF
Simplified Security Code Review Process
PDF
Code Review: How and When
PDF
Code Review for iOS
PPTX
Improving Code Quality Through Effective Review Process
ICSE 2012: Test Confessions - A study of testing practices for plug-in systems
How to Code Review
Strategies to Avoid Test Fixture Smells durin Software Evolution
JDD Effective Code Review In Agile Teams
EclipseCon: Test Confessions - What Eclipsers think and do about testing
Code review process checklist by VINTAGE
Code review in practice
Code review drinking game
Code Review
Review your code like a Googler
Code Review: Veni, ViDI, Vici (saner15)
Code Review for Teams Too Busy to Review Code - Atlassian Summit 2010
Code Review: An apple a day
On to code review lessons learned at microsoft
The Impact of Code Review Coverage and Participation on Software Quality
Can we induce change with what we measure?
Simplified Security Code Review Process
Code Review: How and When
Code Review for iOS
Improving Code Quality Through Effective Review Process
Ad

Similar to Understanding Eclipse Plug-in Test Suites @ The Eclipse Testing Day 2011 (20)

PPT
Chapter 3 SOFTWARE TESTING PROCESS
PPT
Unit testing php-unit - phing - selenium_v2
PPT
Unit testing
PPTX
Unit testing & TDD concepts with best practice guidelines.
PPTX
Unit Testing in Java
PPT
Application Testing
PPT
Software Testing
PPT
Defect Testing in Software Engineering SE20
PPTX
Tdd Ugialtnet Jan2010
PPTX
52 - The Impact of Test Ownership and Team Structure on the Reliability and E...
PDF
Test ng for testers
PDF
Higher Order Testing
PPTX
Computer science lecture for Software Engineering
PPTX
JUnit- A Unit Testing Framework
PDF
TestNG - The Next Generation of Unit Testing
PPTX
The Impact of Test Ownership and Team Structure on the Reliability and Effect...
PDF
Glossary of Testing Terms and Concepts
DOCX
Test driven development and unit testing with examples in C++
PPTX
Object Oriented Testing
Chapter 3 SOFTWARE TESTING PROCESS
Unit testing php-unit - phing - selenium_v2
Unit testing
Unit testing & TDD concepts with best practice guidelines.
Unit Testing in Java
Application Testing
Software Testing
Defect Testing in Software Engineering SE20
Tdd Ugialtnet Jan2010
52 - The Impact of Test Ownership and Team Structure on the Reliability and E...
Test ng for testers
Higher Order Testing
Computer science lecture for Software Engineering
JUnit- A Unit Testing Framework
TestNG - The Next Generation of Unit Testing
The Impact of Test Ownership and Team Structure on the Reliability and Effect...
Glossary of Testing Terms and Concepts
Test driven development and unit testing with examples in C++
Object Oriented Testing

Recently uploaded (20)

PDF
Empathic Computing: Creating Shared Understanding
PDF
Machine learning based COVID-19 study performance prediction
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
Cloud computing and distributed systems.
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
Big Data Technologies - Introduction.pptx
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
Spectroscopy.pptx food analysis technology
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPT
Teaching material agriculture food technology
PDF
Electronic commerce courselecture one. Pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Empathic Computing: Creating Shared Understanding
Machine learning based COVID-19 study performance prediction
Programs and apps: productivity, graphics, security and other tools
NewMind AI Weekly Chronicles - August'25 Week I
Cloud computing and distributed systems.
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
20250228 LYD VKU AI Blended-Learning.pptx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Big Data Technologies - Introduction.pptx
Per capita expenditure prediction using model stacking based on satellite ima...
Understanding_Digital_Forensics_Presentation.pptx
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Spectroscopy.pptx food analysis technology
Mobile App Security Testing_ A Comprehensive Guide.pdf
Teaching material agriculture food technology
Electronic commerce courselecture one. Pdf
Advanced methodologies resolving dimensionality complications for autism neur...
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...

Understanding Eclipse Plug-in Test Suites @ The Eclipse Testing Day 2011

  • 1. Understanding Plug-in Test Suites from an Integration Perspective Michaela Greiler, Arie van Deursen Software Engineering Research Group Delft University of Technology
  • 5. Need more Information? Which Information?
  • 7. Code Dependencies which plug-ins are using each other Service Relations which plug-ins are using services each other Extension Relations which plug-ins are extending each other
  • 9. Interviewed 25 Eclipse practitioners Understanding test cases Understanding test suites
  • 10. Interviewed 25 Eclipse practitioners Understanding test cases Coding standards, naming conventions. Explanation and Motivation. “Tests are also like other parts of code. Sometimes people give bad names to their methods and variables. Then it is hard to understand.”
  • 11. Interviewed 25 Eclipse practitioners Understanding test suites “What one specific test does, that’s quite easy to understand. What’s difficult is to see where the blank spots on the map are.”
  • 12. Interviewed 25 Eclipse practitioners Understanding test suites Challenges keeping an Overview: “It is difficult. You have to read it all. If you skip one test, you do not know one part of the system.” Test Organization and Structure. Nested Test Suites.
  • 13. Interviewed 25 Eclipse practitioners Understanding test suites “We realized: either we work on a particular point, and we run only one test case, or we run all of them. We worry very often about not being able to run the test suite in a more fine-grained way..”
  • 15. Which plug-ins are How are the plug-in tested by which test- extensions and services component? tested? How are the plug-ins extending each other? Which extensions are used during the tests?
  • 17. Look at… … extension relations Only Static …code
  • 18. Understanding Plug-in Test Suites from an Integration Perspective
  • 19. 5 Architectural View Extension Service Plug-in Test-Suite Extension Usage View Usage View Modularization Modularization Initialization View View View Plug-in Level Test Case Level Extension Level Method Level Method Level Plug-in A Plug-in A Plug-in A Plug-in A Plug-in A is tested by loads invokes invokes uses test case t extension e method m of method m of Plug-in B of Plug-in B of Plug-in B extension e service s in plug-in B in plug-in B
  • 20. Ingredients: Data Behind Static Data & Dynamic Trace Data plugin.xml & schema Test suite manifest class files class files Fact Extraction Instrumentation Facts Traces Reconstruction VIEWS Recipe: Reconstructing The Views
  • 21. Recipe: Reconstructing the Extension Usage View STATIC: plug-in.xml, schema, .class DYNAMIC: Method Calls Fact Extraction Instrumentation Facts Traces Reconstruction Extension Method Set: Heuristic (all methods of an extension) Inspect the Trace File Extension Usage View which “extension methods” are invoked
  • 22. ETSE: Eclipse Test Suite Explorer
  • 24. Case Study Set-Up Connector 27 plug-ins 5 main plug-ins 3 main plug-ins 11 test-components 2 test components 1 test component 2 test suites 4 test suites 2 test suites 200,000 LOCs 100,000 LOCs 8,500 LOCs 30,000 LOCs tests 14,000 lines tests 3,400 lines tests
  • 26. ETSE: Eclipse Test Suite Explorer
  • 27. Static Dynamic Which plug-ins are tested by which test- component?
  • 28. Dynamic & Static System Level How are the plug-in extension-relations tested? How are the plug-ins extending each other?
  • 29. Plug-in Level Dynamic & Static How are the plug-in extension-relations tested? How are the plug-ins extending each other?
  • 30. When and how have the extensions been used? Which extensions are used during the tests?
  • 31. ETSE: Eclipse Test Suite Explorer
  • 32. Want to use ETSE in your project? Contactus! m.s.greiler@tudelft.nl arie.vandeursen@tudelft.nl Update site: http://swerl.tudelft.nl/etse/ETSE_UpdateSite/site.xml