  This paper presents a learning-based approach to detecting failures in
reactive systems. The technique is based on inferring models of multiple
implementations of a common specification which are pair-wise cross-checked for
equivalence. Any counterexample to equivalence is flagged as suspicious and has
to be analysed manually. Hence, it is possible to find possible failures in a
semi-automatic way without prior modelling.
  We show that the approach is effective by means of a case study. For this
case study, we carried out experiments in which we learned models of five
implementations of MQTT brokers/servers, a protocol used in the Internet of
Things. Examining these models, we found several violations of the MQTT
specification. All but one of the considered implementations showed faulty
behaviour. In the analysis, we discuss effectiveness and also issues we faced.
