diff --git a/README.md b/README.md index db4ffd5..ca2a960 100644 --- a/README.md +++ b/README.md @@ -261,6 +261,10 @@ __[Auth Project](https://git.homyk.space/MH.Dmitrii/auth-project)__ A basic FastAPI authentication and authorization service, built without relying on the framework's built-in auth mechanisms. Implements JWT-based login, bcrypt password hashing, and a flat permission model with privilege escalation protection. A focused example of building auth logic from scratch and understanding it deeply enough to test it effectively. using console, inspector, debugging, network and storage sections +__[Nova Registration Form — QA Test Portfolio](https://git.homyk.space/MH.Dmitrii/nova-registration-form-qa)__ + +A deliberately buggy registration form (HTML/CSS/JS, no backend) built as a self-contained manual testing exercise. Includes a full test plan, test cases covering boundary value analysis, equivalence partitioning and pairwise testing, and detailed bug reports (with screenshots) for 7 seeded defects. Available in both English and Russian. Demonstrates end-to-end manual QA workflow: test planning → test design → execution → defect reporting. + __Virtualization software__ - able to set up and operate virtual machines in different software like Virtualbox, qemu, vmware, hyperv, docker and podman diff --git a/app/en/registration_form_for_test_purposes_en.html b/app/en/registration_form_for_test_purposes_en.html new file mode 100644 index 0000000..9474772 --- /dev/null +++ b/app/en/registration_form_for_test_purposes_en.html @@ -0,0 +1,329 @@ + + + + + +Nova — Create Account + + + + +
+
Nova · Sign Up
+

Create your account

+

Fill out the form below to get started with Nova.

+ +
+ +
+ +
+ + +
Username must be between 3 and 20 characters.
+
+ +
+ + +
Please enter a valid email address.
+
+ +
+ + +
Password must be at least 8 characters and contain at least one digit.
+
+ +
+ + +
Passwords do not match.
+
+ +
+ + +
Age must be between 18 and 99.
+
+ +
+ + +
+
You must accept the terms of service.
+ + +
+ +

Already have an account? Log in

+
+ + + + + diff --git a/app/ru/registration_form_for_test_purposes.html b/app/ru/registration_form_for_test_purposes.html new file mode 100644 index 0000000..2649705 --- /dev/null +++ b/app/ru/registration_form_for_test_purposes.html @@ -0,0 +1,329 @@ + + + + + +Nova — Создать аккаунт + + + + +
+
Nova · Регистрация
+

Создайте аккаунт

+

Заполните форму ниже, чтобы начать работу с Nova.

+ +
+ +
+ +
+ + +
Имя пользователя должно быть от 3 до 20 символов.
+
+ +
+ + +
Введите корректный email.
+
+ +
+ + +
Пароль должен содержать минимум 8 символов и хотя бы одну цифру.
+
+ +
+ + +
Пароли не совпадают.
+
+ +
+ + +
Возраст должен быть от 18 до 99 лет.
+
+ +
+ + +
+
Необходимо принять условия использования.
+ + +
+ +

Уже есть аккаунт? Войти

+
+ + + + + diff --git a/bug_reports/en/BUG-001-lower_age_boundary.md b/bug_reports/en/BUG-001-lower_age_boundary.md new file mode 100644 index 0000000..0104f04 --- /dev/null +++ b/bug_reports/en/BUG-001-lower_age_boundary.md @@ -0,0 +1,13 @@ +# BUG-001 — Age boundary of 18 is incorrectly rejected + +- **Priority:** High +- **Severity:** Major +- **Environment:** Chrome 128, desktop +- **Steps to reproduce:** + 1. Open the registration form + 2. Fill in all fields with valid data + 3. Enter `18` in the "Age" field + 4. Click "Create account" +- **Expected result:** Registration succeeds (the hint under the field states "registration is open from 18 years old") +- **Actual result:** The form shows the error "Age must be between 18 and 99" +- **Notes:** Looks like a classic off-by-one error in the comparison condition (`<=` used instead of `<`) diff --git a/bug_reports/en/BUG-002-checkbox.md b/bug_reports/en/BUG-002-checkbox.md new file mode 100644 index 0000000..2646a19 --- /dev/null +++ b/bug_reports/en/BUG-002-checkbox.md @@ -0,0 +1,12 @@ +# BUG-002 — Terms and conditions checkbox is not validated + +- **Priority:** Critical +- **Severity:** Blocker +- **Environment:** Chrome 128, desktop +- **Steps to reproduce:** + 1. Fill in all form fields with valid data + 2. Do **not** check the "I agree to the Terms of Service" checkbox + 3. Click "Create account" +- **Expected result:** The form blocks submission and shows an error below the checkbox +- **Actual result:** The form submits successfully, as if consent had been given +- **Impact:** Legal risk — a user can register without accepting the terms of service diff --git a/bug_reports/en/BUG-003-email.md b/bug_reports/en/BUG-003-email.md new file mode 100644 index 0000000..cc4b409 --- /dev/null +++ b/bug_reports/en/BUG-003-email.md @@ -0,0 +1,13 @@ +# BUG-003 — Email without a top-level domain passes validation + +- **Priority:** Medium +- **Severity:** Major +- **Environment:** Chrome 128, desktop +- **Steps to reproduce:** + 1. Open the registration form + 2. Fill in all fields with valid data + 3. Enter `user@mail` in the "Email" field (no `.com`, `.net`, etc.) + 4. Click "Create account" +- **Expected result:** The form shows the error "Please enter a valid email address" +- **Actual result:** The form accepts the address as valid; registration succeeds +- **Notes:** The regular expression only checks for the presence of `@`, but does not check for a top-level domain (a dot after `@`) diff --git a/bug_reports/en/BUG-004-password