REST API Test Generation


The main focus of the API Test Generation activity is developing cIVer, advanced test generation technology for REST APIs.

clVer is a model-based biased-random test generator. It executes or exercises a sequence of tests, sending requests to the endpoint where the API is hosted. It can be seen as an ”exerciser” rather than as a test generation tool. Its output is an unbounded stream of API requests, which are generated one after another, in an online manner – each request depends on the internal state that clVer maintains.

As a model-based test generator, cIVer first analyses the OpenAPI specification of the REST API, and derives a specific model out of it. The model contains the resources which appear in the API, as well as the relations between them.

The tool supports two results checking methods: Syntactic checking of response body and semantic checking of responses. Semantic checking makes sure the response content accurately matches the generator internal state. Its main advantage is the ability to find non-atomic issues, such as race condition bugs, in complex applications which manifest as a result of several requests accessing the same resource(s) in parallel.