1 Introduction
The REST (Representational State Transfer) architecture [1] nowadays has dominated the design of complex web services, such as public clouds (e.g., AWS and Azure), social networking (e.g., Facebook and Twitter), and code hosting (e.g., GitHub and GitLab). Typically, a RESTful web service exposes a set of RESTful APIs. A client requests an API providing parameter values, and the service responds with data represented in a certain common exchange format (e.g., JSON or XML). According to a recent survey of 40 real-world popular RESTful web services [2], modern services involve an average of 64 APIs and over 20 parameters per API. Testing such an input space of possible parameter value combinatorics is challenging, so automated testing is indispensable.