Feature Toggles (also known as Feature Flags, Feature Flippers, or Feature Switches) consist on surrounding features (functionalities) in the code with if statements to gain more control over their release process. By surrounding a feature with a toggle (if statement), developers can decide when and for whom the feature should be available.
This repository contains all data used for the research described in the paper "How the adoption of feature toggles affects branch merges and defects in open-source projects?"
Spreadsheets and R Scripts that were used to perform the all the analyses in the paper.
We list in the following the datasets used to answer each one of the research questions:
- RQ1: Characterization (n=949)
- RQ2.1: Normalized number of merges (n=158)
- RQ2.2: Effort per merge (n=158)
- RQ2.3: Normalized merge effort (n=158)
- RQ3.1: Normalized number of defects (n=79)
- RQ3.2: Time to fix a defect (n=79)
- RQ3.3: Normalized time fixing defects (n=79)
Corpus Filtering:
- RQ1: No further actions are needed.
- RQ2: To calculate the threshold, we ran the filter_RQ2.txt R script. Based on the results, we applied a filter requiring 82 commits, before and after feature toggles (qtde_commit_s_fw and qtde_commit_c_fw), over the corpus of RQ1 and produced the corpus for RQ2.
- RQ3: To calculate the threshold, we ran the filter_RQ3.txt R script. Based on the results, we applied a filter requiring 132 commits, before and after feature toggles (qtde_commit_s_fw and qtde_commit_c_fw), over the corpus of RQ1 and produced the corpus for RQ3.
Research Questions' Analyses:
- RQ1: The analysis of the average moment of adoption for each programming language is described in dispersao.xlsx.
- RQ2.1: To obtain the results of the analysis for this research question, run RQ2_1.txt in R. The scatter plot is generated by RQ_2_1_scatter_plot.txt. The programming languages analysis is generated by RQ2_1_PROGLAN.txt.
- RQ2.2: To obtain the results of the analysis for this research question, run RQ2_2.txt in R.
- RQ2.3: To obtain the results of the analysis for this research question, run RQ2_3.txt in R.
- RQ3.1: To obtain the results of the analysis for this research question, run RQ3_1.txt in R.
- RQ3.2: To obtain the results of the analysis for this research question, run RQ3_2.txt in R.
- RQ3.3: To obtain the results of the analysis for this research question, run RQ3_3.txt in R.