Skip to content

Analyzing Software Measurement Data

Collecting software measurement data is only the first step; deriving meaningful insights requires careful analysis. The choice of analysis technique depends heavily on the nature of the data collected, the goals of the measurement, and the design of the study or data collection process.

Before analysis, consider these aspects of your data:

  • Measurement Scale: Is the data Nominal, Ordinal, Interval, or Ratio? This dictates which statistical operations are valid (as discussed in ‘Measurement Scales’).
  • Data Distribution: Is the data normally distributed (bell curve), skewed, or does it follow another distribution? Visual inspection (histograms, density plots) and statistical tests (e.g., Shapiro-Wilk) can help determine this. Many common statistical tests assume normality.
  • Population vs. Sample: Are you analyzing data from the entire population of interest (e.g., all defects in a release) or a sample (e.g., usability scores from a subset of users)? If using samples, statistical inference is needed to draw conclusions about the population.
  • Outliers: Are there extreme values that might disproportionately affect the analysis (e.g., a single build that took hours due to a server failure)? Investigate outliers to understand their cause and decide whether to include or exclude them.

Summarize the main characteristics of your data:

  • Measures of Central Tendency: Mean (average - for interval/ratio), Median (middle value - suitable for ordinal, interval, ratio, less sensitive to outliers), Mode (most frequent value - suitable for all scales).
  • Measures of Dispersion: Range (max-min), Variance/Standard Deviation (spread around the mean - for interval/ratio), Interquartile Range (IQR - spread of middle 50% - good for skewed data or ordinal).

The goal of your measurement dictates the analysis approach:

Purpose 1: Comparing Groups (Confirming a Theory/Difference)

Section titled “Purpose 1: Comparing Groups (Confirming a Theory/Difference)”

Goal: To determine if there is a statistically significant difference between two or more groups based on a specific metric (e.g., Does Team A fix defects faster than Team B? Did the new tool reduce build times?).

Common Techniques:

  • Normally Distributed Data:
  • Non-Normally Distributed Data or Ordinal Data:
  • Nominal Data (Frequencies):

Note: Statistical significance (p-value) indicates the likelihood that the observed difference is due to chance. Consider also practical significance – is the difference large enough to matter in practice?

Purpose 2: Exploring Relationships (Correlation and Regression)

Section titled “Purpose 2: Exploring Relationships (Correlation and Regression)”

Goal: To understand if and how two or more variables are related (e.g., Is there a relationship between code complexity and defect density? Can we predict test effort based on module size?).

Common Techniques:

  • Visualization:
  • Correlation Analysis: Measures the strength and direction of a linear relationship between two variables.
  • Regression Analysis: Develops a mathematical equation to describe the relationship between a dependent variable and one or more independent variables.

Caution: Correlation does not imply causation! A relationship might exist due to chance or a hidden confounding variable.

The way data was collected influences analysis choices. For example, data from a controlled experiment allows for stronger causal inferences than purely observational data. Complex designs (e.g., factorial designs with multiple interacting factors) require more sophisticated statistical models (e.g., multi-factor ANOVA).

Various tools support data analysis:

  • Spreadsheet Software (Excel, Google Sheets): Basic analysis, descriptive statistics, simple charts.
  • Statistical Software Packages (SPSS, SAS, Minitab): Comprehensive statistical analysis capabilities.
  • Programming Languages (Python with libraries like Pandas, NumPy, SciPy, Statsmodels; R): Highly flexible and powerful for data manipulation, analysis, and visualization.
  • Business Intelligence (BI) Tools (Tableau, Power BI, Qlik): Strong focus on interactive visualization and dashboarding.

Effective analysis combines appropriate statistical techniques with domain knowledge to interpret results in context and generate actionable insights for improving software quality.