Functional:
- Single bear creation (all valid bear types + valid names (ru/en/etc) + valid age (different formats)). Created bear should be returned by id and by get all request.
- Single bear creation negative cases (invalid bear types/invalid names/invalid age in different combinations + invalid json). Status code should be like 400. Created bear should NOT be returned by id and by get all request.
- Multiple bear creation
- Sequential
- Bears with same input parameters. Resulted ids should be different
- Create bears one by one. Bears should be returned by id and by get all request
- Parallel (issue a bunch of parallel creation requests - results should be consistent)
- Sequential
- Bear deletion. Delete by id. Delete by invalid id. Delete all.
- Bear update.
- Update all existing parameters (type, name, age, id) with valid values
- Update all existing parameters (type, name, age, id) with invalid values
- Update removed bear
- Parallel updates of one bear. Results should be consistent
6. Fuzzy cases - create/update/get/delete in different random combinations. Run for 10 minutes for instance. Results should be consistent.
Load:
1. Lets say we should process 100 requests per second. Generate such load. Check our service is responsive and results are consistent
Stress:
1. Create as much bears as possible while service is responsive. Generate stress load with a huge amount of invalid/valid requests from single IP. From multiple IPs.
Security:
- Use sql/js/etc inside input parameters (or just instead of json) for create/update requests.
- Use sql/js/etc inside url (as an id param for instance) for create/update/delete requests.
Rest compliance:
- Verify that every response from service contain valid response code due to rest specification