Computing Library › Verification Validation
Verification Validation

Software Quality for Scientific Codes

Practices that keep a research code correct and maintainable over years: version control, review, testing, and documentation.

Beyond Getting an Answer

Scientific software is often written to answer a question, then reused for a decade by people who did not write it. Software quality is the set of practices that keep such a code correct, understandable, and safe to change over that lifetime. Neglecting it produces codes that work by accident, break silently, and cannot be trusted for decisions.

Core Practices

Kronos motion — control room

The Special Burden of Science

Scientific code carries a burden ordinary software does not: the correctness criterion is often a physics result no one can independently check by inspection. A web form either submits or it does not; a transport solver can produce a plausible but wrong number that looks fine. This is why verification testing, not just functional testing, is essential, and why software quality and verification are intertwined for scientific codes.

Sustainable Development

Quality practices also protect against the loss of knowledge as people leave. A code that only its original author understands is a liability; one with tests, documentation, and a clean structure can be maintained by successors. Continuous integration enforces the practices automatically, so quality does not depend on everyone remembering to run the tests.

None of this replaces verification and validation; it enables them. A well-structured, version-controlled, tested code is one where a manufactured-solution test can be added, a regression can be caught, and a result can be reproduced. Software quality is the substrate on which credible scientific computing is built.