A current
discussion reminded me that, while certain parts of our
cluster stack do have comprehensive regression tests, not
all parts do. However, test coverage is crucial: untested
code is broken code, and clean-ups and re-factoring become a
risky business, which impedes adding features and
maintainability.

Code that is tested can be cleaned up with confidence;
new features can be added safely, trusting that old
functionality is not broken. Good tests make for good sleep.

We need more, and better, tests for all aspects of our
cluster stack; functional and non-functional both. If I had
my test-driven way, I'd veto
every contribution that came without sufficient tests, but
that's a heavy obligation to place on contributors.
Providing tests ought to be perceived as a positive task,
not as a burden.

We need the awareness that meaningful tests are good all
by themselves, and that not just feature work is cool. Tests
ensure quality, inspire confidence, reduce risk for release
managers and contributors, lead to more modular and
maintainable code, and allow you to point out errors other
contributors make - what more could you ask for?

Hence, I am announcing the Almost Free Lunch
initiative: contribute an Open Source, reasonably
comprehensive and non-trivial test suite for one of our
components, document it so that people can actually run it
;-), and I will invite you to lunch! (I
would offer to sing songs praising the glory of you,
but that would be rather counterproductive.)

The obvious place to start with is the one which started
this discussion: our resource agent test coverage really
needs more love. But you will find all projects - Linux-HA,
Pacemaker, corosync, OCFS2, GFS2, ... - more than willing to
provide you with hints where our tests can be improved.
Contact me, or any of the projects' mailing lists, to learn
more.