MOAR TESTS!

By Guus der Kinderen

Ever heard of XMPP Interop Testing? It’s this cool project that helps make sure different XMPP servers can all work together smoothly. Our XMPP Interop Testing project provides a suite of automated tests that can be integrated into CI/CD pipelines to verify the compliance and interoperability of XMPP server implementations.

Late last year, we reported that we had secured funding graciously provided by NLnet that allowed us to massively build out this project. This blog has been a bit quiet since then, but work has progressed. Significantly.

We have just released version 1.6.0 of all our test runners. With this release, we (again) more than doubled the total number of XMPP interop tests! By my count, our project now lets loose 933 tests on your XMPP server implementation!

The biggest chunk of work has gone into tests that verify parts of the basic XMPP protocol, notably for testing functionality that involves roster management (as specified in section 2 of RFC 6121) and for server rules for processing XML stanzas (section 8 of RFC 6121).

Additionally, a couple of new specifications are now being tested by our framework! Tests have been added for:

This table gives a complete comparison of test coverage between versions 1.5.0 and 1.6.0.

Specification v1.5.0 v1.6.0 Difference
unknown 13 13 0
RFC 6120 1 1 0
RFC 6121 11 402 391
XEP-0030 19 19 0
XEP-0045 252 252 0
XEP-0048 1 1 0
XEP-0050 4 4 0
XEP-0054 10 10 0
XEP-0060 24 24 0
XEP-0080 2 2 0
XEP-0085 1 1 0
XEP-0092 1 1 0
XEP-0096 2 2 0
XEP-0107 2 2 0
XEP-0115 12 12 0
XEP-0118 2 2 0
XEP-0133 0 44 44
XEP-0198 10 10 0
XEP-0199 2 2 0
XEP-0215 6 6 0
XEP-0232 1 1 0
XEP-0313 2 2 0
XEP-0347 3 3 0
XEP-0352 6 6 0
XEP-0363 12 12 0
XEP-0374 2 2 0
XEP-0384 4 4 0
XEP-0410 0 3 3
XEP-0421 0 67 67
XEP-0433 0 19 19
XEP-0486 4 4 0

To be clear: the work doesn’t end here. There is still significant improvement to be made (and we’ve not yet used up all of the grant either!) - we just liked to give you all an update. In the works are additional test implementations, and a couple of new test runners. That should both increase coverage, but also allow our tests to be executed on even more CI/CD platforms!

Please get in touch if you have any ideas for improvement, or other feedback. We’d love to hear from you!