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 journalArticle

Abstract

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
DOIs
Publication statusAccepted/In press - Jan 1 2019

Fingerprint

Application programming interfaces (API)
Testing
Watches
Telecommunication networks
Scalability
Defects

All Science Journal Classification (ASJC) codes

  • Software
  • Safety, Risk, Reliability and Quality

Cite this

Artho, C., Banzai, K., Gros, Q., Rousset, G., Ma, L., Kitamura, T., ... Yamamoto, M. (Accepted/In press). Model-based testing of Apache ZooKeeper: Fundamental API usage and watchers. Software Testing Verification and Reliability, [e1720]. https://doi.org/10.1002/stvr.1720

Model-based testing of Apache ZooKeeper : Fundamental API usage and watchers. / Artho, Cyrille; Banzai, Kazuaki; Gros, Quentin; Rousset, Guillaume; Ma, Lei; Kitamura, Takashi; Hagiya, Masami; Tanabe, Yoshinori; Yamamoto, Mitsuharu.

In: Software Testing Verification and Reliability, 01.01.2019.

Research output: Contribution to journalArticle

Artho, Cyrille ; Banzai, Kazuaki ; Gros, Quentin ; Rousset, Guillaume ; Ma, Lei ; Kitamura, Takashi ; Hagiya, Masami ; Tanabe, Yoshinori ; Yamamoto, Mitsuharu. / Model-based testing of Apache ZooKeeper : Fundamental API usage and watchers. In: Software Testing Verification and Reliability. 2019.
@article{1dacf24236784d8f97c54b33cfb1f1f8,
title = "Model-based testing of Apache ZooKeeper: Fundamental API usage and watchers",
abstract = "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.",
author = "Cyrille Artho and Kazuaki Banzai and Quentin Gros and Guillaume Rousset and Lei Ma and Takashi Kitamura and Masami Hagiya and Yoshinori Tanabe and Mitsuharu Yamamoto",
year = "2019",
month = "1",
day = "1",
doi = "10.1002/stvr.1720",
language = "English",
journal = "Software Testing Verification and Reliability",
issn = "0960-0833",
publisher = "John Wiley and Sons Ltd",

}

TY - JOUR

T1 - Model-based testing of Apache ZooKeeper

T2 - Fundamental API usage and watchers

AU - Artho, Cyrille

AU - Banzai, Kazuaki

AU - Gros, Quentin

AU - Rousset, Guillaume

AU - Ma, Lei

AU - Kitamura, Takashi

AU - Hagiya, Masami

AU - Tanabe, Yoshinori

AU - Yamamoto, Mitsuharu

PY - 2019/1/1

Y1 - 2019/1/1

N2 - 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.

AB - 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.

UR - http://www.scopus.com/inward/record.url?scp=85076534141&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=85076534141&partnerID=8YFLogxK

U2 - 10.1002/stvr.1720

DO - 10.1002/stvr.1720

M3 - Article

AN - SCOPUS:85076534141

JO - Software Testing Verification and Reliability

JF - Software Testing Verification and Reliability

SN - 0960-0833

M1 - e1720

ER -