SlideShare uma empresa Scribd logo
1 de 33
Baixar para ler offline
An exploratory study of the state ofAn exploratory study of the state of
practice of performance testing in Java-practice of performance testing in Java-
based open source projectsbased open source projects
Cor-Paul BezemerPhilipp Leitner
Industrial applications depend more andIndustrial applications depend more and
more on open source softwaremore on open source software
Is the dependency on open source softwareIs the dependency on open source software
justified (or wise)?justified (or wise)?
We know (more or less) how toWe know (more or less) how to
assess quality of functionality...assess quality of functionality...
But there is no standardized way ofBut there is no standardized way of
assessing performance!assessing performance!
What is the state of practice ofWhat is the state of practice of
performance testing in Java-basedperformance testing in Java-based
open source software?open source software?
We conducted an exploratoryWe conducted an exploratory
study on 111 Java-based projectsstudy on 111 Java-based projects
We conducted an exploratoryWe conducted an exploratory
study on 111 Java-based projectsstudy on 111 Java-based projects
‘bench’ or ‘perf’ in the src/test directory
0
20
40
60
<=
100101
−
500501
−
2000
2001
−
5000
>
5000
# of Total Commits
#ofProjects
Commits
0
20
40
60
1
2
−
5
6
−
10
11
−
25
>
25
# of Individual Contributors
#ofProjects
Individual Contributors
0
20
40
60
<=
25
26
−
50
51
−
100101
−
500
>
500
# of Stars
#ofProjects
Stars
0
20
40
60
<=
25
26
−
50
51
−
100101
−
500
>
500
# of Watchers
#ofProjects
Watchers
We manually identifiedWe manually identified
(performance) tests(performance) tests
● Following process:
– Search the test files for performance-related terms
● ‘perf’,‘bench’,‘fast’,‘speed’, etc.
– Manually identify performance tests
We studied performance testingWe studied performance testing
from five perspectivesfrom five perspectives
1.The developers who are involved
2.The extent of performance testing
3.The organization of performance tests
4.The types of performance tests
5.The tools used
Perspective 1: DevelopersPerspective 1: Developers
Performance tests are usually done by a small group
of developers (median 2 vs. median 9 developers)
Perspective 1: DevelopersPerspective 1: Developers
Performance tests are usually done by a small group
of developers (median 2 vs. median 9 developers)
Performance testers are usually core developers of
the project
Perspective 2:The extent of testingPerspective 2:The extent of testing
The performance test suite is usually small
– A few hundred LOC compared to a few thousand LOC
for the functional test suite
– Exceptions are Hadoop and Deuce STM (Software
Transactional Memory)
Perspective 2:The extent of testingPerspective 2:The extent of testing
The performance test suite is usually small
– A few hundred LOC compared to a few thousand LOC
for the functional test suite
– Exceptions are Hadoop and Deuce STM (Software
Transactional Memory)
Projects that claim to be the fastest/most efficient
do not seem to take extra measures to support
their claims
Perspective 3: OrganizationPerspective 3: Organization
There is no standardized way of organizing and
conducting performance tests
– Performance tests are scattered throughout the (test)
code
– Previous results and instructions for executing a
performance test are included in code comments
Perspective 4:Types of performance testsPerspective 4:Types of performance tests
Type 1: Performance smoke test (50% of the projects)
― Test a particular use case
Type 2: Microbenchmarks (32%)
― Test smaller units of code
Type 3: One-shot performance tests (15%)
― Test a known buggy case
Type 4: Performance assertions (5%)
― ‘4x as fast as …’
Type 5: Implicit performance tests (5%)
― ‘Test’ using data that is generated as a side-effect (e.g., execution time of a test)
Perspective 4:Types of performance testsPerspective 4:Types of performance tests
Type 1: Performance smoke test (50% of the projects)
― Test a particular use case
Type 2: Microbenchmarks (32%)
― Test smaller units of code
Type 3: One-shot performance tests (15%)
― Test a known buggy case
Type 4: Performance assertions (5%)
― ‘4x as fast as …’
Type 5: Implicit performance tests (5%)
― ‘Test’ using data that is generated as a side-effect (e.g., execution time of a test)
Perspective 4:Types of performance testsPerspective 4:Types of performance tests
Type 1: Performance smoke test (50% of the projects)
― Test a particular use case
Type 2: Microbenchmarks (32%)
― Test smaller units of code
Type 3: One-shot performance tests (15%)
― Test a known buggy case
Type 4: Performance assertions (5%)
― ‘4x as fast as …’
Type 5: Implicit performance tests (5%)
― ‘Test’ using data that is generated as a side-effect (e.g., execution time of a test)
Perspective 4:Types of performance testsPerspective 4:Types of performance tests
Type 1: Performance smoke test (50% of the projects)
― Test a particular use case
Type 2: Microbenchmarks (32%)
― Test smaller units of code
Type 3: One-shot performance tests (15%)
― Test a known buggy case
Type 4: Performance assertions (5%)
― ‘4x as fast as …’
Type 5: Implicit performance tests (5%)
― ‘Test’ using data that is generated as a side-effect (e.g., execution time of a test)
Perspective 4:Types of performance testsPerspective 4:Types of performance tests
Type 1: Performance smoke test (50% of the projects)
― Test a particular use case
Type 2: Microbenchmarks (32%)
― Test smaller units of code
Type 3: One-shot performance tests (15%)
― Test a known buggy case
Type 4: Performance assertions (5%)
― ‘4x as fast as …’
Type 5: Implicit performance tests (5%)
― ‘Test’ using data that is generated as a side-effect (e.g., execution time of a test)
Perspective 5:ToolsPerspective 5:Tools
Approach 1: Unit testing (51% of the projects)
– Usually using JUnit instead of a ‘dedicated’ performance
unit test framework
Approach 2: Stand-alone performance tests (50%)
– Custom written for the project
Approach 3: Dedicated performance testing
framework (16%)
– Usually Caliper or JMH
Perspective 5:ToolsPerspective 5:Tools
Approach 1: Unit testing (51% of the projects)
– Usually using JUnit instead of a ‘dedicated’ performance
unit test framework
Approach 2: Stand-alone performance tests (50%)
– Custom written for the project
Approach 3: Dedicated performance testing
framework (16%)
– Usually Caliper or JMH
Perspective 5:ToolsPerspective 5:Tools
Approach 1: Unit testing (51% of the projects)
– Usually using JUnit instead of a ‘dedicated’ performance
unit test framework
Approach 2: Stand-alone performance tests (50%)
– Custom written for the project
Approach 3: Dedicated performance testing
framework (16%)
– Usually Caliper or JMH
ImplicationsImplications
There is a lack of a ‘killer app’ for performance
testing
Writing performance tests is not a popular task in
open source projects
Developers want support for quick-and-dirty
performance testing
Performance testing is multi-faceted
Integration into standard CI-frameworks is key
ImplicationsImplications
There is a lack of a ‘killer app’ for performance
testing
Writing performance tests is not a popular task in
open source projects
Developers want support for quick-and-dirty
performance testing
Performance testing is multi-faceted
Integration into standard CI-frameworks is key
ImplicationsImplications
There is a lack of a ‘killer app’ for performance
testing
Writing performance tests is not a popular task in
open source projects
Developers want support for quick-and-dirty
performance testing
Performance testing is multi-faceted
Integration into standard CI-frameworks is key
ImplicationsImplications
There is a lack of a ‘killer app’ for performance
testing
Writing performance tests is not a popular task in
open source projects
Developers want support for quick-and-dirty
performance testing
Performance testing is multi-faceted
Integration into standard CI-frameworks is key
ImplicationsImplications
There is a lack of a ‘killer app’ for performance
testing
Writing performance tests is not a popular task in
open source projects
Developers want support for quick-and-dirty
performance testing
Performance testing is multi-faceted
Integration into standard CI-frameworks is key
ConclusionConclusion
● Open source developers seem to be not very enthusiastic
about writing performance tests
● There is a lack of a ‘killer app’ for performance testing
What we are doing as researchers, does not seem to
reach practice!
Cor-Paul Bezemer,bezemer@cs.queensu.ca
http://sailhome.cs.queensu.ca/~corpaul/
ConclusionConclusion
● Open source developers seem to be not very enthusiastic
about writing performance tests
● There is a lack of a ‘killer app’ for performance testing
What we are doing as researchers, does not seem to
reach practice!
Cor-Paul Bezemer,bezemer@cs.queensu.ca
http://sailhome.cs.queensu.ca/~corpaul/
ConclusionConclusion
● Open source developers seem to be not very enthusiastic
about writing performance tests
● There is a lack of a ‘killer app’ for performance testing
What we are doing as researchers, does not seem to
reach practice!
Cor-Paul Bezemer,bezemer@cs.queensu.ca
http://sailhome.cs.queensu.ca/~corpaul/
ConclusionConclusion
● Open source developers seem to be not very enthusiastic
about writing performance tests
● There is a lack of a ‘killer app’ for performance testing
What we are doing as researchers, does not seem to
reach practice!
Cor-Paul Bezemer,bezemer@cs.queensu.ca
http://sailhome.cs.queensu.ca/~corpaul/

Mais conteúdo relacionado

Mais procurados

Inrotduction of Testing
Inrotduction of TestingInrotduction of Testing
Inrotduction of Testing
Palash Ghosh
 
Model-based Testing using Microsoft’s Spec Explorer Tool: A Case Study
Model-based Testing using Microsoft’s Spec Explorer Tool: A Case StudyModel-based Testing using Microsoft’s Spec Explorer Tool: A Case Study
Model-based Testing using Microsoft’s Spec Explorer Tool: A Case Study
Dharmalingam Ganesan
 
How to organize qa process in agile speed
How to organize qa process in agile speedHow to organize qa process in agile speed
How to organize qa process in agile speed
Svitlana Dubyk
 
Software Testing Tecniques
Software Testing TecniquesSoftware Testing Tecniques
Software Testing Tecniques
ersanbilik
 
Testing using load runner performance testing
Testing using load runner  performance testingTesting using load runner  performance testing
Testing using load runner performance testing
SivaprasanthRentala1975
 

Mais procurados (20)

Qa process 2012
Qa process 2012Qa process 2012
Qa process 2012
 
ISTQB Foundation Agile Tester 2014 Training, Agile SW Development
ISTQB Foundation Agile Tester 2014 Training, Agile SW DevelopmentISTQB Foundation Agile Tester 2014 Training, Agile SW Development
ISTQB Foundation Agile Tester 2014 Training, Agile SW Development
 
Testing automation in agile environment
Testing automation in agile environmentTesting automation in agile environment
Testing automation in agile environment
 
Inrotduction of Testing
Inrotduction of TestingInrotduction of Testing
Inrotduction of Testing
 
Testing in java
Testing in javaTesting in java
Testing in java
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Scrum best practices
Scrum best practicesScrum best practices
Scrum best practices
 
Model-based Testing using Microsoft’s Spec Explorer Tool: A Case Study
Model-based Testing using Microsoft’s Spec Explorer Tool: A Case StudyModel-based Testing using Microsoft’s Spec Explorer Tool: A Case Study
Model-based Testing using Microsoft’s Spec Explorer Tool: A Case Study
 
Software Testing As a Career Path
Software Testing As a Career PathSoftware Testing As a Career Path
Software Testing As a Career Path
 
QA Process Overview
QA Process OverviewQA Process Overview
QA Process Overview
 
Automated Test Case Generation and Execution from Models
Automated Test Case Generation and Execution from ModelsAutomated Test Case Generation and Execution from Models
Automated Test Case Generation and Execution from Models
 
Test Driven Development (TDD)
Test Driven Development (TDD)Test Driven Development (TDD)
Test Driven Development (TDD)
 
How to organize qa process in agile speed
How to organize qa process in agile speedHow to organize qa process in agile speed
How to organize qa process in agile speed
 
Software Testing Tecniques
Software Testing TecniquesSoftware Testing Tecniques
Software Testing Tecniques
 
Automated Testing vs Manual Testing
Automated Testing vs Manual TestingAutomated Testing vs Manual Testing
Automated Testing vs Manual Testing
 
AJRA Test Strategy Discussion
AJRA Test Strategy DiscussionAJRA Test Strategy Discussion
AJRA Test Strategy Discussion
 
Testing using load runner performance testing
Testing using load runner  performance testingTesting using load runner  performance testing
Testing using load runner performance testing
 
Model-based Testing of a Software Bus - Applied on Core Flight Executive
Model-based Testing of a Software Bus - Applied on Core Flight ExecutiveModel-based Testing of a Software Bus - Applied on Core Flight Executive
Model-based Testing of a Software Bus - Applied on Core Flight Executive
 
ABAP Code Retreat Frankfurt 2016: TDD - Test Driven Development
ABAP Code Retreat Frankfurt 2016: TDD - Test Driven DevelopmentABAP Code Retreat Frankfurt 2016: TDD - Test Driven Development
ABAP Code Retreat Frankfurt 2016: TDD - Test Driven Development
 

Destaque

The Impact of Mislabelling on the Performance and Interpretation of Defect Pr...
The Impact of Mislabelling on the Performance and Interpretation of Defect Pr...The Impact of Mislabelling on the Performance and Interpretation of Defect Pr...
The Impact of Mislabelling on the Performance and Interpretation of Defect Pr...
Chakkrit (Kla) Tantithamthavorn
 
Logging library migrations - A case study for the Apache Software Foundation ...
Logging library migrations - A case study for the Apache Software Foundation ...Logging library migrations - A case study for the Apache Software Foundation ...
Logging library migrations - A case study for the Apache Software Foundation ...
corpaulbezemer
 
Optimizing the Performance-Related Configurations of Object-Relational Mappin...
Optimizing the Performance-Related Configurations of Object-Relational Mappin...Optimizing the Performance-Related Configurations of Object-Relational Mappin...
Optimizing the Performance-Related Configurations of Object-Relational Mappin...
corpaulbezemer
 
Ghotra icse
Ghotra icseGhotra icse
Ghotra icse
SAIL_QU
 
Automated parameter optimization should be included in future 
defect predict...
Automated parameter optimization should be included in future 
defect predict...Automated parameter optimization should be included in future 
defect predict...
Automated parameter optimization should be included in future 
defect predict...
Chakkrit (Kla) Tantithamthavorn
 

Destaque (12)

The Impact of Mislabelling on the Performance and Interpretation of Defect Pr...
The Impact of Mislabelling on the Performance and Interpretation of Defect Pr...The Impact of Mislabelling on the Performance and Interpretation of Defect Pr...
The Impact of Mislabelling on the Performance and Interpretation of Defect Pr...
 
SANER 2015 ERA track: Differential Flame Graphs
SANER 2015 ERA track: Differential Flame GraphsSANER 2015 ERA track: Differential Flame Graphs
SANER 2015 ERA track: Differential Flame Graphs
 
Logging library migrations - A case study for the Apache Software Foundation ...
Logging library migrations - A case study for the Apache Software Foundation ...Logging library migrations - A case study for the Apache Software Foundation ...
Logging library migrations - A case study for the Apache Software Foundation ...
 
London Tester Gathering Workshops 2014 - Exploratory Testing Session
London Tester Gathering Workshops 2014 - Exploratory Testing SessionLondon Tester Gathering Workshops 2014 - Exploratory Testing Session
London Tester Gathering Workshops 2014 - Exploratory Testing Session
 
Optimizing the Performance-Related Configurations of Object-Relational Mappin...
Optimizing the Performance-Related Configurations of Object-Relational Mappin...Optimizing the Performance-Related Configurations of Object-Relational Mappin...
Optimizing the Performance-Related Configurations of Object-Relational Mappin...
 
Ghotra icse
Ghotra icseGhotra icse
Ghotra icse
 
An Automated Approach for Recommending When to Stop Performance Tests
An Automated Approach for Recommending When to Stop Performance TestsAn Automated Approach for Recommending When to Stop Performance Tests
An Automated Approach for Recommending When to Stop Performance Tests
 
Automated parameter optimization should be included in future 
defect predict...
Automated parameter optimization should be included in future 
defect predict...Automated parameter optimization should be included in future 
defect predict...
Automated parameter optimization should be included in future 
defect predict...
 
How Crowd Testing Works
How Crowd Testing WorksHow Crowd Testing Works
How Crowd Testing Works
 
Crowd Testing Framework : Mobile Application Testing
Crowd Testing Framework : Mobile Application TestingCrowd Testing Framework : Mobile Application Testing
Crowd Testing Framework : Mobile Application Testing
 
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerHype vs. Reality: The AI Explainer
Hype vs. Reality: The AI Explainer
 
TEDx Manchester: AI & The Future of Work
TEDx Manchester: AI & The Future of WorkTEDx Manchester: AI & The Future of Work
TEDx Manchester: AI & The Future of Work
 

Semelhante a An exploratory study of the state of practice of performance testing in Java-based open source projects

Computer Software Testing Basics introduced.ppt
Computer Software Testing Basics introduced.pptComputer Software Testing Basics introduced.ppt
Computer Software Testing Basics introduced.ppt
TrevorChinguwo
 
Software Testing - A sneak preview By Srikanth
Software Testing - A sneak preview By SrikanthSoftware Testing - A sneak preview By Srikanth
Software Testing - A sneak preview By Srikanth
Srikanth Krishnamoorthy
 

Semelhante a An exploratory study of the state of practice of performance testing in Java-based open source projects (20)

Computer Software Testing Basics introduced.ppt
Computer Software Testing Basics introduced.pptComputer Software Testing Basics introduced.ppt
Computer Software Testing Basics introduced.ppt
 
An introduction to Software Testing and Test Management
An introduction to Software Testing and Test ManagementAn introduction to Software Testing and Test Management
An introduction to Software Testing and Test Management
 
" Performance testing for Automation QA - why and how " by Andrey Kovalenko f...
" Performance testing for Automation QA - why and how " by Andrey Kovalenko f..." Performance testing for Automation QA - why and how " by Andrey Kovalenko f...
" Performance testing for Automation QA - why and how " by Andrey Kovalenko f...
 
test
testtest
test
 
test
testtest
test
 
Preparing for Enterprise Continuous Delivery - 5 Critical Steps
Preparing for Enterprise Continuous Delivery - 5 Critical StepsPreparing for Enterprise Continuous Delivery - 5 Critical Steps
Preparing for Enterprise Continuous Delivery - 5 Critical Steps
 
Agile case studies
Agile case studiesAgile case studies
Agile case studies
 
Object Oriented Testing(OOT) presentation slides
Object Oriented Testing(OOT) presentation slidesObject Oriented Testing(OOT) presentation slides
Object Oriented Testing(OOT) presentation slides
 
Software testing
Software testingSoftware testing
Software testing
 
Software testing
Software testingSoftware testing
Software testing
 
Client Side Unit Testing
Client Side Unit TestingClient Side Unit Testing
Client Side Unit Testing
 
Manual testing
Manual testingManual testing
Manual testing
 
Testing
TestingTesting
Testing
 
Testing.ppt
Testing.pptTesting.ppt
Testing.ppt
 
Testing.ppt
Testing.pptTesting.ppt
Testing.ppt
 
Testing.ppt
Testing.pptTesting.ppt
Testing.ppt
 
Testing and Mocking Object - The Art of Mocking.
Testing and Mocking Object - The Art of Mocking.Testing and Mocking Object - The Art of Mocking.
Testing and Mocking Object - The Art of Mocking.
 
Continuous delivery is more than dev ops
Continuous delivery is more than dev opsContinuous delivery is more than dev ops
Continuous delivery is more than dev ops
 
Software Testing - A sneak preview By Srikanth
Software Testing - A sneak preview By SrikanthSoftware Testing - A sneak preview By Srikanth
Software Testing - A sneak preview By Srikanth
 
Innovations and adaptations in agile testing
Innovations and adaptations in agile testingInnovations and adaptations in agile testing
Innovations and adaptations in agile testing
 

Último

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
chiefasafspells
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 

Último (20)

%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 

An exploratory study of the state of practice of performance testing in Java-based open source projects

  • 1. An exploratory study of the state ofAn exploratory study of the state of practice of performance testing in Java-practice of performance testing in Java- based open source projectsbased open source projects Cor-Paul BezemerPhilipp Leitner
  • 2. Industrial applications depend more andIndustrial applications depend more and more on open source softwaremore on open source software
  • 3. Is the dependency on open source softwareIs the dependency on open source software justified (or wise)?justified (or wise)?
  • 4. We know (more or less) how toWe know (more or less) how to assess quality of functionality...assess quality of functionality...
  • 5. But there is no standardized way ofBut there is no standardized way of assessing performance!assessing performance!
  • 6. What is the state of practice ofWhat is the state of practice of performance testing in Java-basedperformance testing in Java-based open source software?open source software?
  • 7. We conducted an exploratoryWe conducted an exploratory study on 111 Java-based projectsstudy on 111 Java-based projects
  • 8. We conducted an exploratoryWe conducted an exploratory study on 111 Java-based projectsstudy on 111 Java-based projects ‘bench’ or ‘perf’ in the src/test directory
  • 9. 0 20 40 60 <= 100101 − 500501 − 2000 2001 − 5000 > 5000 # of Total Commits #ofProjects Commits 0 20 40 60 1 2 − 5 6 − 10 11 − 25 > 25 # of Individual Contributors #ofProjects Individual Contributors 0 20 40 60 <= 25 26 − 50 51 − 100101 − 500 > 500 # of Stars #ofProjects Stars 0 20 40 60 <= 25 26 − 50 51 − 100101 − 500 > 500 # of Watchers #ofProjects Watchers
  • 10. We manually identifiedWe manually identified (performance) tests(performance) tests ● Following process: – Search the test files for performance-related terms ● ‘perf’,‘bench’,‘fast’,‘speed’, etc. – Manually identify performance tests
  • 11. We studied performance testingWe studied performance testing from five perspectivesfrom five perspectives 1.The developers who are involved 2.The extent of performance testing 3.The organization of performance tests 4.The types of performance tests 5.The tools used
  • 12. Perspective 1: DevelopersPerspective 1: Developers Performance tests are usually done by a small group of developers (median 2 vs. median 9 developers)
  • 13. Perspective 1: DevelopersPerspective 1: Developers Performance tests are usually done by a small group of developers (median 2 vs. median 9 developers) Performance testers are usually core developers of the project
  • 14. Perspective 2:The extent of testingPerspective 2:The extent of testing The performance test suite is usually small – A few hundred LOC compared to a few thousand LOC for the functional test suite – Exceptions are Hadoop and Deuce STM (Software Transactional Memory)
  • 15. Perspective 2:The extent of testingPerspective 2:The extent of testing The performance test suite is usually small – A few hundred LOC compared to a few thousand LOC for the functional test suite – Exceptions are Hadoop and Deuce STM (Software Transactional Memory) Projects that claim to be the fastest/most efficient do not seem to take extra measures to support their claims
  • 16. Perspective 3: OrganizationPerspective 3: Organization There is no standardized way of organizing and conducting performance tests – Performance tests are scattered throughout the (test) code – Previous results and instructions for executing a performance test are included in code comments
  • 17. Perspective 4:Types of performance testsPerspective 4:Types of performance tests Type 1: Performance smoke test (50% of the projects) ― Test a particular use case Type 2: Microbenchmarks (32%) ― Test smaller units of code Type 3: One-shot performance tests (15%) ― Test a known buggy case Type 4: Performance assertions (5%) ― ‘4x as fast as …’ Type 5: Implicit performance tests (5%) ― ‘Test’ using data that is generated as a side-effect (e.g., execution time of a test)
  • 18. Perspective 4:Types of performance testsPerspective 4:Types of performance tests Type 1: Performance smoke test (50% of the projects) ― Test a particular use case Type 2: Microbenchmarks (32%) ― Test smaller units of code Type 3: One-shot performance tests (15%) ― Test a known buggy case Type 4: Performance assertions (5%) ― ‘4x as fast as …’ Type 5: Implicit performance tests (5%) ― ‘Test’ using data that is generated as a side-effect (e.g., execution time of a test)
  • 19. Perspective 4:Types of performance testsPerspective 4:Types of performance tests Type 1: Performance smoke test (50% of the projects) ― Test a particular use case Type 2: Microbenchmarks (32%) ― Test smaller units of code Type 3: One-shot performance tests (15%) ― Test a known buggy case Type 4: Performance assertions (5%) ― ‘4x as fast as …’ Type 5: Implicit performance tests (5%) ― ‘Test’ using data that is generated as a side-effect (e.g., execution time of a test)
  • 20. Perspective 4:Types of performance testsPerspective 4:Types of performance tests Type 1: Performance smoke test (50% of the projects) ― Test a particular use case Type 2: Microbenchmarks (32%) ― Test smaller units of code Type 3: One-shot performance tests (15%) ― Test a known buggy case Type 4: Performance assertions (5%) ― ‘4x as fast as …’ Type 5: Implicit performance tests (5%) ― ‘Test’ using data that is generated as a side-effect (e.g., execution time of a test)
  • 21. Perspective 4:Types of performance testsPerspective 4:Types of performance tests Type 1: Performance smoke test (50% of the projects) ― Test a particular use case Type 2: Microbenchmarks (32%) ― Test smaller units of code Type 3: One-shot performance tests (15%) ― Test a known buggy case Type 4: Performance assertions (5%) ― ‘4x as fast as …’ Type 5: Implicit performance tests (5%) ― ‘Test’ using data that is generated as a side-effect (e.g., execution time of a test)
  • 22. Perspective 5:ToolsPerspective 5:Tools Approach 1: Unit testing (51% of the projects) – Usually using JUnit instead of a ‘dedicated’ performance unit test framework Approach 2: Stand-alone performance tests (50%) – Custom written for the project Approach 3: Dedicated performance testing framework (16%) – Usually Caliper or JMH
  • 23. Perspective 5:ToolsPerspective 5:Tools Approach 1: Unit testing (51% of the projects) – Usually using JUnit instead of a ‘dedicated’ performance unit test framework Approach 2: Stand-alone performance tests (50%) – Custom written for the project Approach 3: Dedicated performance testing framework (16%) – Usually Caliper or JMH
  • 24. Perspective 5:ToolsPerspective 5:Tools Approach 1: Unit testing (51% of the projects) – Usually using JUnit instead of a ‘dedicated’ performance unit test framework Approach 2: Stand-alone performance tests (50%) – Custom written for the project Approach 3: Dedicated performance testing framework (16%) – Usually Caliper or JMH
  • 25. ImplicationsImplications There is a lack of a ‘killer app’ for performance testing Writing performance tests is not a popular task in open source projects Developers want support for quick-and-dirty performance testing Performance testing is multi-faceted Integration into standard CI-frameworks is key
  • 26. ImplicationsImplications There is a lack of a ‘killer app’ for performance testing Writing performance tests is not a popular task in open source projects Developers want support for quick-and-dirty performance testing Performance testing is multi-faceted Integration into standard CI-frameworks is key
  • 27. ImplicationsImplications There is a lack of a ‘killer app’ for performance testing Writing performance tests is not a popular task in open source projects Developers want support for quick-and-dirty performance testing Performance testing is multi-faceted Integration into standard CI-frameworks is key
  • 28. ImplicationsImplications There is a lack of a ‘killer app’ for performance testing Writing performance tests is not a popular task in open source projects Developers want support for quick-and-dirty performance testing Performance testing is multi-faceted Integration into standard CI-frameworks is key
  • 29. ImplicationsImplications There is a lack of a ‘killer app’ for performance testing Writing performance tests is not a popular task in open source projects Developers want support for quick-and-dirty performance testing Performance testing is multi-faceted Integration into standard CI-frameworks is key
  • 30. ConclusionConclusion ● Open source developers seem to be not very enthusiastic about writing performance tests ● There is a lack of a ‘killer app’ for performance testing What we are doing as researchers, does not seem to reach practice! Cor-Paul Bezemer,bezemer@cs.queensu.ca http://sailhome.cs.queensu.ca/~corpaul/
  • 31. ConclusionConclusion ● Open source developers seem to be not very enthusiastic about writing performance tests ● There is a lack of a ‘killer app’ for performance testing What we are doing as researchers, does not seem to reach practice! Cor-Paul Bezemer,bezemer@cs.queensu.ca http://sailhome.cs.queensu.ca/~corpaul/
  • 32. ConclusionConclusion ● Open source developers seem to be not very enthusiastic about writing performance tests ● There is a lack of a ‘killer app’ for performance testing What we are doing as researchers, does not seem to reach practice! Cor-Paul Bezemer,bezemer@cs.queensu.ca http://sailhome.cs.queensu.ca/~corpaul/
  • 33. ConclusionConclusion ● Open source developers seem to be not very enthusiastic about writing performance tests ● There is a lack of a ‘killer app’ for performance testing What we are doing as researchers, does not seem to reach practice! Cor-Paul Bezemer,bezemer@cs.queensu.ca http://sailhome.cs.queensu.ca/~corpaul/