← Назад к вопросам
Тестирование формы регистрации
2.0 Middle🔥 171 комментариев
#Теория тестирования
Условие
Дана форма регистрации с полями:
- Пароль (минимум 8 символов, должен содержать цифру и спецсимвол)
- Подтверждение пароля
- Чекбокс согласия с условиями
- Кнопка Зарегистрироваться
Задание
Перечислите тест-кейсы для тестирования этой формы, используя техники тест-дизайна (граничные значения, классы эквивалентности, pairwise).
Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI23 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Решение
Анализ требований
Форма регистрации содержит 4 основных элемента:
- Email - почтовый адрес (валидация формата)
- Пароль - минимум 8 символов, должен содержать цифру и спецсимвол
- Подтверждение пароля - должно совпадать с паролем
- Чекбокс согласия - должен быть отмечен
- Кнопка регистрации - активируется при всех корректных данных
1. Тест-кейсы на граничные значения
| № | Тест-кейс | Входные данные | Ожидаемый результат |
|---|---|---|---|
| 1 | Минимальный валидный email | a@b.c | Допущен |
| 2 | Email с точкой перед @ | user.name@example.com | Допущен |
| 3 | Email с плюсом | user+tag@example.com | Допущен |
| 4 | Пустой email | `` (пустая строка) | Ошибка: поле обязательно |
| 5 | Email без @ | userexample.com | Ошибка: неверный формат |
| 6 | Email без домена | user@ | Ошибка: неверный домен |
| 7 | Email с двумя @ | user@@example.com | Ошибка: неверный формат |
| 8 | Email с пробелом | user @example.com | Ошибка: недопустимый символ |
| 9 | Email максимальной длины | 254 символа | Допущен (RFC 5321) |
| 10 | Email на 255 символов | 255+ символов | Ошибка: превышена длина |
Пароль
| № | Тест-кейс | Входные данные | Ожидаемый результат |
|---|---|---|---|
| 11 | Минимальный валидный пароль | Passwor1! (8 символов) | Допущен |
| 12 | Ровно 8 символов с всеми требованиями | Pass123! | Допущен |
| 13 | Пароль на 7 символов | Pass12! | Ошибка: < 8 символов |
| 14 | Пароль без цифры | Password! | Ошибка: нет цифры |
| 15 | Пароль без спецсимвола | Password1 | Ошибка: нет спецсимвола |
| 16 | Пароль только из цифр | 12345678 | Ошибка: нет букв и спецсимвола |
| 17 | Пароль только из букв | abcdefgh | Ошибка: нет цифры и спецсимвола |
| 18 | Пароль со спецсимволами | Pass123!@#$%^&*() | Допущен |
| 19 | Пупсуль с кириллицей | Пассвор1! | ? (зависит от спецификации) |
| 20 | Пароль с пробелом | Pass 123! | ? (зависит от спецификации) |
| 21 | Пустой пароль | `` | Ошибка: обязательное поле |
| 22 | Очень длинный пароль | 1000+ символов | ? (нужно проверить max length) |
Подтверждение пароля
| № | Тест-кейс | Пароль | Подтверждение | Ожидаемый результат |
|---|---|---|---|---|
| 23 | Пароли совпадают | Pass123! | Pass123! | Допущен |
| 24 | Пароли не совпадают | Pass123! | Pass124! | Ошибка: не совпадают |
| 25 | Пустое подтверждение | Pass123! | `` | Ошибка: не совпадает |
| 26 | Опечатка в подтверждении | Pass123! | Pass123 | Ошибка: не совпадает |
| 27 | Разный регистр | Pass123! | pass123! | Ошибка: чувствительно к регистру |
| 28 | Пробел в подтверждении | Pass123! | Pass123! | Ошибка: не совпадает |
Чекбокс согласия
| № | Тест-кейс | Статус чекбокса | Ожидаемый результат |
|---|---|---|---|
| 29 | Чекбокс отмечен | Отмечен | Доступна кнопка регистрации |
| 30 | Чекбокс не отмечен | Не отмечен | Кнопка регистрации отключена |
2. Классы эквивалентности
Класс 1: Валидные email адреса
- Примеры: user@example.com, test.email+tag@domain.co.uk
Класс 2: Email без @
- Примеры: userexample.com, user.example.com
Класс 3: Email с несколькими @
- Примеры: user@@example.com, user@test@example.com
Класс 4: Email с недопустимыми символами
- Примеры: user#@example.com, user$@example.com
Класс 5: Email слишком длинный
- Примеры: 256+ символов
Класс 6: Пустой email
- Пример: пустая строка
Пароль
Класс 1: Валидные пароли (≥8 символов, цифра, спецсимвол)
- Примеры: Pass123!, Test@456, MyPass99#
Класс 2: Пароли < 8 символов
- Примеры: Pass1!, Ab1@, 1234567
Класс 3: Пароли без цифры
- Примеры: Password!, MyPasswd@, Test!@#
Класс 4: Пароли без спецсимвола
- Примеры: Password1, Test1234, Mypass123
Класс 5: Пароли без букв
- Примеры: 12345!@#, 54321!@, 1!2@3#
Класс 6: Пароли с пробелами/спецсимволами
- Примеры: Pass 123!, Pass\t123!
Класс 7: Пустой пароль
- Пример: пустая строка
Подтверждение пароля
Класс 1: Совпадает с паролем
- Пример: password = Pass123!, confirm = Pass123!
Класс 2: Не совпадает с паролем
- Пример: password = Pass123!, confirm = Pass124!
Класс 3: Пустое подтверждение
- Пример: password = Pass123!, confirm = пусто
Класс 4: Частичное совпадение
- Пример: password = Pass123!, confirm = Pass12
3. Тест-кейсы Pairwise (попарное тестирование)
Проверяем комбинации параметров:
| № | Email Status | Password Status | Confirm Status | Checkbox | Expected |
|---|--------------|-----------------|----------------|-----------|-----------|
| 1 | Valid | Valid | Match | Checked | SUCCESS |
| 2 | Valid | Valid | Match | Unchecked | FAIL - условия не приняты |
| 3 | Valid | Valid | No match | Checked | FAIL - пароли не совпадают |
| 4 | Valid | Valid | No match | Unchecked | FAIL - два ошибки |
| 5 | Valid | Invalid | Match | Checked | FAIL - неверный пароль |
| 6 | Valid | Invalid | Match | Unchecked | FAIL - пароль + условия |
| 7 | Invalid | Valid | Match | Checked | FAIL - неверный email |
| 8 | Invalid | Invalid | Match | Checked | FAIL - email + пароль |
| 9 | Invalid | Invalid | Invalid | Unchecked | FAIL - все ошибки |
| 10 | Empty | Valid | Match | Checked | FAIL - обязательные поля |
| 11 | Valid | Empty | Match | Checked | FAIL - пароль обязателен |
| 12 | Valid | Valid | Empty | Checked | FAIL - подтверждение обязательно |
4. Дополнительные тест-кейсы
UI и функциональность
| № | Тест-кейс | Описание | Ожидаемый результат |
|---|---|---|---|
| 31 | Видимость пароля | Клик на иконку показа пароля | Пароль отображается как текст |
| 32 | Скрытие пароля | Повторный клик на иконку | Пароль скрыт (*) |
| 33 | Кнопка регистрации изначально | Все поля пусты | Кнопка отключена (disabled) |
| 34 | Сообщение об ошибке email | Неверный формат | Сообщение под полем email |
| 35 | Сообщение об ошибке пароля | Коротко | Сообщение с требованиями |
| 36 | Автозаполнение browser | Сохранённые данные | Браузер может предложить填充 |
| 37 | XSS в email | <script>alert('xss')</script> | Скрипт не выполняется |
| 38 | SQL injection в email | admin'-- | Обрабатывается как текст |
| 39 | Двойная регистрация | Тот же email дважды | Ошибка: email уже зарегистрирован |
| 40 | CSRF защита | Отправка без токена | Запрос отклонён |
Производительность
| № | Тест-кейс | Описание |
|---|---|---|
| 41 | Время отклика | Регистрация < 3 сек |
| 42 | Одновременные запросы | 100 пользователей одновременно |
| 43 | Максимальная нагрузка | сервер остаётся стабильным |
5. Регулярные выражения для валидации
Email (RFC 5322 упрощённая):
^[^\s@]+@[^\s@]+\.[^\s@]+$
Пароль (8+ символов, ≥1 цифра, ≥1 спецсимвол):
^(?=.*[0-9])(?=.*[!@#$%^&*()\-_=+\[\]{};:'",.<>?/\\|`~])(?=.{8,}).*$
6. Приоритизация тест-кейсов
P0 (критические):
- Успешная регистрация с валидными данными
- Отклонение при незаполненных полях
- Отклонение при несовпадающих паролях
P1 (важные):
- Валидация формата email
- Валидация требований пароля
- Чекбокс согласия обязателен
P2 (средние):
- Пограничные значения (7, 8, 9 символов пароля)
- Спецсимволы разных типов
- SQL injection / XSS
P3 (низкие):
- Видимость пароля
- Сообщения об ошибках (UX)
- Производительность
7. Метрики покрытия
Общее количество тест-кейсов: 43+
Ожидаемое покрытие: 90%+
Разбивка по элементам:
- Email: 10 базовых + граничные = 15 кейсов
- Пароль: 12 базовых + граничные = 18 кейсов
- Подтверждение: 6 кейсов
- UI/Функциональность: 10 кейсов
- Безопасность: 4 кейса