SlideShare a Scribd company logo
1 of 29
Pavneet Singh Kochhar1, Tegawendé F. Bissyandé2, David Lo1,
Lingxiao Jiang1
1Singapore Management University
2University of Luxembourg
2/24
Importance of Software Testing
Functionality -- Requirements
Debugging -- Software complexity
Costs -- $59 billions* for inadequate testing
What is the adoption of test cases
In open-source projects?
*G. Tassey, “The economic impacts of inadequate infrastructure for software
testing,” National Institute of Standards and Technology, RTI Project, 2002.
3/24
Objective & Contributions
Popularity of test cases
Presence of test cases – project characteristics
Influence of software development artifacts
Large Scale Study on over 20,000 GitHub projects
4/24
Dataset & Statistical computations
Downloaded over 100,000 projects from GitHub
Randomly selected 50,000 projects
 Preliminary study
Filter out projects with < 500 Lines of Code (LOC)
 20,817 projects
5/24
Dataset & Statistical computations
Lines of code
LOC* – By programming languages
Number of test cases
Count of test files
Developer contributions
Project team size
 Bug count
Tags
 Bug reporters
User names
*SLOCCount (http://www.dwheeler.com/sloccount/)
6/24
Lines of Code (LOC)
7/24
RQ1– Popularity of Test Cases
Projects % of Projects
Without Test Cases 38.34%
With Test Cases 61.65%
84.87% of the projects < 100 test cases
10.7% of the projects have >100 & < 500 cases
4.4% of the projects >500 test cases
Distribution of Test Cases
8/24
Box Plot
Median
Lower
Quartile
Upper
Quartile
Lower
Whisker
(25% of Data)
Upper
Whisker
(25% of Data)
Outliers
50% of
Data
9/24
RQ1– Popularity of Test Cases
LOC (Projects with & without Test cases)
Difference between the distributions is statistically significan
(p-value < 0.05)
10/24
RQ1– Popularity of Test Cases
LOC & Test Cases
Positive correlation between #LOC and #Test Cases (ρ=0.427)
(p-value < 0.05)
11//24
RQ1– Popularity of Test Cases
LOC & Test cases/LOC
Negative correlation between #LOC and #Test Cases/LOC (ρ=-0.451)
(p-value < 0.05)
12/24
RQ2– Developers & Test Cases
Developers (Projects with & without Test cases)
Difference between the distributions is statistically significant
(p-value < 0.05)
13/24
RQ2– Developers & Test Cases
Developers & Test cases
Weak correlation between #Developers and #Test Cases (ρ=0.207)
(p-value < 0.05)
14/24
RQ2– Developers & Test Cases
Developers & Test cases/developer
Negative correlation between Team size and #Test Cases per developer (ρ=-0.444)
(p-value < 0.05)
15/24
RQ3–Bug Count and Test Cases
Identifying bugs (Tags)
bug bug; T bug; Bug Confirmed; bugs; starter
bug; bug fix etc.
defect defect; Type-Defect; minor defect
error error; Wow error; build error; error page;
user error etc.
16/24
RQ3–Bug Count and Test Cases
Test cases & Bugs
Weak correlation between # bugs and #Test Cases (ρ=0.181)
(p-value < 0.05)
17/24
RQ4–Bug Reporters and Test Cases
Bug reporters (Projects with & without Test cases)
Difference between the distributions is statistically significant
(p-value < 0.05)
18/24
RQ4– Bug Reporters and Test Cases
Test cases & Bug reporters
Weak correlation between # bug reporters and #Test Cases (ρ=0.171)
(p-value < 0.05)
19/24
RQ5–Programming Languages and Test Cases
Projects (Top 10 Languages)
1. Java
2. Ruby
3. PHP
4. Python
5. ANSI C
6. C++
7. Objective-C
8. C#
9. JavaScript
10.Perl
20/24
RQ5–Programming Languages and Test Cases
Test Cases/Project (Top 10 Languages)
Language # of Projects # of Test Cases Test Cases/ Project
C++ 1,920 648,773 337.90
ANSI C 2,197 286,009 130.18
PHP 2,902 255,553 88.06
C# 1,042 81,334 78.05
Java 3,112 196,703 63.20
Ruby 3,016 173,864 57.64
JavaScript 819 39,070 47.70
Python 2,536 103,600 40.85
Objective-C 1,153 21,343 18.51
Perl 630 7,690 12.20
21/24
RQ5–Programming Languages and Test Cases
Test Cases (Median) (Top 10 Languages)
Distribution of test cases (C++)
22/24
23/24
Threats to Validity
Heuristics to detect test cases
Counting bugs
 Tags: bug, error, defect
 Not all projects use GitHub’s issue tracking
system
24/24
Conclusion
Findings:
o Projects with test cases are bigger in size.
o # of test cases per LOC decreases with increasing LOC.
o The more developers, the more test cases
o The more developers, the less ratio of test cases/developer
o Weak correlation between # of test cases and # of bugs
o # of test cases and # of bug reporters have weak positive correlation
o Projects written in popular languages such as C++, ANSI C & PHP
have higher mean numbers of test cases.
Future agenda:
-- Exploration of the influence of more project characteristics/metrics
-- Check with other open source datasets
-- Use language specific heuristics
25/24
Appendix
Bug Tags
27
installation rich Improvement Reporting
duplicated pat New feature community
feature mark Confirmed documentation
routing needs review In Progress categorization
optimization Samples
Feature
request
publishing
security
Unable to
reproduce
Wont fix ranker
translations nack Resolved server
ui rich Bug confirmed Fatal
TODO pat backend Build System
low priority mark low-priority MS AspNet
Sam presentation frontend OAuth2
22/23
C++ test cases
URL Language
# of test
cases
https://github.com/isis-project/WebKit cpp 166,488
https://github.com/cswei/Olympia_on_Desktop cpp 94,591
https://github.com/librelab/qtmoko-test cpp 52,039
https://github.com/mozilla/mozilla-central cpp 36,671
https://github.com/weissms/owb-mirror cpp 29,340
Distribution of test cases (C#)
29
30
RQ5–Programming Languages and Test Cases
Test Cases (Top 10 Languages)
Median
Lower
Quartile
Upper
Quartile
Lower
whisker
Upper
Whisker Outliers
50% of
Data

More Related Content

What's hot

ICSME 2016: Search-Based Peer Reviewers Recommendation in Modern Code Review
ICSME 2016: Search-Based Peer Reviewers Recommendation in Modern Code ReviewICSME 2016: Search-Based Peer Reviewers Recommendation in Modern Code Review
ICSME 2016: Search-Based Peer Reviewers Recommendation in Modern Code ReviewAli Ouni
 
On the Distribution of Test Smells in Open Source Android Applications: An Ex...
On the Distribution of Test Smells in Open Source Android Applications: An Ex...On the Distribution of Test Smells in Open Source Android Applications: An Ex...
On the Distribution of Test Smells in Open Source Android Applications: An Ex...University of Hawai‘i at Mānoa
 
A Mono- and Multi-objective Approach for Recommending Software Refactoring
A Mono- and Multi-objective Approach for Recommending Software RefactoringA Mono- and Multi-objective Approach for Recommending Software Refactoring
A Mono- and Multi-objective Approach for Recommending Software RefactoringAli Ouni
 
A Survey on Automatic Software Evolution Techniques
A Survey on Automatic Software Evolution TechniquesA Survey on Automatic Software Evolution Techniques
A Survey on Automatic Software Evolution TechniquesSung Kim
 
Cross-project Defect Prediction Using A Connectivity-based Unsupervised Class...
Cross-project Defect Prediction Using A Connectivity-based Unsupervised Class...Cross-project Defect Prediction Using A Connectivity-based Unsupervised Class...
Cross-project Defect Prediction Using A Connectivity-based Unsupervised Class...Feng Zhang
 
Revisiting Code Ownership and Its Relationship with Software Quality in the S...
Revisiting Code Ownership and Its Relationship with Software Quality in the S...Revisiting Code Ownership and Its Relationship with Software Quality in the S...
Revisiting Code Ownership and Its Relationship with Software Quality in the S...The University of Adelaide
 
Recommending Software Refactoring Using Search-based Software Enginnering
Recommending Software Refactoring Using Search-based Software EnginneringRecommending Software Refactoring Using Search-based Software Enginnering
Recommending Software Refactoring Using Search-based Software EnginneringAli Ouni
 
Survey on Software Defect Prediction
Survey on Software Defect PredictionSurvey on Software Defect Prediction
Survey on Software Defect PredictionSung Kim
 
Traps detection during migration of C and C++ code to 64-bit Windows
Traps detection during migration of C and C++ code to 64-bit WindowsTraps detection during migration of C and C++ code to 64-bit Windows
Traps detection during migration of C and C++ code to 64-bit WindowsPVS-Studio
 
Source code comprehension on evolving software
Source code comprehension on evolving softwareSource code comprehension on evolving software
Source code comprehension on evolving softwareSung Kim
 
ISTQB Certified Tester Exam Question Papers and Answers - 11
ISTQB Certified Tester Exam Question Papers and Answers - 11ISTQB Certified Tester Exam Question Papers and Answers - 11
ISTQB Certified Tester Exam Question Papers and Answers - 11BDDazza
 
CrashLocator: Locating Crashing Faults Based on Crash Stacks (ISSTA 2014)
CrashLocator: Locating Crashing Faults Based on Crash Stacks (ISSTA 2014)CrashLocator: Locating Crashing Faults Based on Crash Stacks (ISSTA 2014)
CrashLocator: Locating Crashing Faults Based on Crash Stacks (ISSTA 2014)Sung Kim
 
Creating a Successful Continuous Testing Environment
Creating a Successful Continuous Testing EnvironmentCreating a Successful Continuous Testing Environment
Creating a Successful Continuous Testing EnvironmentPerfecto by Perforce
 
ICGSE2020: On the Detection of Community Smells Using Genetic Programming-bas...
ICGSE2020: On the Detection of Community Smells Using Genetic Programming-bas...ICGSE2020: On the Detection of Community Smells Using Genetic Programming-bas...
ICGSE2020: On the Detection of Community Smells Using Genetic Programming-bas...Ali Ouni
 
Using Developer Information as a Prediction Factor
Using Developer Information as a Prediction FactorUsing Developer Information as a Prediction Factor
Using Developer Information as a Prediction FactorTim Menzies
 
Staroletov testing TDD BDD MBT
Staroletov testing TDD BDD MBTStaroletov testing TDD BDD MBT
Staroletov testing TDD BDD MBTSergey Staroletov
 

What's hot (19)

ICSME 2016: Search-Based Peer Reviewers Recommendation in Modern Code Review
ICSME 2016: Search-Based Peer Reviewers Recommendation in Modern Code ReviewICSME 2016: Search-Based Peer Reviewers Recommendation in Modern Code Review
ICSME 2016: Search-Based Peer Reviewers Recommendation in Modern Code Review
 
On the Distribution of Test Smells in Open Source Android Applications: An Ex...
On the Distribution of Test Smells in Open Source Android Applications: An Ex...On the Distribution of Test Smells in Open Source Android Applications: An Ex...
On the Distribution of Test Smells in Open Source Android Applications: An Ex...
 
IDEAL: An Open-Source Identifier Name Appraisal Tool
IDEAL: An Open-Source Identifier Name Appraisal ToolIDEAL: An Open-Source Identifier Name Appraisal Tool
IDEAL: An Open-Source Identifier Name Appraisal Tool
 
A Mono- and Multi-objective Approach for Recommending Software Refactoring
A Mono- and Multi-objective Approach for Recommending Software RefactoringA Mono- and Multi-objective Approach for Recommending Software Refactoring
A Mono- and Multi-objective Approach for Recommending Software Refactoring
 
A Survey on Automatic Software Evolution Techniques
A Survey on Automatic Software Evolution TechniquesA Survey on Automatic Software Evolution Techniques
A Survey on Automatic Software Evolution Techniques
 
Cross-project Defect Prediction Using A Connectivity-based Unsupervised Class...
Cross-project Defect Prediction Using A Connectivity-based Unsupervised Class...Cross-project Defect Prediction Using A Connectivity-based Unsupervised Class...
Cross-project Defect Prediction Using A Connectivity-based Unsupervised Class...
 
Revisiting Code Ownership and Its Relationship with Software Quality in the S...
Revisiting Code Ownership and Its Relationship with Software Quality in the S...Revisiting Code Ownership and Its Relationship with Software Quality in the S...
Revisiting Code Ownership and Its Relationship with Software Quality in the S...
 
Recommending Software Refactoring Using Search-based Software Enginnering
Recommending Software Refactoring Using Search-based Software EnginneringRecommending Software Refactoring Using Search-based Software Enginnering
Recommending Software Refactoring Using Search-based Software Enginnering
 
Survey on Software Defect Prediction
Survey on Software Defect PredictionSurvey on Software Defect Prediction
Survey on Software Defect Prediction
 
Traps detection during migration of C and C++ code to 64-bit Windows
Traps detection during migration of C and C++ code to 64-bit WindowsTraps detection during migration of C and C++ code to 64-bit Windows
Traps detection during migration of C and C++ code to 64-bit Windows
 
Icsm20.ppt
Icsm20.pptIcsm20.ppt
Icsm20.ppt
 
Cser13.ppt
Cser13.pptCser13.ppt
Cser13.ppt
 
Source code comprehension on evolving software
Source code comprehension on evolving softwareSource code comprehension on evolving software
Source code comprehension on evolving software
 
ISTQB Certified Tester Exam Question Papers and Answers - 11
ISTQB Certified Tester Exam Question Papers and Answers - 11ISTQB Certified Tester Exam Question Papers and Answers - 11
ISTQB Certified Tester Exam Question Papers and Answers - 11
 
CrashLocator: Locating Crashing Faults Based on Crash Stacks (ISSTA 2014)
CrashLocator: Locating Crashing Faults Based on Crash Stacks (ISSTA 2014)CrashLocator: Locating Crashing Faults Based on Crash Stacks (ISSTA 2014)
CrashLocator: Locating Crashing Faults Based on Crash Stacks (ISSTA 2014)
 
Creating a Successful Continuous Testing Environment
Creating a Successful Continuous Testing EnvironmentCreating a Successful Continuous Testing Environment
Creating a Successful Continuous Testing Environment
 
ICGSE2020: On the Detection of Community Smells Using Genetic Programming-bas...
ICGSE2020: On the Detection of Community Smells Using Genetic Programming-bas...ICGSE2020: On the Detection of Community Smells Using Genetic Programming-bas...
ICGSE2020: On the Detection of Community Smells Using Genetic Programming-bas...
 
Using Developer Information as a Prediction Factor
Using Developer Information as a Prediction FactorUsing Developer Information as a Prediction Factor
Using Developer Information as a Prediction Factor
 
Staroletov testing TDD BDD MBT
Staroletov testing TDD BDD MBTStaroletov testing TDD BDD MBT
Staroletov testing TDD BDD MBT
 

Viewers also liked

The state of quality of care in the Indianapolis Transitional Grant Area
The state of quality of care in the Indianapolis Transitional Grant AreaThe state of quality of care in the Indianapolis Transitional Grant Area
The state of quality of care in the Indianapolis Transitional Grant AreaDana D. Hines, PhD
 
DLint: dynamically checking bad coding practices in JavaScript (ISSTA'15 Slides)
DLint: dynamically checking bad coding practices in JavaScript (ISSTA'15 Slides)DLint: dynamically checking bad coding practices in JavaScript (ISSTA'15 Slides)
DLint: dynamically checking bad coding practices in JavaScript (ISSTA'15 Slides)Liang Gong
 
Do More In Less Time Part 1
Do More In Less Time Part 1Do More In Less Time Part 1
Do More In Less Time Part 1DataVelocity
 
Conformacion del consejo de la cuenca del río guarinó
Conformacion del consejo de la cuenca del río guarinóConformacion del consejo de la cuenca del río guarinó
Conformacion del consejo de la cuenca del río guarinóMaria Fernanda Abella Amaya
 
Surat larangan pungli
Surat larangan pungliSurat larangan pungli
Surat larangan punglipandirambo900
 
Linguaggio del corpo come usarlo nella seduzione
Linguaggio del corpo come usarlo nella seduzioneLinguaggio del corpo come usarlo nella seduzione
Linguaggio del corpo come usarlo nella seduzionePUATraining Italia
 
лекция 2 методы анализа
лекция 2 методы анализалекция 2 методы анализа
лекция 2 методы анализаnizhgma.ru
 
Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...
Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...
Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...Pavneet Singh Kochhar
 

Viewers also liked (17)

The state of quality of care in the Indianapolis Transitional Grant Area
The state of quality of care in the Indianapolis Transitional Grant AreaThe state of quality of care in the Indianapolis Transitional Grant Area
The state of quality of care in the Indianapolis Transitional Grant Area
 
Julu
JuluJulu
Julu
 
DLint: dynamically checking bad coding practices in JavaScript (ISSTA'15 Slides)
DLint: dynamically checking bad coding practices in JavaScript (ISSTA'15 Slides)DLint: dynamically checking bad coding practices in JavaScript (ISSTA'15 Slides)
DLint: dynamically checking bad coding practices in JavaScript (ISSTA'15 Slides)
 
Do More In Less Time Part 1
Do More In Less Time Part 1Do More In Less Time Part 1
Do More In Less Time Part 1
 
1A- Present Tense verb be
1A- Present Tense verb be1A- Present Tense verb be
1A- Present Tense verb be
 
Salak
SalakSalak
Salak
 
Bpbd
BpbdBpbd
Bpbd
 
Conformacion del consejo de la cuenca del río guarinó
Conformacion del consejo de la cuenca del río guarinóConformacion del consejo de la cuenca del río guarinó
Conformacion del consejo de la cuenca del río guarinó
 
3A - Simple Present
3A - Simple Present3A - Simple Present
3A - Simple Present
 
Surat larangan pungli
Surat larangan pungliSurat larangan pungli
Surat larangan pungli
 
Linguaggio del corpo come usarlo nella seduzione
Linguaggio del corpo come usarlo nella seduzioneLinguaggio del corpo come usarlo nella seduzione
Linguaggio del corpo come usarlo nella seduzione
 
6A - Simple Present
6A - Simple Present6A - Simple Present
6A - Simple Present
 
Setwan
SetwanSetwan
Setwan
 
лекция 2 методы анализа
лекция 2 методы анализалекция 2 методы анализа
лекция 2 методы анализа
 
Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...
Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...
Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...
 
7A - Word order in questions
7A - Word order in questions7A - Word order in questions
7A - Word order in questions
 
Winding Up
Winding UpWinding Up
Winding Up
 

Similar to An Empirical Study of Adoption of Software Testing in Open Source Projects

The Increasing Value and Complexity of Software Call for the Reevaluation of ...
The Increasing Value and Complexity of Software Call for the Reevaluation of ...The Increasing Value and Complexity of Software Call for the Reevaluation of ...
The Increasing Value and Complexity of Software Call for the Reevaluation of ...PRQA
 
Software tester_6+ yrs of experience
Software tester_6+ yrs of experienceSoftware tester_6+ yrs of experience
Software tester_6+ yrs of experiencePramod dussa
 
Software Testing - Day One
Software Testing - Day OneSoftware Testing - Day One
Software Testing - Day OneGovardhan Reddy
 
QUALITY METRICS OF TEST SUITES IN TESTDRIVEN DESIGNED APPLICATIONS
QUALITY METRICS OF TEST SUITES IN TESTDRIVEN DESIGNED APPLICATIONSQUALITY METRICS OF TEST SUITES IN TESTDRIVEN DESIGNED APPLICATIONS
QUALITY METRICS OF TEST SUITES IN TESTDRIVEN DESIGNED APPLICATIONSijseajournal
 
Lecture 7 Software Metrics.ppt
Lecture 7 Software Metrics.pptLecture 7 Software Metrics.ppt
Lecture 7 Software Metrics.pptTalhaFarooqui12
 
Statistical debuging for programs written in dynamic programming language ruby
Statistical debuging for programs written in dynamic programming language   rubyStatistical debuging for programs written in dynamic programming language   ruby
Statistical debuging for programs written in dynamic programming language rubyAdeel Akhter
 
Zero-bug Software, Mathematically Guaranteed
Zero-bug Software, Mathematically GuaranteedZero-bug Software, Mathematically Guaranteed
Zero-bug Software, Mathematically GuaranteedAshley Zupkus
 
Test Estimation
Test Estimation Test Estimation
Test Estimation SQALab
 
PROMISE 2011: "An Analysis of Trends in Productivity and Cost Drivers over Ye...
PROMISE 2011: "An Analysis of Trends in Productivity and Cost Drivers over Ye...PROMISE 2011: "An Analysis of Trends in Productivity and Cost Drivers over Ye...
PROMISE 2011: "An Analysis of Trends in Productivity and Cost Drivers over Ye...CS, NcState
 
Embedded software static analysis_Polyspace-WhitePaper_final
Embedded software static analysis_Polyspace-WhitePaper_finalEmbedded software static analysis_Polyspace-WhitePaper_final
Embedded software static analysis_Polyspace-WhitePaper_finalTAMILMARAN C
 
Creating a successful continuous testing environment by Eran Kinsbruner
Creating a successful continuous testing environment by Eran KinsbrunerCreating a successful continuous testing environment by Eran Kinsbruner
Creating a successful continuous testing environment by Eran KinsbrunerQA or the Highway
 
An Empirical Study on the Adequacy of Testing in Open Source Projects
An Empirical Study on the Adequacy of Testing in Open Source ProjectsAn Empirical Study on the Adequacy of Testing in Open Source Projects
An Empirical Study on the Adequacy of Testing in Open Source ProjectsPavneet Singh Kochhar
 
What are Software Testing Methodologies | Software Testing Techniques | Edureka
What are Software Testing Methodologies | Software Testing Techniques | EdurekaWhat are Software Testing Methodologies | Software Testing Techniques | Edureka
What are Software Testing Methodologies | Software Testing Techniques | EdurekaEdureka!
 
Software Quality Architecture And Code Audit
Software Quality Architecture And Code AuditSoftware Quality Architecture And Code Audit
Software Quality Architecture And Code AuditXebia IT Architects
 

Similar to An Empirical Study of Adoption of Software Testing in Open Source Projects (20)

The Increasing Value and Complexity of Software Call for the Reevaluation of ...
The Increasing Value and Complexity of Software Call for the Reevaluation of ...The Increasing Value and Complexity of Software Call for the Reevaluation of ...
The Increasing Value and Complexity of Software Call for the Reevaluation of ...
 
Software tester_6+ yrs of experience
Software tester_6+ yrs of experienceSoftware tester_6+ yrs of experience
Software tester_6+ yrs of experience
 
Software Testing - Day One
Software Testing - Day OneSoftware Testing - Day One
Software Testing - Day One
 
QUALITY METRICS OF TEST SUITES IN TESTDRIVEN DESIGNED APPLICATIONS
QUALITY METRICS OF TEST SUITES IN TESTDRIVEN DESIGNED APPLICATIONSQUALITY METRICS OF TEST SUITES IN TESTDRIVEN DESIGNED APPLICATIONS
QUALITY METRICS OF TEST SUITES IN TESTDRIVEN DESIGNED APPLICATIONS
 
Lecture 7 Software Metrics.ppt
Lecture 7 Software Metrics.pptLecture 7 Software Metrics.ppt
Lecture 7 Software Metrics.ppt
 
tem7
tem7tem7
tem7
 
Statistical debuging for programs written in dynamic programming language ruby
Statistical debuging for programs written in dynamic programming language   rubyStatistical debuging for programs written in dynamic programming language   ruby
Statistical debuging for programs written in dynamic programming language ruby
 
Neha_Maggu
Neha_MagguNeha_Maggu
Neha_Maggu
 
Bhavani HS
Bhavani HSBhavani HS
Bhavani HS
 
Zero-bug Software, Mathematically Guaranteed
Zero-bug Software, Mathematically GuaranteedZero-bug Software, Mathematically Guaranteed
Zero-bug Software, Mathematically Guaranteed
 
Test Estimation
Test Estimation Test Estimation
Test Estimation
 
PROMISE 2011: "An Analysis of Trends in Productivity and Cost Drivers over Ye...
PROMISE 2011: "An Analysis of Trends in Productivity and Cost Drivers over Ye...PROMISE 2011: "An Analysis of Trends in Productivity and Cost Drivers over Ye...
PROMISE 2011: "An Analysis of Trends in Productivity and Cost Drivers over Ye...
 
Software Engineering Careers
Software Engineering CareersSoftware Engineering Careers
Software Engineering Careers
 
stlc
stlcstlc
stlc
 
Embedded software static analysis_Polyspace-WhitePaper_final
Embedded software static analysis_Polyspace-WhitePaper_finalEmbedded software static analysis_Polyspace-WhitePaper_final
Embedded software static analysis_Polyspace-WhitePaper_final
 
Creating a successful continuous testing environment by Eran Kinsbruner
Creating a successful continuous testing environment by Eran KinsbrunerCreating a successful continuous testing environment by Eran Kinsbruner
Creating a successful continuous testing environment by Eran Kinsbruner
 
An Empirical Study on the Adequacy of Testing in Open Source Projects
An Empirical Study on the Adequacy of Testing in Open Source ProjectsAn Empirical Study on the Adequacy of Testing in Open Source Projects
An Empirical Study on the Adequacy of Testing in Open Source Projects
 
What are Software Testing Methodologies | Software Testing Techniques | Edureka
What are Software Testing Methodologies | Software Testing Techniques | EdurekaWhat are Software Testing Methodologies | Software Testing Techniques | Edureka
What are Software Testing Methodologies | Software Testing Techniques | Edureka
 
Software Quality Architecture And Code Audit
Software Quality Architecture And Code AuditSoftware Quality Architecture And Code Audit
Software Quality Architecture And Code Audit
 
Software testing
Software testingSoftware testing
Software testing
 

More from Pavneet Singh Kochhar

Mining Testing Questions on Stack Overflow
Mining Testing Questions on Stack OverflowMining Testing Questions on Stack Overflow
Mining Testing Questions on Stack OverflowPavneet Singh Kochhar
 
An Exploratory Study of Functionality and Learning Resources of WebAPIs on Pr...
An Exploratory Study of Functionality and Learning Resources of WebAPIs on Pr...An Exploratory Study of Functionality and Learning Resources of WebAPIs on Pr...
An Exploratory Study of Functionality and Learning Resources of WebAPIs on Pr...Pavneet Singh Kochhar
 
Practitioners’ Expectations on Automated Fault Localization
Practitioners’ Expectations on Automated Fault LocalizationPractitioners’ Expectations on Automated Fault Localization
Practitioners’ Expectations on Automated Fault LocalizationPavneet Singh Kochhar
 
A Large Scale Study of Multiple Programming Languages and Code Quality
A Large Scale Study of Multiple Programming Languages and Code QualityA Large Scale Study of Multiple Programming Languages and Code Quality
A Large Scale Study of Multiple Programming Languages and Code QualityPavneet Singh Kochhar
 
Understanding the Test Automation Culture of App Developers
Understanding the Test Automation Culture of App DevelopersUnderstanding the Test Automation Culture of App Developers
Understanding the Test Automation Culture of App DevelopersPavneet Singh Kochhar
 
Potential Biases in Bug Localization: Do They Matter?
Potential Biases in Bug Localization: Do They Matter?Potential Biases in Bug Localization: Do They Matter?
Potential Biases in Bug Localization: Do They Matter?Pavneet Singh Kochhar
 
It’s Not a Bug, It’s a Feature: Does Misclassification Affect Bug Localization?
It’s Not a Bug, It’s a Feature:Does Misclassification Affect Bug Localization?It’s Not a Bug, It’s a Feature:Does Misclassification Affect Bug Localization?
It’s Not a Bug, It’s a Feature: Does Misclassification Affect Bug Localization?Pavneet Singh Kochhar
 
Automatic Fine-Grained Issue Report Reclassification
Automatic Fine-Grained Issue Report ReclassificationAutomatic Fine-Grained Issue Report Reclassification
Automatic Fine-Grained Issue Report ReclassificationPavneet Singh Kochhar
 

More from Pavneet Singh Kochhar (9)

Mining Testing Questions on Stack Overflow
Mining Testing Questions on Stack OverflowMining Testing Questions on Stack Overflow
Mining Testing Questions on Stack Overflow
 
Cataloging GitHub Repositories
Cataloging GitHub RepositoriesCataloging GitHub Repositories
Cataloging GitHub Repositories
 
An Exploratory Study of Functionality and Learning Resources of WebAPIs on Pr...
An Exploratory Study of Functionality and Learning Resources of WebAPIs on Pr...An Exploratory Study of Functionality and Learning Resources of WebAPIs on Pr...
An Exploratory Study of Functionality and Learning Resources of WebAPIs on Pr...
 
Practitioners’ Expectations on Automated Fault Localization
Practitioners’ Expectations on Automated Fault LocalizationPractitioners’ Expectations on Automated Fault Localization
Practitioners’ Expectations on Automated Fault Localization
 
A Large Scale Study of Multiple Programming Languages and Code Quality
A Large Scale Study of Multiple Programming Languages and Code QualityA Large Scale Study of Multiple Programming Languages and Code Quality
A Large Scale Study of Multiple Programming Languages and Code Quality
 
Understanding the Test Automation Culture of App Developers
Understanding the Test Automation Culture of App DevelopersUnderstanding the Test Automation Culture of App Developers
Understanding the Test Automation Culture of App Developers
 
Potential Biases in Bug Localization: Do They Matter?
Potential Biases in Bug Localization: Do They Matter?Potential Biases in Bug Localization: Do They Matter?
Potential Biases in Bug Localization: Do They Matter?
 
It’s Not a Bug, It’s a Feature: Does Misclassification Affect Bug Localization?
It’s Not a Bug, It’s a Feature:Does Misclassification Affect Bug Localization?It’s Not a Bug, It’s a Feature:Does Misclassification Affect Bug Localization?
It’s Not a Bug, It’s a Feature: Does Misclassification Affect Bug Localization?
 
Automatic Fine-Grained Issue Report Reclassification
Automatic Fine-Grained Issue Report ReclassificationAutomatic Fine-Grained Issue Report Reclassification
Automatic Fine-Grained Issue Report Reclassification
 

Recently uploaded

Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...Akihiro Suda
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 

Recently uploaded (20)

Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 

An Empirical Study of Adoption of Software Testing in Open Source Projects

  • 1. Pavneet Singh Kochhar1, Tegawendé F. Bissyandé2, David Lo1, Lingxiao Jiang1 1Singapore Management University 2University of Luxembourg
  • 2. 2/24 Importance of Software Testing Functionality -- Requirements Debugging -- Software complexity Costs -- $59 billions* for inadequate testing What is the adoption of test cases In open-source projects? *G. Tassey, “The economic impacts of inadequate infrastructure for software testing,” National Institute of Standards and Technology, RTI Project, 2002.
  • 3. 3/24 Objective & Contributions Popularity of test cases Presence of test cases – project characteristics Influence of software development artifacts Large Scale Study on over 20,000 GitHub projects
  • 4. 4/24 Dataset & Statistical computations Downloaded over 100,000 projects from GitHub Randomly selected 50,000 projects  Preliminary study Filter out projects with < 500 Lines of Code (LOC)  20,817 projects
  • 5. 5/24 Dataset & Statistical computations Lines of code LOC* – By programming languages Number of test cases Count of test files Developer contributions Project team size  Bug count Tags  Bug reporters User names *SLOCCount (http://www.dwheeler.com/sloccount/)
  • 7. 7/24 RQ1– Popularity of Test Cases Projects % of Projects Without Test Cases 38.34% With Test Cases 61.65% 84.87% of the projects < 100 test cases 10.7% of the projects have >100 & < 500 cases 4.4% of the projects >500 test cases Distribution of Test Cases
  • 8. 8/24 Box Plot Median Lower Quartile Upper Quartile Lower Whisker (25% of Data) Upper Whisker (25% of Data) Outliers 50% of Data
  • 9. 9/24 RQ1– Popularity of Test Cases LOC (Projects with & without Test cases) Difference between the distributions is statistically significan (p-value < 0.05)
  • 10. 10/24 RQ1– Popularity of Test Cases LOC & Test Cases Positive correlation between #LOC and #Test Cases (ρ=0.427) (p-value < 0.05)
  • 11. 11//24 RQ1– Popularity of Test Cases LOC & Test cases/LOC Negative correlation between #LOC and #Test Cases/LOC (ρ=-0.451) (p-value < 0.05)
  • 12. 12/24 RQ2– Developers & Test Cases Developers (Projects with & without Test cases) Difference between the distributions is statistically significant (p-value < 0.05)
  • 13. 13/24 RQ2– Developers & Test Cases Developers & Test cases Weak correlation between #Developers and #Test Cases (ρ=0.207) (p-value < 0.05)
  • 14. 14/24 RQ2– Developers & Test Cases Developers & Test cases/developer Negative correlation between Team size and #Test Cases per developer (ρ=-0.444) (p-value < 0.05)
  • 15. 15/24 RQ3–Bug Count and Test Cases Identifying bugs (Tags) bug bug; T bug; Bug Confirmed; bugs; starter bug; bug fix etc. defect defect; Type-Defect; minor defect error error; Wow error; build error; error page; user error etc.
  • 16. 16/24 RQ3–Bug Count and Test Cases Test cases & Bugs Weak correlation between # bugs and #Test Cases (ρ=0.181) (p-value < 0.05)
  • 17. 17/24 RQ4–Bug Reporters and Test Cases Bug reporters (Projects with & without Test cases) Difference between the distributions is statistically significant (p-value < 0.05)
  • 18. 18/24 RQ4– Bug Reporters and Test Cases Test cases & Bug reporters Weak correlation between # bug reporters and #Test Cases (ρ=0.171) (p-value < 0.05)
  • 19. 19/24 RQ5–Programming Languages and Test Cases Projects (Top 10 Languages) 1. Java 2. Ruby 3. PHP 4. Python 5. ANSI C 6. C++ 7. Objective-C 8. C# 9. JavaScript 10.Perl
  • 20. 20/24 RQ5–Programming Languages and Test Cases Test Cases/Project (Top 10 Languages) Language # of Projects # of Test Cases Test Cases/ Project C++ 1,920 648,773 337.90 ANSI C 2,197 286,009 130.18 PHP 2,902 255,553 88.06 C# 1,042 81,334 78.05 Java 3,112 196,703 63.20 Ruby 3,016 173,864 57.64 JavaScript 819 39,070 47.70 Python 2,536 103,600 40.85 Objective-C 1,153 21,343 18.51 Perl 630 7,690 12.20
  • 21. 21/24 RQ5–Programming Languages and Test Cases Test Cases (Median) (Top 10 Languages)
  • 22. Distribution of test cases (C++) 22/24
  • 23. 23/24 Threats to Validity Heuristics to detect test cases Counting bugs  Tags: bug, error, defect  Not all projects use GitHub’s issue tracking system
  • 24. 24/24 Conclusion Findings: o Projects with test cases are bigger in size. o # of test cases per LOC decreases with increasing LOC. o The more developers, the more test cases o The more developers, the less ratio of test cases/developer o Weak correlation between # of test cases and # of bugs o # of test cases and # of bug reporters have weak positive correlation o Projects written in popular languages such as C++, ANSI C & PHP have higher mean numbers of test cases. Future agenda: -- Exploration of the influence of more project characteristics/metrics -- Check with other open source datasets -- Use language specific heuristics
  • 26. Bug Tags 27 installation rich Improvement Reporting duplicated pat New feature community feature mark Confirmed documentation routing needs review In Progress categorization optimization Samples Feature request publishing security Unable to reproduce Wont fix ranker translations nack Resolved server ui rich Bug confirmed Fatal TODO pat backend Build System low priority mark low-priority MS AspNet Sam presentation frontend OAuth2
  • 27. 22/23 C++ test cases URL Language # of test cases https://github.com/isis-project/WebKit cpp 166,488 https://github.com/cswei/Olympia_on_Desktop cpp 94,591 https://github.com/librelab/qtmoko-test cpp 52,039 https://github.com/mozilla/mozilla-central cpp 36,671 https://github.com/weissms/owb-mirror cpp 29,340
  • 28. Distribution of test cases (C#) 29
  • 29. 30 RQ5–Programming Languages and Test Cases Test Cases (Top 10 Languages) Median Lower Quartile Upper Quartile Lower whisker Upper Whisker Outliers 50% of Data