Add tutorial submission (Schemathesis) #2671
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Assignment Proposal
Title
REST API Fuzzing using Schemathesis
Names and KTH ID
Deadline
Category
Description
As software solutions increasingly turn to web-based stacks, it becomes paramount to include comprehensive API testing within CI pipeline processes. We believe that performing automated testing of API endpoints, in a continuous
fashion, is of great benefit to any project used by consuming clients and so it is very relevant for (aspiring) developers to get a sense of how one might do that in a systematic fashion.
Thus, we propose creating an executable tutorial that can pedagogically introduce developers unacquainted with these techniques to a specific workflow that they might use later in their professional lives. In particular, we wish to introduce learners to the Schemathesis tool, which allows for automated fuzzing of REST APIs based on an OpenAPI contract document.
We will include a simple sample project with non-obvious logic errors, guide the user to run Schemathesis and explore the potential vulnerabilities it detects, as well as show them how to use the information reported to easily fix or mitigate the problems in question.
Relevance
Automated fuzzing, especially in this particular context of REST APIs, is at the heart of automated testing, which we have discussed in week 2 of this course and is essential to allow for effective Continuous Integration without compromising robustness. Our proposed tutorial hopes to demonstrate how to use a tool like Schemathesis as a key component in a testing pipeline to complement human-written and human-driven tests to ensure all stakeholders have confidence in the system's continuous reliability.
Submission
Our tutorial is available here, with the corresponding source code in this repository.