Recognizing the critical nature of NUT, the NUT Quality Assurance (NQA) effort has been established to improve NUT where necessary, and to maintain software quality as high as it should be.
NQA is present in many aspects and areas of NUT.
NUT promotes and uses many standards, like:
the variable names standard used in NUT,
the coding rules and best practices for developers,
the use of a software architecture limiting developments to the very minimum,
the use of standard Free and OpenSource Software components, like:
the USB library,
the Net SNMP project,
the Neon library,
the OpenSSL library (to be replaced by NSS, which is more license compliant with NUT and is FIPS 140 certified),
the TCP Wrappers library.
NUT’s quality is constently monitored using many tools, like:
a project portal with trackers for bugs, feature request, patchs and tasks
NUT QA also relies on external tools, like:
the Debian QA tools, available through the NUT Package Tracking System:
Lintian general QA checks,
piuparts automates the installation, upgrade and removal testing processes.
a runtime testing suite, which automates the inter layer communication testing (driver - upsd - upsmon / clients), that is part of Ubuntu. The NUT testing script is available in the Ubuntu QA Regression Testing suite. It installs nut, configure with for the dummy-ups driver, changes a few data and check that these are well propagated with upsc.