Table of Contents
Fetching ...

Evolution analysis of software quality metrics in an open-source java project: A case study on TestNG

Venkata Sai Sravya Sambaturu

TL;DR

This study analyzes how object-oriented software metrics evolve in the open-source TestNG Java framework across five releases using static analysis with Understand. It combines visual inspection with the non-parametric Wilcoxon Signed-Rank Test, where the test statistic $W$ and $p$-values (e.g., $p<0.05$) assess significant metric changes in LOC, cyclomatic complexity, LCOM, and related metrics. The findings show that LOC grows while complexity and inheritance depth tend to decrease, and overall cohesion improves, indicating maturation through refactoring and architectural improvements; stabilization emerges by version 7.11. The work provides a replicable methodology for metric-driven quality assessment in open-source projects and offers actionable guidance for maintainers on tracking and guiding design evolution.

Abstract

Software quality is critical in modern software engineering, especially in large and evolving codebases. This study analyzes the evolution of software quality metrics in five successive versions of the open-source Java testing framework TestNG. Using the static analysis tool Understand, eleven key object-oriented metrics, including cyclomatic complexity, class coupling, and lines of code, were extracted for each version. Statistical and visual analyses reveal structural trends over time. The results indicate that TestNG has matured into a more stable and maintainable framework, reflecting ongoing development, refactoring, and architectural improvements. This study provides insights into design evolution and offers recommendations for maintaining code quality in similar projects.

Evolution analysis of software quality metrics in an open-source java project: A case study on TestNG

TL;DR

This study analyzes how object-oriented software metrics evolve in the open-source TestNG Java framework across five releases using static analysis with Understand. It combines visual inspection with the non-parametric Wilcoxon Signed-Rank Test, where the test statistic and -values (e.g., ) assess significant metric changes in LOC, cyclomatic complexity, LCOM, and related metrics. The findings show that LOC grows while complexity and inheritance depth tend to decrease, and overall cohesion improves, indicating maturation through refactoring and architectural improvements; stabilization emerges by version 7.11. The work provides a replicable methodology for metric-driven quality assessment in open-source projects and offers actionable guidance for maintainers on tracking and guiding design evolution.

Abstract

Software quality is critical in modern software engineering, especially in large and evolving codebases. This study analyzes the evolution of software quality metrics in five successive versions of the open-source Java testing framework TestNG. Using the static analysis tool Understand, eleven key object-oriented metrics, including cyclomatic complexity, class coupling, and lines of code, were extracted for each version. Statistical and visual analyses reveal structural trends over time. The results indicate that TestNG has matured into a more stable and maintainable framework, reflecting ongoing development, refactoring, and architectural improvements. This study provides insights into design evolution and offers recommendations for maintaining code quality in similar projects.

Paper Structure

This paper contains 17 sections, 1 equation, 2 figures, 5 tables.

Figures (2)

  • Figure 1: Combined trends of software metrics across TestNG versions
  • Figure 2: Boxplot of LOC (Cleaned Data - Bottom 90th Percentile)