RESTest
RESTest copied to clipboard
Implement "data collection and information inference" stage in RESTest
For all features that we are implementing lately such as the inference of valid input values and the inference of dependencies, and what we will implement in the future such as metamorphic testing and testing of sequences of operations, we need to implement a major feature in RESTest: a stage where we collect data and update RESTest configuration.
In such a stage, we could do things like:
- Infer valid input values with Juan Carlos' work. When sending a request and obtaining a 2XX status code, we can assume that the values used for each input parameter are all valid.
- Infer dependencies with Giuliano's work. Once that we have a set of valid input values for each parameter, we can send an arbitrary number of random requests (hundreds, thousands) with those values and, based on the status codes (2XX/4XX), infer the combinations of parameters that satisfy (or violate) dependencies.
- Infer the response body properties that contain output results. By analyzing multiple responses, we can detect those response body properties which are arrays and vary in size in different responses. Those are likely to be the properties containing the results. We need this for two things: a) Juan Carlos's approach; b) metamorphic testing.
- Infer the input parameters used for filtering, ordering, etc. the results. For metamorphic testing.
- Infer meaningful operation flows. We can test as many operation flows as we want and detect which return successful responses.