Model-Based API Testing of Apache ZooKeeper

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

Research output: Chapter in Book/Report/Conference proceedingConference contribution

22 Citations (Scopus)

Abstract

Apache ZooKeeper is a distributed data storage that is highly concurrent and asynchronous due to network communication, testing such a system is very challenging. Our solution using the tool 'Modbat' generates test cases for concurrent client sessions, and processes results from synchronous and asynchronous callbacks. We use an embedded model checker to compute the test oracle for non-deterministic outcomes, the oracle model evolves dynamically with each new test step. Our work has detected multiple previously unknown defects in ZooKeeper. Finally, a thorough coverage evaluation of the core classes show how code and branch coverage strongly relate to feature coverage in the model, and hence modeling effort.

Original languageEnglish
Title of host publicationProceedings - 10th IEEE International Conference on Software Testing, Verification and Validation, ICST 2017
PublisherInstitute of Electrical and Electronics Engineers Inc.
Pages288-298
Number of pages11
ISBN (Electronic)9781509060313
DOIs
Publication statusPublished - May 15 2017
Externally publishedYes
Event10th IEEE International Conference on Software Testing, Verification and Validation, ICST 2017 - Tokyo, Japan
Duration: Mar 13 2017Mar 17 2017

Publication series

NameProceedings - 10th IEEE International Conference on Software Testing, Verification and Validation, ICST 2017

Conference

Conference10th IEEE International Conference on Software Testing, Verification and Validation, ICST 2017
Country/TerritoryJapan
CityTokyo
Period3/13/173/17/17

All Science Journal Classification (ASJC) codes

  • Safety, Risk, Reliability and Quality
  • Software

Fingerprint

Dive into the research topics of 'Model-Based API Testing of Apache ZooKeeper'. Together they form a unique fingerprint.

Cite this