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.
