Software Entropy: A Statistical Mechanics Framework for Software Testing
Jer\'onimo Fotin\'os, Juan B. Cabral

TL;DR
This paper introduces a formal, physics-inspired framework for quantifying software entropy, using statistical mechanics concepts to evaluate how test suites influence software disorder and structure.
Contribution
It presents a novel, formal definition of software entropy based on statistical mechanics, linking test suite effectiveness to entropy reduction and revealing structural test contributions.
Findings
Test suites significantly reduce software entropy.
Information weights uncover structural differences in test contributions.
Traditional metrics like code coverage do not capture these structural insights.
Abstract
The notion of software entropy is often invoked to describe the tendency of software systems to become increasingly disordered as they evolve, yet existing approaches to quantify it are largely heuristic. In this work we introduce a formal definition of software entropy grounded in statistical mechanics, interpreting test suites as executable specifications, that is, as macroscopic constraints on the space of possible program implementations. Within this framework, mutation analysis provides a practical approximation of the locally accessible microstate space, allowing entropy-related quantities to be estimated empirically. We propose metrics that quantify how test suites restrict program space, including an information-weighted measure of the distribution of constraint power across tests. Applying these ideas to a real-world project, we show how test suites reduce software entropy and…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Testing and Debugging Techniques · Software System Performance and Reliability · Software Engineering Research
