Testing protocols in Internet of Things by a formal passive technique

Protocol conformance and performance testing are two branches of testing designed to determine compliance and performance of protocol implementations to their standard. Dr. CHE Xiaoping and Dr. MAAG Stephane from Laboratory UMR 5157 of French Centre national de la recherché scientifique (CNRS) focus on converging these two kinds of testing in a same formal approach.

After several years of innovative research, they eventually created a formal approach to formally specify conformance and performance requirements. They successfully applied their approach on Extensible Messaging and Presence Protocol (XMPP) and designed a distributed testing framework for XMPP services. Their work, entitled “Testing protocols in Internet of Things by a formal passive technique”, is published in SCIENCE CHINA Information Sciences.2014, Vol 57.

Extensible Messaging and Presence Protocol (XMPP) has gained more attention as a communication protocol in Internet of Things (IoT), which is a standardized protocol by Internet Engineering Task Force (IETF) and well established in the Internet. XMPP is available for commonly used programming languages and device platforms. Several studies have investigated the potentialities of applying XMPP in IoT. With the tendency that XMPP is more and more widely used in many aspects of IoT, the problem of formally testing this protocol in a wireless environment is coming out in the wash.

Some works have tried to test the XMPP protocol under different conditions. However, they either simply evaluate the protocol performance or only test several conformance issues. It is worthwhile to note that conformance and performance testing are often associated within the protocol testing process. They are mainly applied to validate or verify the scalability and reliability of the system. Many benefits can be brought to the testing process if both inherit from the same approach. Besides, very few works have tried to formalize the performance requirements which are mandatory for accurately testing the performance of protocols.

The main objective of this work is then to propose a passive distributed testing approach, for testing both the conformance and the performance of XMPP under IoT environment, based on the formal testing technique. Although some crucial works have been done in similar testing area, they studied runtime verification of properties expressed either in linear-time temporal logic or in timed linear-time temporal logic. Different from their works focusing on testing functional properties based on formal models, this work concentrates on formally testing functional and nonfunctional properties without formal models. Also note that, this work is absorbed in the performance testing, not in performance evaluation. While performance evaluation of network protocols focuses on the evaluation of its performance, performance testing approaches aim at testing performance requirements that are expected in the protocol standard.

In this work, formalism is defined to specify conformance and performance requirements of XMPP represented as formulas tested on real protocol traces. Horn clauses based syntax is used in the approach to express properties that are checked on extracted traces. And then, since several protocol requirements need to be tested on different wireless entities, a distributed framework is designed for testing the approach on runtime wireless network execution traces.

The approach has been implemented into a distributed framework which provides the possibility to test individual nodes of a complex network environment. The results from testing several properties on large traces have been obtained with success. The subtesters and global monitor in the approach can intuitively reflect the current conformance and performance requirements conditions.

Some researchers suggested that the authors can work on building a standardized performance testing benchmark system for XMPP protocol in future. In that case, the efficiency and processing capacity of the system when massive subtesters are performed through complex network situations would be the crucial point they need to handle.