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.
The documentation toolchain uses AsciiDoc to output both HTML pages and manual pages (troff). This single point of control fills many gaps, suppresses many redundancies, and optimizes documentation management in general.
A NUT dictionary is also available (as docs/nut.dict
in NUT sources),
providing a glossary of terms related to power devices and management, as well
as partial terms, technical jargon and author names.
NUT promotes and uses many standards, such as:
the use of standard Free and OpenSource Software components, like:
NUT’s quality is constantly monitored using many tools, like:
Static code analysis:
NUT QA also relies on external tools and trackers, like:
the Debian QA tools, available through the NUT Package Tracking System:
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 packages, configures it with the dummy-ups driver, changes a few data points and checks that these are well propagated with upsc.
similar approach is explored in NIT (NUT Integration Testing) suite,
which is part of the codebase and automated with make check-NIT
;
it can also be added to default make check
activities by running
configure --enable-check-NIT
make check-NIT-devel
target, to rebuild the upsd
,
dummy-ups
, cppnit
and other programs used in the test as they iterate.
docs/security.txt
in NUT sources for up-to-date information)
to ensure a maximum runtime security level.