This commit is contained in:
2026-08-30 17:52:55 +03:00
parent e66723efb9
commit 4450517226
33 changed files with 997 additions and 0 deletions
@@ -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 `<`)
+12
View File
@@ -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
+13
View File
@@ -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 `@`)
@@ -0,0 +1,12 @@
# BUG-004 — Password shorter than the stated minimum passes validation
- **Priority:** High
- **Severity:** Major
- **Environment:** Chrome 128, desktop
- **Steps to reproduce:**
1. Fill in all form fields with valid data
2. Enter `abc123` (6 characters) in both "Password" and "Confirm password"
3. Click "Create account"
- **Expected result:** Error "Password must be at least 8 characters" (as stated in the field hint)
- **Actual result:** The form accepts a 6-character password; registration succeeds
- **Notes:** Mismatch between the displayed hint/error text (8 characters) and the actual validation logic (6 characters)
@@ -0,0 +1,13 @@
# BUG-005 — Password confirmation is compared case-insensitively
- **Priority:** Critical
- **Severity:** Blocker
- **Environment:** Chrome 128, desktop
- **Steps to reproduce:**
1. Fill in all form fields with valid data
2. Enter `Secret12` in the "Password" field
3. Enter `secret12` (same string, lowercase) in "Confirm password"
4. Click "Create account"
- **Expected result:** Error "Passwords do not match" — the strings differ when case is considered
- **Actual result:** The form treats the passwords as matching; registration succeeds
- **Impact:** A user may accidentally set a password that differs from what they intended to type — risk of being unable to log in later
@@ -0,0 +1,12 @@
# BUG-006 — Minimum username length is not validated
- **Priority:** Low
- **Severity:** Minor
- **Environment:** Chrome 128, desktop
- **Steps to reproduce:**
1. Fill in the form, enter a single character in "Username", e.g. `B`
2. Fill in the remaining fields with valid data
3. Click "Create account"
- **Expected result:** Error "Username must be between 3 and 20 characters"
- **Actual result:** The form accepts a 1-character username; registration succeeds
- **Notes:** The code only checks for an empty string and the upper bound (20 characters); the lower bound is missing
@@ -0,0 +1,12 @@
# BUG-007 — Upper age boundary is not validated
- **Priority:** Medium
- **Severity:** Major
- **Environment:** Chrome 128, desktop
- **Steps to reproduce:**
1. Fill in all form fields with valid data
2. Enter `200` in the "Age" field
3. Click "Create account"
- **Expected result:** Error "Age must be between 18 and 99"
- **Actual result:** The form accepts the value `200`; registration succeeds
- **Notes:** The code only checks the lower bound (`age <= 18`); the upper bound (99) is never checked
@@ -0,0 +1,13 @@
### BUG-001 — Граница возраста 18 лет ошибочно отклоняется
- **Приоритет:** High
- **Серьёзность:** Major
- **Окружение:** Chrome 128, десктоп
- **Шаги воспроизведения:**
1. Открыть форму регистрации
2. Заполнить все поля корректными данными
3. В поле "Возраст" указать `18`
4. Нажать "Создать аккаунт"
- **Ожидаемый результат:** Регистрация проходит успешно (лимит "с 18 лет" согласно подсказке под полем)
- **Фактический результат:** Форма показывает ошибку "Возраст должен быть от 18 до 99 лет"
- **Примечание:** Похоже на классическую off-by-one ошибку в условии сравнения (`<=` вместо `<`)
+12
View File
@@ -0,0 +1,12 @@
### BUG-002 — Чекбокс согласия с условиями не валидируется
- **Приоритет:** Critical
- **Серьёзность:** Blocker
- **Окружение:** Chrome 128, десктоп
- **Шаги воспроизведения:**
1. Заполнить все поля формы корректными данными
2. **Не** отмечать чекбокс "Я согласен с условиями использования"
3. Нажать "Создать аккаунт"
- **Ожидаемый результат:** Форма блокирует отправку, показывает ошибку под чекбоксом
- **Фактический результат:** Форма отправляется успешно, как будто согласие было дано
- **Влияние:** Юридический риск — пользователь может зарегистрироваться, не приняв условия использования
+13
View File
@@ -0,0 +1,13 @@
### BUG-003 — Email без домена верхнего уровня проходит валидацию
- **Приоритет:** Medium
- **Серьёзность:** Major
- **Окружение:** Chrome 128, десктоп
- **Шаги воспроизведения:**
1. Открыть форму регистрации
2. Заполнить все поля корректными данными
3. В поле "Email" ввести `user@mail` (без `.com`/`.ru` и т.п.)
4. Нажать "Создать аккаунт"
- **Ожидаемый результат:** Форма показывает ошибку "Введите корректный email"
- **Фактический результат:** Форма принимает адрес как валидный, регистрация проходит успешно
- **Примечание:** Регулярное выражение проверяет только наличие `@`, но не проверяет домен верхнего уровня (отсутствие точки после `@`)
@@ -0,0 +1,12 @@
### BUG-004 — Пароль короче заявленного минимума проходит валидацию
- **Приоритет:** High
- **Серьёзность:** Major
- **Окружение:** Chrome 128, десктоп
- **Шаги воспроизведения:**
1. Заполнить все поля формы корректными данными
2. В поле "Пароль" и "Подтверждение пароля" ввести `abc123` (6 символов)
3. Нажать "Создать аккаунт"
- **Ожидаемый результат:** Ошибка "Пароль должен содержать минимум 8 символов" (согласно подсказке под полем)
- **Фактический результат:** Форма принимает пароль из 6 символов, регистрация проходит успешно
- **Примечание:** Рассинхрон между текстом подсказки/ошибки (8 символов) и фактической проверкой в коде (6 символов)
@@ -0,0 +1,13 @@
### BUG-005 — Подтверждение пароля сравнивается без учёта регистра
- **Приоритет:** Critical
- **Серьёзность:** Blocker
- **Окружение:** Chrome 128, десктоп
- **Шаги воспроизведения:**
1. Заполнить все поля формы корректными данными
2. В поле "Пароль" ввести `Secret12`
3. В поле "Подтверждение пароля" ввести `secret12` (та же строка, но в нижнем регистре)
4. Нажать "Создать аккаунт"
- **Ожидаемый результат:** Ошибка "Пароли не совпадают" — строки различны с учётом регистра
- **Фактический результат:** Форма считает пароли совпадающими, регистрация проходит успешно
- **Влияние:** Пользователь может случайно задать пароль, отличающийся от того, что он думает, что задал — риск невозможности входа в будущем
@@ -0,0 +1,12 @@
### BUG-006 — Минимальная длина имени пользователя не проверяется
- **Приоритет:** Low
- **Серьёзность:** Minor
- **Окружение:** Chrome 128, десктоп
- **Шаги воспроизведения:**
1. Заполнить форму, в поле "Имя пользователя" ввести один символ, например `B`
2. Остальные поля заполнить корректно
3. Нажать "Создать аккаунт"
- **Ожидаемый результат:** Ошибка "Имя пользователя должно быть от 3 до 20 символов"
- **Фактический результат:** Форма принимает имя из 1 символа, регистрация проходит успешно
- **Примечание:** В коде проверяется только пустая строка и верхняя граница (20 символов), нижняя граница отсутствует
@@ -0,0 +1,12 @@
### BUG-007 — Верхняя граница возраста не проверяется
- **Приоритет:** Medium
- **Серьёзность:** Major
- **Окружение:** Chrome 128, десктоп
- **Шаги воспроизведения:**
1. Заполнить все поля формы корректными данными
2. В поле "Возраст" ввести `200`
3. Нажать "Создать аккаунт"
- **Ожидаемый результат:** Ошибка "Возраст должен быть от 18 до 99 лет"
- **Фактический результат:** Форма принимает значение `200`, регистрация проходит успешно
- **Примечание:** В коде проверяется только нижняя граница (`age <= 18`), верхняя граница (99) не проверяется вообще