Automating Integration Testing of Large-Scale Publish/Subscribe Systems

Automating Integration Testing of Large-Scale Publish/Subscribe Systems

Éric Piel (Delft University of Technology, The Netherlands), Alberto González (Delft University of Technology, The Netherlands) and Hans-Gerhard Gross (Delft University of Technology, The Netherlands)
Copyright: © 2010 |Pages: 24
DOI: 10.4018/978-1-60566-697-6.ch007
OnDemand PDF Download:
$37.50

Abstract

Publish/subscribe systems are event-based systems separated into several components which publish and subscribe events that correspond to data types. Testing each component individually is not sufficient for testing the whole system; it also requires testing the integration of those components together. In this chapter, first we identify the specificities and difficulties of integration testing of publish/subscribe systems. Afterwards, two different and complementary techniques to test the integration are presented. One is based on the random generation of a high number of event sequences and on generic oracles, in order to find a malfunctioning state of the system. The second one uses a limited number of predefined data-flows which must respect a precise behaviour, implementable with the same mechanism as unit-testing. As event-based systems are well fitted for runtime modification, the particularities of runtime testing are also introduced, and the usage in the context of integration testing is detailed. A case study presents an example of integration testing on a small system inspired by the systems used in the maritime safety and security domain.
Chapter Preview
Top

Properties Of Publish/Subscribe Platforms

The quality of a software system is a compromise between the cost of an error happening and the cost of improving the quality (cost being used with a large meaning such as time, money or physical damage). In order to improve the quality of a software system, the most commonly used technique is software testing. Due to the nature of their applications, systems based on event-driven platforms, and publish/subscribe platforms in particular, tend to have high needs for software quality and testing. Systems designed on event-driven platforms can have all kinds of applications, but some typical classes of applications are:

  • Embedded software, which controls physical devices such as cars, music players, factory robots, etc. Sensors generate input data and events that are treated by software components which, in turn, send output data to controller devices.

  • Web applications, which react to the requests from web users, process them and send the results.

  • Graphical User Interfaces (GUI), where events such as clicks or key presses trigger specific code which modifies the state of the application and eventually leads to producing outputs.

Complete Chapter List

Search this Book:
Reset