SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Downloaden Sie, um offline zu lesen
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/

Weitere ähnliche Inhalte

Was ist angesagt?

Qa process 2012
Qa process 2012Qa process 2012
Qa process 2012ashokack
 
Testing automation in agile environment
Testing automation in agile environmentTesting automation in agile environment
Testing automation in agile environmentPerfecto Mobile
 
Inrotduction of Testing
Inrotduction of TestingInrotduction of Testing
Inrotduction of TestingPalash 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 StudyDharmalingam Ganesan
 
Software Testing As a Career Path
Software Testing As a Career PathSoftware Testing As a Career Path
Software Testing As a Career PathRock Interview
 
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 ModelsDharmalingam Ganesan
 
Test Driven Development (TDD)
Test Driven Development (TDD)Test Driven Development (TDD)
Test Driven Development (TDD)David Ehringer
 
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 speedSvitlana Dubyk
 
Software Testing Tecniques
Software Testing TecniquesSoftware Testing Tecniques
Software Testing Tecniquesersanbilik
 
Automated Testing vs Manual Testing
Automated Testing vs Manual TestingAutomated Testing vs Manual Testing
Automated Testing vs Manual Testingdidev
 
AJRA Test Strategy Discussion
AJRA Test Strategy DiscussionAJRA Test Strategy Discussion
AJRA Test Strategy Discussionajrhem
 
Testing using load runner performance testing
Testing using load runner  performance testingTesting using load runner  performance testing
Testing using load runner performance testingSivaprasanthRentala1975
 
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 ExecutiveDharmalingam Ganesan
 
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 DevelopmentHendrik Neumann
 

Was ist angesagt? (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
 

Andere mochten auch

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
 
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 Graphscorpaulbezemer
 
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
 
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 Sessiontonybruce
 
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 icseSAIL_QU
 
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 TestsSAIL_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
 
How Crowd Testing Works
How Crowd Testing WorksHow Crowd Testing Works
How Crowd Testing Works99tests
 
Crowd Testing Framework : Mobile Application Testing
Crowd Testing Framework : Mobile Application TestingCrowd Testing Framework : Mobile Application Testing
Crowd Testing Framework : Mobile Application Testingmomoahmedabad
 
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerHype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerLuminary Labs
 
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 WorkVolker Hirsch
 

Andere mochten auch (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
 

Ähnlich wie 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.pptTrevorChinguwo
 
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 ManagementAnuraj S.L
 
" 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...Lohika_Odessa_TechTalks
 
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 StepsXebiaLabs
 
Object Oriented Testing(OOT) presentation slides
Object Oriented Testing(OOT) presentation slidesObject Oriented Testing(OOT) presentation slides
Object Oriented Testing(OOT) presentation slidesPunjab University
 
Software testing
Software testingSoftware testing
Software testingSengu Msc
 
Software testing
Software testingSoftware testing
Software testingSengu Msc
 
Client Side Unit Testing
Client Side Unit TestingClient Side Unit Testing
Client Side Unit Testingcloud chen
 
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.Deepak Singhvi
 
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 opsAgile Montréal
 
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 SrikanthSrikanth Krishnamoorthy
 
Innovations and adaptations in agile testing
Innovations and adaptations in agile testingInnovations and adaptations in agile testing
Innovations and adaptations in agile testingSubrahmaniam S.R.V
 

Ähnlich wie 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
 

Kürzlich hochgeladen

Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
%+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
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
%+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
 
Generic or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsBert Jan Schrijver
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
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...Shane Coughlan
 
%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 tembisamasabamasaba
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
%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 masabamasaba
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...Nitya salvi
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is insideshinachiaurasa2
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
+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
 
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-learnAmarnathKambale
 

Kürzlich hochgeladen (20)

Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%+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...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
%+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...
 
Generic or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
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...
 
%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
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
%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
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
+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...
 
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
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 

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/