No description
  • Python 51.4%
  • HTML 21.2%
  • Rust 13.4%
  • Java 4.7%
  • PLpgSQL 3.5%
  • Other 5.8%
Find a file
2026-01-20 10:40:01 +01:00
backend Bump to 2026.0.4 2026-01-10 11:03:56 +01:00
java Revert "test manual data insert" 2025-02-28 10:28:59 +01:00
python Update README.md 2025-02-26 08:56:06 +01:00
stress-test Fix a few typos 2026-01-06 20:50:05 +01:00
ts Update README.md 2025-01-29 15:02:05 +01:00
.copier-answers.yml Initial commit 2021-11-02 16:49:40 +01:00
.flake8 Initial commit 2021-11-02 16:49:40 +01:00
.gitignore Initial commit 2021-11-02 16:49:40 +01:00
.rgignore Never look for stuff in yarn.lock or *.min.css 2021-12-11 19:15:38 +01:00
pre-push Fix a poetry warning 2023-12-30 18:38:20 +01:00
README.md Fix a few typos 2026-01-06 20:50:05 +01:00
skyspell-ignore.toml Fix a few typos 2026-01-06 20:50:05 +01:00
tbump.toml Bump to 2026.0.4 2026-01-10 11:03:56 +01:00

HR Manager Web Application

I'm a Web application with (almost) no tests.

Test me!

Running the backend

Install Python >=3.12

Go to the backend folder

Create a copy of the .env.local file named .env

Run:

# Create a virtual environment
$ python -m venv .venv --prompt hr-db
# Activate it
$ source .venv/bin/activate
# or
.venv\Scripts\activate.bat
# Install dependencies
$ pip install -r requirements.txt
# Migrate the database
$ python manage.py migrate
# Run the server
$ python manage.py runserver

Part 1 - exploratory testing

Do not look inside the backend/ folder yet - you're doing black-box testing at this point.

Step 1

Do some manual, exploratory testing first.

Create a test plan and run it manually - try to find as many issues as possible - and try to find different kinds of issues.

Step 2

Put all the bugs you find into a bug tracker

Part 2 - end-to-end testing

See: The Playwright Kata

Part 3 - integration tests

Step 1

  • Make sure you can run the integration test for add-team.

You'll see it only works when the database contains no other team.

Step 2

Find a strategy to handle clean separation between tests while still using the database.

Note: do NOT use the /reset_db route, that's cheating ...

Step 3

Once your done, rewrite the tests from part 2 using raw HTTP requests and SQL queries.

Some clues:

Use DBeaver to inspect the contents of the database by opening the file db.sqlite3.

Use your browser dev extensions to look at the payload of the POST requests

The tables used by the backend code can be created and dropped using the up and down sql scripts respectively.