![Page 1: The Role of Patch Review in Software Evolution: An Analysis of the Mozilla Firefox](https://reader038.vdocument.in/reader038/viewer/2022110306/554e166eb4c90511778b46a9/html5/thumbnails/1.jpg)
The Role of Patch Review in Software Evolution: An Analysis of the Mozilla
FirefoxIWPSE-EVOL 2009, Amsterdam, The Netherlands
Mehrdad NurolahzadeSeyed Mehdi Nasehi Shahedul Huq Khandkar Shreya Rawal
![Page 2: The Role of Patch Review in Software Evolution: An Analysis of the Mozilla Firefox](https://reader038.vdocument.in/reader038/viewer/2022110306/554e166eb4c90511778b46a9/html5/thumbnails/2.jpg)
Patch Review
• The process of incrementally submitting and integrating patches (fix for a bug report) into a software system is a core activity related to software evolution.
• It act as a basic mechanism for validating the design and implementation of patches.
• It happens in both, commercial and FLOSS projects.
2
![Page 3: The Role of Patch Review in Software Evolution: An Analysis of the Mozilla Firefox](https://reader038.vdocument.in/reader038/viewer/2022110306/554e166eb4c90511778b46a9/html5/thumbnails/3.jpg)
Research Questions
• What are the roles of various people involved in the patch review process?
• What is the process of conducting reviews? • When are reviews performed? • What do reviewers look at and what do they
miss?
3
![Page 4: The Role of Patch Review in Software Evolution: An Analysis of the Mozilla Firefox](https://reader038.vdocument.in/reader038/viewer/2022110306/554e166eb4c90511778b46a9/html5/thumbnails/4.jpg)
Mozilla Firefox
• One of the successful FLOSS projects• Second most popular web browser
• Has both open source and commercial characteristics • 37% of code is contributed by the community
• 40 developers in Mozilla Corporation Firefox development team
• 100 daily contributors (approx)• 1000 contributors (approx)• 20-30 million users (approx)• 100,000 lines of code (approx)
4Source: Mike Beltzner, Mozilla Corporation, Web 2.0 Expo 2007
![Page 5: The Role of Patch Review in Software Evolution: An Analysis of the Mozilla Firefox](https://reader038.vdocument.in/reader038/viewer/2022110306/554e166eb4c90511778b46a9/html5/thumbnails/5.jpg)
Software Evolution in Mozilla
5
![Page 6: The Role of Patch Review in Software Evolution: An Analysis of the Mozilla Firefox](https://reader038.vdocument.in/reader038/viewer/2022110306/554e166eb4c90511778b46a9/html5/thumbnails/6.jpg)
Mozilla Development Process
Check-in
Review
Develop Patch
Discuss
File a bug
6
review?, super-review?, ui-review?
review+, super-review+, ui-review+
negative review
backed out by QA
![Page 7: The Role of Patch Review in Software Evolution: An Analysis of the Mozilla Firefox](https://reader038.vdocument.in/reader038/viewer/2022110306/554e166eb4c90511778b46a9/html5/thumbnails/7.jpg)
Overview of Research Approach
7
Codes:ReviewNegative ReviewRubber StampMerciful reviewer
Open Coding
Bug Reports
Tool for Qualitative Analysis
Observations and Patterns
Themes
Quantification
Database
Online Mozilla Bugzilla Documentation
Process
![Page 8: The Role of Patch Review in Software Evolution: An Analysis of the Mozilla Firefox](https://reader038.vdocument.in/reader038/viewer/2022110306/554e166eb4c90511778b46a9/html5/thumbnails/8.jpg)
Data Collection
8
History (Status Changes)
Attachments (Patches)
Discussion and Comments
Bug Report
![Page 9: The Role of Patch Review in Software Evolution: An Analysis of the Mozilla Firefox](https://reader038.vdocument.in/reader038/viewer/2022110306/554e166eb4c90511778b46a9/html5/thumbnails/9.jpg)
Tool for Qualitative Analysis
9
![Page 10: The Role of Patch Review in Software Evolution: An Analysis of the Mozilla Firefox](https://reader038.vdocument.in/reader038/viewer/2022110306/554e166eb4c90511778b46a9/html5/thumbnails/10.jpg)
Data Set
10
• Bug Reports (112) (2002-2009)–66 Bugs–38 Enhancements–8 New Features
• Patches (310)–Comments (1842)• 318 Reviews
![Page 11: The Role of Patch Review in Software Evolution: An Analysis of the Mozilla Firefox](https://reader038.vdocument.in/reader038/viewer/2022110306/554e166eb4c90511778b46a9/html5/thumbnails/11.jpg)
Findings
Patterns• Patchy Patcher• Merciful Reviewer• Doubtful reviewer
Observations• Module Owner Reviews• Peer Reviews• Types of Feedback• Undiscovered Errors
11
![Page 12: The Role of Patch Review in Software Evolution: An Analysis of the Mozilla Firefox](https://reader038.vdocument.in/reader038/viewer/2022110306/554e166eb4c90511778b46a9/html5/thumbnails/12.jpg)
Patterns: Patchy Patcher
12
• Submits work-in-progress patches– To get early feedback
“incomplete, still waiting for Feedback” (Bug # 343172)
– To show involvement “New patch coming soon…” (Bug
# 456214)“wip:0.1 works, but I need to fix
…” (Bug # 390614)
![Page 13: The Role of Patch Review in Software Evolution: An Analysis of the Mozilla Firefox](https://reader038.vdocument.in/reader038/viewer/2022110306/554e166eb4c90511778b46a9/html5/thumbnails/13.jpg)
Patterns: Merciful Reviewer
• When reviewers are reluctant to give a review minus (review-).• 56 negative reviews• 42 review-• Where did the 14 reviews go?
• After the review comments the reviewer changed the status from ‘review?’ to nothing.
Hypothesis: Module Owners refrain from giving review- to Newcomers
13
![Page 14: The Role of Patch Review in Software Evolution: An Analysis of the Mozilla Firefox](https://reader038.vdocument.in/reader038/viewer/2022110306/554e166eb4c90511778b46a9/html5/thumbnails/14.jpg)
Pattern: Doubtful Reviewer
• There has not been enough early feedback from community.
• A change to functionality is being made.
“Let's put this in for beta, and make sure we blog about the change a little and see the reaction” (Bug # 412862)
14
![Page 15: The Role of Patch Review in Software Evolution: An Analysis of the Mozilla Firefox](https://reader038.vdocument.in/reader038/viewer/2022110306/554e166eb4c90511778b46a9/html5/thumbnails/15.jpg)
Observation: Module Owner Reviews
• Every completed patch has to be reviewed by Module Owners unless somebody finds a flaw in it.
• 38 Module Owners• 198 Code or UI inspections• Module owners do not consider patches
based on bug report priority (but developers do).
15
![Page 16: The Role of Patch Review in Software Evolution: An Analysis of the Mozilla Firefox](https://reader038.vdocument.in/reader038/viewer/2022110306/554e166eb4c90511778b46a9/html5/thumbnails/16.jpg)
Observation: Peer Reviews
• 66 Peer Developers• Most patches (76%) do not get any Peer
Review• 80% of the comments by peers are negative or
partly negative• On an average Peer conducts review before
Module Owners
16
![Page 17: The Role of Patch Review in Software Evolution: An Analysis of the Mozilla Firefox](https://reader038.vdocument.in/reader038/viewer/2022110306/554e166eb4c90511778b46a9/html5/thumbnails/17.jpg)
Observation: Types of Reviewer Feedback
# Module Owner Comments # Peer Comments
On Implementation 63 45
On Functionality and Usability 6 31
On Documentation 9 1
On Coding Standards 7 3
17
Hypothesis: While peers are interested in functionality and usability, Module Owners are also interested in long-term maintainability of the product.
![Page 18: The Role of Patch Review in Software Evolution: An Analysis of the Mozilla Firefox](https://reader038.vdocument.in/reader038/viewer/2022110306/554e166eb4c90511778b46a9/html5/thumbnails/18.jpg)
Observation: Undiscovered Errors
• 8.4% of checked-in patches were backed out.• Performance and regression issues that remain
unidentified during the review.• It would be interesting to look if there a common
pattern in occurrence of undiscovered errors? "Based on the site breakage, re-opening and suggesting we back out
this change.“ (Bug # 412862)
18
![Page 19: The Role of Patch Review in Software Evolution: An Analysis of the Mozilla Firefox](https://reader038.vdocument.in/reader038/viewer/2022110306/554e166eb4c90511778b46a9/html5/thumbnails/19.jpg)
Conclusion
Peers play a key role in the process by providing ideas before a patch is developed and reviewing developed patches before module owners do.
19
![Page 20: The Role of Patch Review in Software Evolution: An Analysis of the Mozilla Firefox](https://reader038.vdocument.in/reader038/viewer/2022110306/554e166eb4c90511778b46a9/html5/thumbnails/20.jpg)
Conclusion
Module owners are more inclined toward the quality and consistency of developed patches.
20
![Page 21: The Role of Patch Review in Software Evolution: An Analysis of the Mozilla Firefox](https://reader038.vdocument.in/reader038/viewer/2022110306/554e166eb4c90511778b46a9/html5/thumbnails/21.jpg)
Take Away
Module owners and peer developers are
complementing each other in reviewing patches. They refine the developed solution based on their own interests and concerns.
21
![Page 22: The Role of Patch Review in Software Evolution: An Analysis of the Mozilla Firefox](https://reader038.vdocument.in/reader038/viewer/2022110306/554e166eb4c90511778b46a9/html5/thumbnails/22.jpg)
22
Debate Questions
• How quantitative/qualitative analysis of software engineering data can be facilitated?
• How empirical findings can be cross-validated with the FLOSS development communities?