  We present a novel model-driven approach for testing RESTful applications. We
introduce a (i) domain-specific language for OpenAPI specifications and (ii) a
tool to support our methodology. Our DSL is inspired by session types and
enables the modelling of communication protocols between a REST client and
server. Our tool, dubbed COTS, generates (randomised) model-based test
executions and reports software defects. We evaluate the effectiveness of our
approach by applying it to test several open source applications. Our findings
indicate that our methodology can identify nuanced defects in REST APIs and
achieve comparable or superior code coverage when compared to much larger
handcrafted test suites.
