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

Week 2: Presentation proposal (samkh & atheers) #2372

Merged
merged 2 commits into from
Aug 29, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions contributions/presentation/week2/samkh-atheers/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Assignment Proposal

## Title

Property-based testing in Python using Hypothesis

## Names and KTH ID

- Sam Khosravi ([email protected])
- Atheer Salim ([email protected])

## Deadline
- Week 2

## Category
- Presentation

## Description

We want to explain the topic of property-based testing,
where the coder defines the properties that the test cases must satisfy,
which then automatically generates test cases that enforce these properties.
We will look at how this is done in practice in Python using Hypothesis,
which is a library for creating unit tests in Python, based on property-based testing.
Instead of normal example-based testing, which we have seen in school where we manually define input-output pairs,
property-based testing instead tests a wider range of inputs to make sure that the code keeps true to the properties the coder has defined.

**Relevance**

Usually, example based testing is used when writing unit tests, where the programmer has to come up with various test inputs and define what the expected results are.
This is tedious and error-prone in the long run, thus one can utilize property-based testing to speed up the processes.
Property-based testing also explores more inputs and conditions, which makes it easier to uncover edge cases.
This is relevant to DevOps as it concerns test automation as well as being able to significantly enhance the testing suite.
Loading