SlideShare a Scribd company logo
An Empirical Study of the
Effect of File Editing Patterns
on Software Quality
Feng Zhang, Foutse Khomh, Ying Zou
and Ahmed E. Hassan
2
Do developers follow some
file editing patterns?
Concurrent?
Extended?
Interrupted?
File Editing
3
Concurrent?
Extended?
Interrupted?
?
?
?
What’s the impact on
software quality?
File Editing
4
Examples
5
1. Example on concurrent editing
BugzillaTaskEditorPage.java
Frank Steffen Pingel David Green
6
1. Concurrent Editing
Several developers edit the same file
concurrently.
7
2. Example on parallel editing
AbstractTaskEditor
Page.java
Frank
TasksUiPlugin.javaPlanningPerspective
Factory.java
8
2. Parallel Editing
Multiple files are edited in parallel by the
same developer.
9
3. Example on extended editing
DiscoveryViewer.java
4.5 hours
Mylyn Project
1.25 hours
3.6 times
10
3. Extended Editing
Developers spend longer time editing a file.
(threshold: third quantile)
11
4. Example on interrupted editing
TaskCompareDialog.java
338 hours
Mylyn Project
2 hours
164 times
12
4. Interrupted Editing
There is a longer idle period during the
editing of a file.
(threshold: third quantile)
13
File Editing Patterns
Summary
1. Concurrent Editing
2. Parallel Editing
3. Extended Editing
4. Interrupted Editing
14
How to evaluate
the effect of
file editing patterns?
Time
Split Date Density of
Future Bug
File Editing
Patterns
15
Subject Systems
3,883
logs
2,722
bugs
606
bugs
524
bugs
793
logs
638
logs
Mylyn
Eclipse
Platform
PDE
16
Description of Data
Split Date: 2011-01-01
119
developers
98
bugs
2,140
files
5,070
CVS logs
17
1. Recovering File Edit History
Data Processing
2. Recovering File Change History
3. Identifying File Editing Patterns
bug Id
density of bug
18
Research Questions
RQ1: Are there different file editing patterns?
RQ2: Do file editing patterns lead to more bugs?
RQ3: Do interactions among file editing patterns
lead to more bugs?
19
RQ1: Are there different file
editing patterns?
Occurrences of file editing patterns and their interactions
0
500
1000
1500
2000
2500
1. Concurrent
2. Parallel
3. Extended
4. Interrupted
File editing patterns do exist
Combinations of patterns
Single
Pattern
NoPattern
20
RQ2: Do concurrent editing
pattern lead to more bugs?
Odds Ratio of two groups:
NC: no concurrent editing
C: concurrent editing
2.1 times more likely to experience a future bug if
concurrent editing pattern happens
21
RQ2: Level of involvement in
concurrent editing pattern
Definition of Level
average number of developers involved in a
concurrent editing of a file.
0
1
2
3
No Pattern ≤3rd quantile > 3rd quantile
2.4*
1.6Statistically significant
Not statistically significant
22
RQ2: Do parallel editing patterns
lead to more bugs?
Odds Ratio of two groups:
NP: no parallel editing
P: parallel editing
1.9 times more likely to experience a future bug if
parallel editing pattern happens
23
RQ2: Level of involvement in
parallel editing pattern
Definition of Level
average number of files edited in parallel
with a file.
0
1
2
3
4
5
No Pattern ≤3rd quantile > 3rd quantile
1.3
3.8*Statistically significant
Not statistically significant
24
RQ2: Do extended editing
patterns lead to more bugs?
1.9 times more likely to experience a future bug if
extended editing pattern happens
Odds Ratio of two groups:
NE: no extended editing
E: extended editing
25
RQ2: Level of involvement in
extended pattern
Definition of Level
average editing time of a file.
0
0.5
1
1.5
2
No Pattern ≤3rd quantile > 3rd quantile
1.0
1.9*
Statistically significant
Not statistically significant
26
RQ2: Do interrupted editing
patterns lead to more bugs?
1.6 times more likely to experience a future bug if
interrupted editing pattern happens
Odds Ratio of two groups:
NI: no interrupted editing
I: interrupted editing
27
RQ2: Level of involvement in
interrupted pattern
Definition of Level
average interruption time of a file.
0
0.5
1
1.5
2
No Pattern ≤3rd quantile > 3rd quantile
1.2
1.8*
Statistically significant
Not statistically significant
28
RQ3: Do interactions among file
editing patterns lead to more bugs?
Odds ratio of 16 groups.
0
1
2
3
4
5
6
1. Concurrent
2. Parallel
3. Extended
4. Interrupted
Combinations of patterns are more risky than
single pattern
Combinations of patterns
Single
Pattern
NoPattern
29
Conclusion
30
Concurrent Parallel
Extended Interrupted
2.1Odds
Ratio 1.9Odds
Ratio
1.9Odds
Ratio 1.6Odds
Ratio
31
Average Bug Density:
as high as 1.7 times
Single v.s. Interactions

More Related Content

What's hot

How Do Developers Toggle Breakpoints?
How Do Developers Toggle Breakpoints?How Do Developers Toggle Breakpoints?
How Do Developers Toggle Breakpoints?
Fabio Petrillo
 
Partitioning composite code changes to facilitate code review
Partitioning composite code changes to facilitate code reviewPartitioning composite code changes to facilitate code review
Partitioning composite code changes to facilitate code review
Yida Tao
 
Promise 2011: "Empirical validation of human factors on predicting issue reso...
Promise 2011: "Empirical validation of human factors on predicting issue reso...Promise 2011: "Empirical validation of human factors on predicting issue reso...
Promise 2011: "Empirical validation of human factors on predicting issue reso...
CS, NcState
 
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
Pavneet Singh Kochhar
 
Review Participation in Modern Code Review: An Empirical Study of the Android...
Review Participation in Modern Code Review: An Empirical Study of the Android...Review Participation in Modern Code Review: An Empirical Study of the Android...
Review Participation in Modern Code Review: An Empirical Study of the Android...
The University of Adelaide
 
On the Relation between Outdated Docker Containers, Severity Vulnerabilities,...
On the Relation between Outdated Docker Containers, Severity Vulnerabilities,...On the Relation between Outdated Docker Containers, Severity Vulnerabilities,...
On the Relation between Outdated Docker Containers, Severity Vulnerabilities,...
Tom Mens
 
Bug prediction based on your code history
Bug prediction based on your code historyBug prediction based on your code history
Bug prediction based on your code history
Alexey Tokar
 
Studying the Evolution of Build Systems
Studying the Evolution of Build SystemsStudying the Evolution of Build Systems
Studying the Evolution of Build Systems
SAIL_QU
 

What's hot (8)

How Do Developers Toggle Breakpoints?
How Do Developers Toggle Breakpoints?How Do Developers Toggle Breakpoints?
How Do Developers Toggle Breakpoints?
 
Partitioning composite code changes to facilitate code review
Partitioning composite code changes to facilitate code reviewPartitioning composite code changes to facilitate code review
Partitioning composite code changes to facilitate code review
 
Promise 2011: "Empirical validation of human factors on predicting issue reso...
Promise 2011: "Empirical validation of human factors on predicting issue reso...Promise 2011: "Empirical validation of human factors on predicting issue reso...
Promise 2011: "Empirical validation of human factors on predicting issue reso...
 
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
 
Review Participation in Modern Code Review: An Empirical Study of the Android...
Review Participation in Modern Code Review: An Empirical Study of the Android...Review Participation in Modern Code Review: An Empirical Study of the Android...
Review Participation in Modern Code Review: An Empirical Study of the Android...
 
On the Relation between Outdated Docker Containers, Severity Vulnerabilities,...
On the Relation between Outdated Docker Containers, Severity Vulnerabilities,...On the Relation between Outdated Docker Containers, Severity Vulnerabilities,...
On the Relation between Outdated Docker Containers, Severity Vulnerabilities,...
 
Bug prediction based on your code history
Bug prediction based on your code historyBug prediction based on your code history
Bug prediction based on your code history
 
Studying the Evolution of Build Systems
Studying the Evolution of Build SystemsStudying the Evolution of Build Systems
Studying the Evolution of Build Systems
 

Similar to An Empirical Study of the Effect of File Editing Patterns on Software Quality

130705 zephyrin soh - how developers spend their effort during maintenance ...
130705   zephyrin soh - how developers spend their effort during maintenance ...130705   zephyrin soh - how developers spend their effort during maintenance ...
130705 zephyrin soh - how developers spend their effort during maintenance ...
Ptidej Team
 
Qrs17a.ppt
Qrs17a.pptQrs17a.ppt
Qrs17a.ppt
Ptidej Team
 
Qrs17a.ppt
Qrs17a.pptQrs17a.ppt
Summarization Techniques for Code, Change, Testing and User Feedback
Summarization Techniques for Code, Change, Testing and User FeedbackSummarization Techniques for Code, Change, Testing and User Feedback
Summarization Techniques for Code, Change, Testing and User Feedback
Sebastiano Panichella
 
Computer Tools for Academic Research
Computer Tools for Academic ResearchComputer Tools for Academic Research
Computer Tools for Academic ResearchMiklos Koren
 
Scam2010 thomas presentation
Scam2010 thomas presentationScam2010 thomas presentation
Scam2010 thomas presentationSAIL_QU
 
Reproducibility of computational workflows is automated using continuous anal...
Reproducibility of computational workflows is automated using continuous anal...Reproducibility of computational workflows is automated using continuous anal...
Reproducibility of computational workflows is automated using continuous anal...
Kento Aoyama
 
Social and Technical Evolution of the Ruby on Rails Software Ecosystem
Social and Technical Evolution of the Ruby on Rails Software EcosystemSocial and Technical Evolution of the Ruby on Rails Software Ecosystem
Social and Technical Evolution of the Ruby on Rails Software Ecosystem
econst
 
Social and Technical Evolution of the Ruby on Rails Software Ecosystem
Social and Technical Evolution of the Ruby on Rails Software EcosystemSocial and Technical Evolution of the Ruby on Rails Software Ecosystem
Social and Technical Evolution of the Ruby on Rails Software Ecosystem
Tom Mens
 
Empircal Studies of Performance Bugs & Performance Analysis Approaches for La...
Empircal Studies of Performance Bugs & Performance Analysis Approaches for La...Empircal Studies of Performance Bugs & Performance Analysis Approaches for La...
Empircal Studies of Performance Bugs & Performance Analysis Approaches for La...
SAIL_QU
 
CH1.1 (1).pdf computer science department event driven programm
CH1.1 (1).pdf computer science department event driven programmCH1.1 (1).pdf computer science department event driven programm
CH1.1 (1).pdf computer science department event driven programm
girmawodajo
 
03. Agile Development
03. Agile Development03. Agile Development
03. Agile Development
Ashis Kumar Chanda
 
Spm unit v-software maintenance-intro
Spm unit v-software maintenance-introSpm unit v-software maintenance-intro
Spm unit v-software maintenance-intro
Kanchana Devi
 
The Impact of Tangled Code Changes
The Impact of Tangled Code ChangesThe Impact of Tangled Code Changes
The Impact of Tangled Code ChangesKim Herzig
 
Email2git: Extending cregit to Link Review Emails to Commits
Email2git: Extending cregit to Link Review Emails to Commits   Email2git: Extending cregit to Link Review Emails to Commits
Email2git: Extending cregit to Link Review Emails to Commits
Isabella Ferreira
 
Periodic Table of Agile Principles and Practices
Periodic Table of Agile Principles and PracticesPeriodic Table of Agile Principles and Practices
Periodic Table of Agile Principles and Practices
Jérôme Kehrli
 
Lecture - 24-25.pptx
Lecture - 24-25.pptxLecture - 24-25.pptx
Lecture - 24-25.pptx
FarHana74914
 
Adaptation of the technology of the static code analyzer for developing paral...
Adaptation of the technology of the static code analyzer for developing paral...Adaptation of the technology of the static code analyzer for developing paral...
Adaptation of the technology of the static code analyzer for developing paral...
PVS-Studio
 
The Impact of Task Granularity on Co-evolution Analyses
The Impact of Task Granularity on Co-evolution AnalysesThe Impact of Task Granularity on Co-evolution Analyses
The Impact of Task Granularity on Co-evolution Analyses
SAIL_QU
 

Similar to An Empirical Study of the Effect of File Editing Patterns on Software Quality (20)

130705 zephyrin soh - how developers spend their effort during maintenance ...
130705   zephyrin soh - how developers spend their effort during maintenance ...130705   zephyrin soh - how developers spend their effort during maintenance ...
130705 zephyrin soh - how developers spend their effort during maintenance ...
 
Qrs17a.ppt
Qrs17a.pptQrs17a.ppt
Qrs17a.ppt
 
Qrs17a.ppt
Qrs17a.pptQrs17a.ppt
Qrs17a.ppt
 
Summarization Techniques for Code, Change, Testing and User Feedback
Summarization Techniques for Code, Change, Testing and User FeedbackSummarization Techniques for Code, Change, Testing and User Feedback
Summarization Techniques for Code, Change, Testing and User Feedback
 
Computer Tools for Academic Research
Computer Tools for Academic ResearchComputer Tools for Academic Research
Computer Tools for Academic Research
 
Scam2010 thomas presentation
Scam2010 thomas presentationScam2010 thomas presentation
Scam2010 thomas presentation
 
Reproducibility of computational workflows is automated using continuous anal...
Reproducibility of computational workflows is automated using continuous anal...Reproducibility of computational workflows is automated using continuous anal...
Reproducibility of computational workflows is automated using continuous anal...
 
Social and Technical Evolution of the Ruby on Rails Software Ecosystem
Social and Technical Evolution of the Ruby on Rails Software EcosystemSocial and Technical Evolution of the Ruby on Rails Software Ecosystem
Social and Technical Evolution of the Ruby on Rails Software Ecosystem
 
Social and Technical Evolution of the Ruby on Rails Software Ecosystem
Social and Technical Evolution of the Ruby on Rails Software EcosystemSocial and Technical Evolution of the Ruby on Rails Software Ecosystem
Social and Technical Evolution of the Ruby on Rails Software Ecosystem
 
Empircal Studies of Performance Bugs & Performance Analysis Approaches for La...
Empircal Studies of Performance Bugs & Performance Analysis Approaches for La...Empircal Studies of Performance Bugs & Performance Analysis Approaches for La...
Empircal Studies of Performance Bugs & Performance Analysis Approaches for La...
 
CH1.1 (1).pdf computer science department event driven programm
CH1.1 (1).pdf computer science department event driven programmCH1.1 (1).pdf computer science department event driven programm
CH1.1 (1).pdf computer science department event driven programm
 
03. Agile Development
03. Agile Development03. Agile Development
03. Agile Development
 
Spm unit v-software maintenance-intro
Spm unit v-software maintenance-introSpm unit v-software maintenance-intro
Spm unit v-software maintenance-intro
 
The Impact of Tangled Code Changes
The Impact of Tangled Code ChangesThe Impact of Tangled Code Changes
The Impact of Tangled Code Changes
 
Email2git: Extending cregit to Link Review Emails to Commits
Email2git: Extending cregit to Link Review Emails to Commits   Email2git: Extending cregit to Link Review Emails to Commits
Email2git: Extending cregit to Link Review Emails to Commits
 
ICPC
ICPCICPC
ICPC
 
Periodic Table of Agile Principles and Practices
Periodic Table of Agile Principles and PracticesPeriodic Table of Agile Principles and Practices
Periodic Table of Agile Principles and Practices
 
Lecture - 24-25.pptx
Lecture - 24-25.pptxLecture - 24-25.pptx
Lecture - 24-25.pptx
 
Adaptation of the technology of the static code analyzer for developing paral...
Adaptation of the technology of the static code analyzer for developing paral...Adaptation of the technology of the static code analyzer for developing paral...
Adaptation of the technology of the static code analyzer for developing paral...
 
The Impact of Task Granularity on Co-evolution Analyses
The Impact of Task Granularity on Co-evolution AnalysesThe Impact of Task Granularity on Co-evolution Analyses
The Impact of Task Granularity on Co-evolution Analyses
 

Recently uploaded

Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 

Recently uploaded (20)

Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 

An Empirical Study of the Effect of File Editing Patterns on Software Quality

  • 1. An Empirical Study of the Effect of File Editing Patterns on Software Quality Feng Zhang, Foutse Khomh, Ying Zou and Ahmed E. Hassan
  • 2. 2 Do developers follow some file editing patterns? Concurrent? Extended? Interrupted? File Editing
  • 5. 5 1. Example on concurrent editing BugzillaTaskEditorPage.java Frank Steffen Pingel David Green
  • 6. 6 1. Concurrent Editing Several developers edit the same file concurrently.
  • 7. 7 2. Example on parallel editing AbstractTaskEditor Page.java Frank TasksUiPlugin.javaPlanningPerspective Factory.java
  • 8. 8 2. Parallel Editing Multiple files are edited in parallel by the same developer.
  • 9. 9 3. Example on extended editing DiscoveryViewer.java 4.5 hours Mylyn Project 1.25 hours 3.6 times
  • 10. 10 3. Extended Editing Developers spend longer time editing a file. (threshold: third quantile)
  • 11. 11 4. Example on interrupted editing TaskCompareDialog.java 338 hours Mylyn Project 2 hours 164 times
  • 12. 12 4. Interrupted Editing There is a longer idle period during the editing of a file. (threshold: third quantile)
  • 13. 13 File Editing Patterns Summary 1. Concurrent Editing 2. Parallel Editing 3. Extended Editing 4. Interrupted Editing
  • 14. 14 How to evaluate the effect of file editing patterns? Time Split Date Density of Future Bug File Editing Patterns
  • 16. 16 Description of Data Split Date: 2011-01-01 119 developers 98 bugs 2,140 files 5,070 CVS logs
  • 17. 17 1. Recovering File Edit History Data Processing 2. Recovering File Change History 3. Identifying File Editing Patterns bug Id density of bug
  • 18. 18 Research Questions RQ1: Are there different file editing patterns? RQ2: Do file editing patterns lead to more bugs? RQ3: Do interactions among file editing patterns lead to more bugs?
  • 19. 19 RQ1: Are there different file editing patterns? Occurrences of file editing patterns and their interactions 0 500 1000 1500 2000 2500 1. Concurrent 2. Parallel 3. Extended 4. Interrupted File editing patterns do exist Combinations of patterns Single Pattern NoPattern
  • 20. 20 RQ2: Do concurrent editing pattern lead to more bugs? Odds Ratio of two groups: NC: no concurrent editing C: concurrent editing 2.1 times more likely to experience a future bug if concurrent editing pattern happens
  • 21. 21 RQ2: Level of involvement in concurrent editing pattern Definition of Level average number of developers involved in a concurrent editing of a file. 0 1 2 3 No Pattern ≤3rd quantile > 3rd quantile 2.4* 1.6Statistically significant Not statistically significant
  • 22. 22 RQ2: Do parallel editing patterns lead to more bugs? Odds Ratio of two groups: NP: no parallel editing P: parallel editing 1.9 times more likely to experience a future bug if parallel editing pattern happens
  • 23. 23 RQ2: Level of involvement in parallel editing pattern Definition of Level average number of files edited in parallel with a file. 0 1 2 3 4 5 No Pattern ≤3rd quantile > 3rd quantile 1.3 3.8*Statistically significant Not statistically significant
  • 24. 24 RQ2: Do extended editing patterns lead to more bugs? 1.9 times more likely to experience a future bug if extended editing pattern happens Odds Ratio of two groups: NE: no extended editing E: extended editing
  • 25. 25 RQ2: Level of involvement in extended pattern Definition of Level average editing time of a file. 0 0.5 1 1.5 2 No Pattern ≤3rd quantile > 3rd quantile 1.0 1.9* Statistically significant Not statistically significant
  • 26. 26 RQ2: Do interrupted editing patterns lead to more bugs? 1.6 times more likely to experience a future bug if interrupted editing pattern happens Odds Ratio of two groups: NI: no interrupted editing I: interrupted editing
  • 27. 27 RQ2: Level of involvement in interrupted pattern Definition of Level average interruption time of a file. 0 0.5 1 1.5 2 No Pattern ≤3rd quantile > 3rd quantile 1.2 1.8* Statistically significant Not statistically significant
  • 28. 28 RQ3: Do interactions among file editing patterns lead to more bugs? Odds ratio of 16 groups. 0 1 2 3 4 5 6 1. Concurrent 2. Parallel 3. Extended 4. Interrupted Combinations of patterns are more risky than single pattern Combinations of patterns Single Pattern NoPattern
  • 30. 30 Concurrent Parallel Extended Interrupted 2.1Odds Ratio 1.9Odds Ratio 1.9Odds Ratio 1.6Odds Ratio
  • 31. 31 Average Bug Density: as high as 1.7 times Single v.s. Interactions