Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Executable tutorial proposal (Schemathesis) #2632

Merged
merged 2 commits into from
Oct 16, 2024
Merged

Conversation

RafDevX
Copy link
Contributor

@RafDevX RafDevX commented Oct 9, 2024

Assignment Proposal

Title

REST API Fuzzing using Schemathesis

Names and KTH ID

Deadline

  • Task 3

Category

  • Executable tutorial

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.

Co-authored-by: Sofia Edvardsson <[email protected]>
@RafDevX
Copy link
Contributor Author

RafDevX commented Oct 11, 2024

Since this PR has not yet been reviewed, and we have now had more time to try out different tools, we no longer believe that CATS is powerful enough for what we wish to demonstrate in our tutorial. As such, we would like to change our proposal to be the exact same topic, except using the tool Schemathesis as an example instead of CATS, if that works for you too.

We will update this pull request accordingly.

@RafDevX RafDevX changed the title Executable tutorial proposal (CATS) Executable tutorial proposal (Schemathesis) Oct 11, 2024
Co-authored-by: Sofia Edvardsson <[email protected]>
@sofiabobadilla
Copy link
Collaborator

Interesting.
Merging.

@RafDevX

@sofiabobadilla sofiabobadilla merged commit 3c6217b into KTH:2024 Oct 16, 2024
1 check passed
@sofiabobadilla sofiabobadilla self-assigned this Oct 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants