SlideShare ist ein Scribd-Unternehmen logo
1 von 44
Downloaden Sie, um offline zu lesen
Test Confessions: A Study of Testing
   Practices for Plug-In Systems
 Michaela Greiler, Arie van Deursen and Margaret-Anne Storey




                                                               1
Testing Practices for Plug-In Systems?




                                         2
3
extending without
the need of change




                     assemble new
                        products




loaded at runtime

                                    4
5
complex compositions
integrating multiple plug-ins
    different developers




                                6
Incompatibility

                  7
8
“The number one reason people give us
for not upgrading to the latest version of
   WordPress is fear that their plugins
         won’t be compatible.”
                 [WordPress]




                                             9
“Thanks, but I think we have given up on
   Eclipse and Bugzilla integration.”
              [Eclipse – Bug ID: 268207]




                                           10
11
How are plug-in specific
 Which test practices are
                                    integration issues
  prevalent in testing of
                            (i.e. versioning, configurations)
 plug-in-based systems?
                                         tested?
  Practices?                Plug-in Testing?


  What are challenges
experienced when testing
 plug-in based systems?


Challenges?
          Research Questions                                    12
Survey of existing approaches – over 200 resources




  LITERATURE STUDY?


                                               13
A Grounded Theory Study

Systematic procedure to discover a
  theory from (qualitative) data
                                 14
Objective
 Increase understanding of
what testers and developers
think and do when it comes
  to testing plug-in-based
           systems.
                              15
Study
Interviews with 25 experienced Eclipse
developers or testers representing well-
known open and closed source projects.




                                           16
Practices?   Plug-in Testing?



              Are there compensation
              strategies to support the
Challenges?      testing of plug-ins?

              Compensation?

    Research Questions                    17
Triangulation


1.
     Resonance @ EclipseCon




2.   Survey among 151 developers



                                   18
Outcome

TESTING PRACTICES


                    19
Focus on Unit Testing




                        20
Focus on Unit Testing
          Focus on Unit Testing

 “Unit testing is where          “Ultimately, unit test are our
you find the most bugs”                 best friends”



             P18



                                                   P14
          “At least 70% of our test effort is
                spent on unit testing.”

                                                                  21
Integration
20
        Tests      14




                        22
Other forms of testing are less popular

“We think that with a high     “QF-tests [were] too rigid when
test coverage through unit       the system was evolving”
tests, integration tests are
      not necessary.”



           P20
                                                  P14




                                                                 23
1. Finding: (Automated) unit testing is widely adopted;
   Integration, system, UI and acceptance testing are much
   less automated




  SURVEY


                                                             24
Outcome

PLUG-IN TESTING


                  25
Cross-plug-in integration?




Testing platform or plug-in versioning?
                                          26
Cross plug-in testing is optional
“We handle problems between several plug-ins in a bug-
                    driven way”



     P18
                               P19




   “We have no automated tests for cross plug-in testing,
               but we do manual testing.”

                                                            27
Version testing is minimal

“A lot of people put version ranges [
], and they say they can
              run with 3.3 up to version 4.0 [
].”




                             P13




         “But I’m willing to bet that 99% of the people
               do not test that their stuff works.”

                                                                 28
Testing combinations or versions?


43% don’t test integration of different products
 only 3% test this thoroughly


55% don’t            test for platform versions

only 4% test this thoroughly


63% don’t            test for dependency versions
only 10% test this thoroughly

                                                    29
Testing not needed?




                      30
Testing not needed?

“Simply fetch the latest and you'll end
            up in a mess!”
         [Ian Bull on updating problems with
                    plug-in systems]




                                               31
Versioning, cross-plug-in testing not
                   needed?
“Sometimes we update, but there is always the
 risk that it will break something and then you
     have to do extensive [manual] testing.”


P9

                                                          P12

     “I do not even have a chance to test [all possible
     combinations]. There are too many operating
     systems, there are too many Eclipse versions.”
                                                                32
Outcome

BARRIERS


           33
Plug-In Integration Testing Barriers




                                   34
Findings: Barriers

‱ Responsibility for integration unclear

‱ Lack of ownership

‱ Insufficient plug-in testing knowledge

‱ Test execution too long
                                           35
Outcome

COMPENSATION


               36
Self-Hosting



“Eating your own dog food”




                                  37
Manual Testing

       “Tests that I do are very
      simple manual tests, the
     real tests are coming from
      the users, that are doing
     all kind of different things
            with [x].“—P9



                                38
“Testing is done by the user-community
 and they are rigorous about it. We have
more than 10,000 installations per month.
     If there is a bug it gets reported
                                         P12
               immediately.“




                                               39
Developer Involvement

 “We’re a framework. If the user downloads a
new version and lets his application run with it,
       then this is already like a test.”



    P20
                                       P11


          “Perhaps it is not our own product, but our
          product relies on this other product. So it is normal
          to improve [it].”
                                                                  40
A Prerequisite
                  Openness

Communication    Release Management        Extensibility




 Feedback          Manual Testing       Automated Testing




Requirements     Alpha & Beta Tester   Downstream Projects
                                         & Release Train
                                                           41
Summary: Findings
1. (Automated) unit testing is widely adopted;
   Integration, system, UI and acceptance
   testing are much less automated

2. The plug-in nature has little direct impact on
   test practices

3. Barriers to adopt techniques include unclear
   ownership, responsibilities, and test effort &
   execution time

4. Limited integration testing is compensated
   by community
                                                    42
Plug-in specific testing support

                         Provide a test modus




                         Rewarding community

Centralized compatibility information
                                           43
More Details?
Michaela Greiler, Arie van Deursen &
Margaret-Anne Storey.

“Test Confessions: A Study of Testing
Practices for Plug-in Systems”

Contact:
m.s.greiler@tudelft.nl
arie.vandeursen@tudelft.nl
mstorey@uvic.ca


                                        44

Weitere Àhnliche Inhalte

Was ist angesagt?

Software Design for Testability
Software Design for TestabilitySoftware Design for Testability
Software Design for Testability
amr0mt
 
Test Driven Development (C#)
Test Driven Development (C#)Test Driven Development (C#)
Test Driven Development (C#)
Alan Dean
 
Software testing agile_environment_wp
Software testing agile_environment_wpSoftware testing agile_environment_wp
Software testing agile_environment_wp
Cristiano Caetano
 

Was ist angesagt? (20)

Quality of Bug Reports in Open Source
Quality of Bug Reports in Open SourceQuality of Bug Reports in Open Source
Quality of Bug Reports in Open Source
 
Software Design for Testability
Software Design for TestabilitySoftware Design for Testability
Software Design for Testability
 
Agile Testing Overview
Agile Testing OverviewAgile Testing Overview
Agile Testing Overview
 
Design for Testability: A Tutorial for Devs and Testers
Design for Testability: A Tutorial for Devs and TestersDesign for Testability: A Tutorial for Devs and Testers
Design for Testability: A Tutorial for Devs and Testers
 
Common Challenges & Best Practices for TDD on iOS
Common Challenges & Best Practices for TDD on iOSCommon Challenges & Best Practices for TDD on iOS
Common Challenges & Best Practices for TDD on iOS
 
Visual Studio 2010 Testing Overview
Visual Studio 2010 Testing OverviewVisual Studio 2010 Testing Overview
Visual Studio 2010 Testing Overview
 
Avc fdt 201209_en
Avc fdt 201209_enAvc fdt 201209_en
Avc fdt 201209_en
 
Test Driven Development (C#)
Test Driven Development (C#)Test Driven Development (C#)
Test Driven Development (C#)
 
Testing In Production (TiP) Advances with Big Data & the Cloud
Testing In Production (TiP) Advances with Big Data & the CloudTesting In Production (TiP) Advances with Big Data & the Cloud
Testing In Production (TiP) Advances with Big Data & the Cloud
 
Peter Zimmerer - Evolve Design For Testability To The Next Level - EuroSTAR 2012
Peter Zimmerer - Evolve Design For Testability To The Next Level - EuroSTAR 2012Peter Zimmerer - Evolve Design For Testability To The Next Level - EuroSTAR 2012
Peter Zimmerer - Evolve Design For Testability To The Next Level - EuroSTAR 2012
 
Software testing: an introduction - 2017
Software testing: an introduction - 2017Software testing: an introduction - 2017
Software testing: an introduction - 2017
 
Increasing Quality with DevOps
Increasing Quality with DevOpsIncreasing Quality with DevOps
Increasing Quality with DevOps
 
Design for Testability: A Tutorial for Devs and Testers
Design for Testability: A Tutorial for Devs and TestersDesign for Testability: A Tutorial for Devs and Testers
Design for Testability: A Tutorial for Devs and Testers
 
Implementing Quality on a Java Project
Implementing Quality on a Java ProjectImplementing Quality on a Java Project
Implementing Quality on a Java Project
 
AV-Comparatives Performance Test
AV-Comparatives Performance TestAV-Comparatives Performance Test
AV-Comparatives Performance Test
 
Strategies for agile software test automation
Strategies for agile software test automationStrategies for agile software test automation
Strategies for agile software test automation
 
Can we induce change with what we measure?
Can we induce change with what we measure?Can we induce change with what we measure?
Can we induce change with what we measure?
 
Software testing agile_environment_wp
Software testing agile_environment_wpSoftware testing agile_environment_wp
Software testing agile_environment_wp
 
TLC2018 Thomas Haver: The Automation Firehose - Be Strategic and Tactical
TLC2018 Thomas Haver: The Automation Firehose - Be Strategic and TacticalTLC2018 Thomas Haver: The Automation Firehose - Be Strategic and Tactical
TLC2018 Thomas Haver: The Automation Firehose - Be Strategic and Tactical
 
Chapter 3 Reducing Risks Using CI
Chapter 3 Reducing Risks Using CIChapter 3 Reducing Risks Using CI
Chapter 3 Reducing Risks Using CI
 

Andere mochten auch

Understanding Eclipse Plug-in Test Suites @ The Eclipse Testing Day 2011
Understanding Eclipse Plug-in Test Suites @ The Eclipse Testing Day 2011Understanding Eclipse Plug-in Test Suites @ The Eclipse Testing Day 2011
Understanding Eclipse Plug-in Test Suites @ The Eclipse Testing Day 2011
Michaela Greiler
 
The Impact of Code Review Coverage and Participation on Software Quality
The Impact of Code Review Coverage and Participation on Software QualityThe Impact of Code Review Coverage and Participation on Software Quality
The Impact of Code Review Coverage and Participation on Software Quality
Shane McIntosh
 
Simplified Security Code Review Process
Simplified Security Code Review ProcessSimplified Security Code Review Process
Simplified Security Code Review Process
Sherif Koussa
 

Andere mochten auch (20)

Understanding Eclipse Plug-in Test Suites @ The Eclipse Testing Day 2011
Understanding Eclipse Plug-in Test Suites @ The Eclipse Testing Day 2011Understanding Eclipse Plug-in Test Suites @ The Eclipse Testing Day 2011
Understanding Eclipse Plug-in Test Suites @ The Eclipse Testing Day 2011
 
How to Code Review
How to Code ReviewHow to Code Review
How to Code Review
 
Strategies to Avoid Test Fixture Smells durin Software Evolution
Strategies to Avoid Test Fixture Smells durin Software EvolutionStrategies to Avoid Test Fixture Smells durin Software Evolution
Strategies to Avoid Test Fixture Smells durin Software Evolution
 
JDD Effective Code Review In Agile Teams
JDD Effective Code Review In Agile TeamsJDD Effective Code Review In Agile Teams
JDD Effective Code Review In Agile Teams
 
Code review process checklist by VINTAGE
Code review process checklist by VINTAGECode review process checklist by VINTAGE
Code review process checklist by VINTAGE
 
Code review in practice
Code review in practiceCode review in practice
Code review in practice
 
Code review drinking game
Code review drinking gameCode review drinking game
Code review drinking game
 
Code Review
Code ReviewCode Review
Code Review
 
Code Review: Veni, ViDI, Vici (saner15)
Code Review: Veni, ViDI, Vici (saner15)Code Review: Veni, ViDI, Vici (saner15)
Code Review: Veni, ViDI, Vici (saner15)
 
Review your code like a Googler
Review your code like a GooglerReview your code like a Googler
Review your code like a Googler
 
Code Review for Teams Too Busy to Review Code - Atlassian Summit 2010
Code Review for Teams Too Busy to Review Code - Atlassian Summit 2010Code Review for Teams Too Busy to Review Code - Atlassian Summit 2010
Code Review for Teams Too Busy to Review Code - Atlassian Summit 2010
 
Code Review: An apple a day
Code Review: An apple a dayCode Review: An apple a day
Code Review: An apple a day
 
On to code review lessons learned at microsoft
On to code review lessons learned at microsoftOn to code review lessons learned at microsoft
On to code review lessons learned at microsoft
 
The Impact of Code Review Coverage and Participation on Software Quality
The Impact of Code Review Coverage and Participation on Software QualityThe Impact of Code Review Coverage and Participation on Software Quality
The Impact of Code Review Coverage and Participation on Software Quality
 
Simplified Security Code Review Process
Simplified Security Code Review ProcessSimplified Security Code Review Process
Simplified Security Code Review Process
 
Code Review: How and When
Code Review: How and WhenCode Review: How and When
Code Review: How and When
 
Code Review for iOS
Code Review for iOSCode Review for iOS
Code Review for iOS
 
Improving Code Quality Through Effective Review Process
Improving Code Quality Through Effective  Review ProcessImproving Code Quality Through Effective  Review Process
Improving Code Quality Through Effective Review Process
 
Peer Code Review An Agile Process
Peer Code Review An Agile ProcessPeer Code Review An Agile Process
Peer Code Review An Agile Process
 
Code Review
Code ReviewCode Review
Code Review
 

Ähnlich wie ICSE 2012: Test Confessions - A study of testing practices for plug-in systems

Everything you ever wanted to know about deployment but were afraid to ask
Everything you ever wanted to know about deployment but were afraid to askEverything you ever wanted to know about deployment but were afraid to ask
Everything you ever wanted to know about deployment but were afraid to ask
lauraxthomson
 
Testing
Testing Testing
Testing
poojadatt
 
Testing In Java
Testing In JavaTesting In Java
Testing In Java
Adrian Treacy
 
Functional testing
Functional testingFunctional testing
Functional testing
Srikanth Kumar
 

Ähnlich wie ICSE 2012: Test Confessions - A study of testing practices for plug-in systems (20)

Different Types Of Testing
Different Types Of TestingDifferent Types Of Testing
Different Types Of Testing
 
Everything you ever wanted to know about deployment but were afraid to ask
Everything you ever wanted to know about deployment but were afraid to askEverything you ever wanted to know about deployment but were afraid to ask
Everything you ever wanted to know about deployment but were afraid to ask
 
Testing
Testing Testing
Testing
 
Black & White Box testing
Black & White Box testingBlack & White Box testing
Black & White Box testing
 
Agile testing
Agile testingAgile testing
Agile testing
 
Testing Practices for Continuous Delivery - Ken McCormack
Testing Practices for Continuous Delivery - Ken McCormackTesting Practices for Continuous Delivery - Ken McCormack
Testing Practices for Continuous Delivery - Ken McCormack
 
Software Testing Tutorials - MindScripts Technologies, Pune
Software Testing Tutorials - MindScripts Technologies, PuneSoftware Testing Tutorials - MindScripts Technologies, Pune
Software Testing Tutorials - MindScripts Technologies, Pune
 
5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation
 
Kickoff Test Automation Day 2012
Kickoff Test Automation Day 2012Kickoff Test Automation Day 2012
Kickoff Test Automation Day 2012
 
TDD Presentation
TDD PresentationTDD Presentation
TDD Presentation
 
Continuous Integration testing based on Selenium and Hudson
Continuous Integration testing based on Selenium and HudsonContinuous Integration testing based on Selenium and Hudson
Continuous Integration testing based on Selenium and Hudson
 
Chaos engineering
Chaos engineering Chaos engineering
Chaos engineering
 
Testing In Java
Testing In JavaTesting In Java
Testing In Java
 
Lecture 10: ML Testing & Explainability (Full Stack Deep Learning - Spring 2021)
Lecture 10: ML Testing & Explainability (Full Stack Deep Learning - Spring 2021)Lecture 10: ML Testing & Explainability (Full Stack Deep Learning - Spring 2021)
Lecture 10: ML Testing & Explainability (Full Stack Deep Learning - Spring 2021)
 
[HCMC STC Jan 2015] Workshop Of Context-Driven Testing In Agile
[HCMC STC Jan 2015] Workshop Of Context-Driven Testing In Agile[HCMC STC Jan 2015] Workshop Of Context-Driven Testing In Agile
[HCMC STC Jan 2015] Workshop Of Context-Driven Testing In Agile
 
SFSCON23 - Juri Solovjov - Flaky tests – how to deal with them
SFSCON23 - Juri Solovjov - Flaky tests – how to deal with themSFSCON23 - Juri Solovjov - Flaky tests – how to deal with them
SFSCON23 - Juri Solovjov - Flaky tests – how to deal with them
 
Object oriented sad 6
Object oriented sad 6Object oriented sad 6
Object oriented sad 6
 
SOFTWARE TESTING W1_watermark.pdf
SOFTWARE TESTING W1_watermark.pdfSOFTWARE TESTING W1_watermark.pdf
SOFTWARE TESTING W1_watermark.pdf
 
Functional testing
Functional testingFunctional testing
Functional testing
 
Short definitions of all testing types
Short definitions of all testing typesShort definitions of all testing types
Short definitions of all testing types
 

KĂŒrzlich hochgeladen

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
Christopher Logan Kennedy
 

KĂŒrzlich hochgeladen (20)

DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
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
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 

ICSE 2012: Test Confessions - A study of testing practices for plug-in systems

  • 1. Test Confessions: A Study of Testing Practices for Plug-In Systems Michaela Greiler, Arie van Deursen and Margaret-Anne Storey 1
  • 2. Testing Practices for Plug-In Systems? 2
  • 3. 3
  • 4. extending without the need of change assemble new products loaded at runtime 4
  • 5. 5
  • 6. complex compositions integrating multiple plug-ins different developers 6
  • 8. 8
  • 9. “The number one reason people give us for not upgrading to the latest version of WordPress is fear that their plugins won’t be compatible.” [WordPress] 9
  • 10. “Thanks, but I think we have given up on Eclipse and Bugzilla integration.” [Eclipse – Bug ID: 268207] 10
  • 11. 11
  • 12. How are plug-in specific Which test practices are integration issues prevalent in testing of (i.e. versioning, configurations) plug-in-based systems? tested? Practices? Plug-in Testing? What are challenges experienced when testing plug-in based systems? Challenges? Research Questions 12
  • 13. Survey of existing approaches – over 200 resources LITERATURE STUDY? 13
  • 14. A Grounded Theory Study Systematic procedure to discover a theory from (qualitative) data 14
  • 15. Objective Increase understanding of what testers and developers think and do when it comes to testing plug-in-based systems. 15
  • 16. Study Interviews with 25 experienced Eclipse developers or testers representing well- known open and closed source projects. 16
  • 17. Practices? Plug-in Testing? Are there compensation strategies to support the Challenges? testing of plug-ins? Compensation? Research Questions 17
  • 18. Triangulation 1. Resonance @ EclipseCon 2. Survey among 151 developers 18
  • 20. Focus on Unit Testing 20
  • 21. Focus on Unit Testing Focus on Unit Testing “Unit testing is where “Ultimately, unit test are our you find the most bugs” best friends” P18 P14 “At least 70% of our test effort is spent on unit testing.” 21
  • 22. Integration 20 Tests 14 22
  • 23. Other forms of testing are less popular “We think that with a high “QF-tests [were] too rigid when test coverage through unit the system was evolving” tests, integration tests are not necessary.” P20 P14 23
  • 24. 1. Finding: (Automated) unit testing is widely adopted; Integration, system, UI and acceptance testing are much less automated SURVEY 24
  • 26. Cross-plug-in integration? Testing platform or plug-in versioning? 26
  • 27. Cross plug-in testing is optional “We handle problems between several plug-ins in a bug- driven way” P18 P19 “We have no automated tests for cross plug-in testing, but we do manual testing.” 27
  • 28. Version testing is minimal “A lot of people put version ranges [
], and they say they can run with 3.3 up to version 4.0 [
].” P13 “But I’m willing to bet that 99% of the people do not test that their stuff works.” 28
  • 29. Testing combinations or versions? 43% don’t test integration of different products only 3% test this thoroughly 55% don’t test for platform versions only 4% test this thoroughly 63% don’t test for dependency versions only 10% test this thoroughly 29
  • 31. Testing not needed? “Simply fetch the latest and you'll end up in a mess!” [Ian Bull on updating problems with plug-in systems] 31
  • 32. Versioning, cross-plug-in testing not needed? “Sometimes we update, but there is always the risk that it will break something and then you have to do extensive [manual] testing.” P9 P12 “I do not even have a chance to test [all possible combinations]. There are too many operating systems, there are too many Eclipse versions.” 32
  • 35. Findings: Barriers ‱ Responsibility for integration unclear ‱ Lack of ownership ‱ Insufficient plug-in testing knowledge ‱ Test execution too long 35
  • 38. Manual Testing “Tests that I do are very simple manual tests, the real tests are coming from the users, that are doing all kind of different things with [x].“—P9 38
  • 39. “Testing is done by the user-community and they are rigorous about it. We have more than 10,000 installations per month. If there is a bug it gets reported P12 immediately.“ 39
  • 40. Developer Involvement “We’re a framework. If the user downloads a new version and lets his application run with it, then this is already like a test.” P20 P11 “Perhaps it is not our own product, but our product relies on this other product. So it is normal to improve [it].” 40
  • 41. A Prerequisite Openness Communication Release Management Extensibility Feedback Manual Testing Automated Testing Requirements Alpha & Beta Tester Downstream Projects & Release Train 41
  • 42. Summary: Findings 1. (Automated) unit testing is widely adopted; Integration, system, UI and acceptance testing are much less automated 2. The plug-in nature has little direct impact on test practices 3. Barriers to adopt techniques include unclear ownership, responsibilities, and test effort & execution time 4. Limited integration testing is compensated by community 42
  • 43. Plug-in specific testing support Provide a test modus Rewarding community Centralized compatibility information 43
  • 44. More Details? Michaela Greiler, Arie van Deursen & Margaret-Anne Storey. “Test Confessions: A Study of Testing Practices for Plug-in Systems” Contact: m.s.greiler@tudelft.nl arie.vandeursen@tudelft.nl mstorey@uvic.ca 44