Model-based testing of Apache ZooKeeper: Fundamental API usage and watchers

Cyrille Artho, Kazuaki Banzai, Quentin Gros, Guillaume Rousset, Lei Ma, Takashi Kitamura, Masami Hagiya, Yoshinori Tanabe, Mitsuharu Yamamoto

Research output: Contribution to journalArticlepeer-review


In this paper, we extend work on model-based testing for Apache ZooKeeper, to handle watchers (triggers) and improve scalability. In a distributed asynchronous shared storage like ZooKeeper, watchers deliver notifications on state changes. They are difficult to test because watcher notifications involve an initial action that sets the watcher, followed by another action that changes the previously seen state. We show how to generate test cases for concurrent client sessions executing against ZooKeeper with the tool Modbat. The tests are verified against an oracle that takes into account all possible timings of network communication. The oracle has to verify that there exists a chain of events that triggers both the initial callback and the subsequent watcher notification. We show in detail how the oracle computes whether watch triggers are correct and how the model was adapted and improved to handle these features. Together with a new search improvement that increases both speed and accuracy, we are able to verify large test setups and confirm several defects with our model.

Original languageEnglish
Article numbere1720
JournalSoftware Testing Verification and Reliability
Issue number7-8
Publication statusPublished - Nov 1 2020

All Science Journal Classification (ASJC) codes

  • Software
  • Safety, Risk, Reliability and Quality


Dive into the research topics of 'Model-based testing of Apache ZooKeeper: Fundamental API usage and watchers'. Together they form a unique fingerprint.

Cite this