` | Скрипт не выполняется |\n| 38 | SQL injection в email | `admin'--` | Обрабатывается как текст |\n| 39 | Двойная регистрация | Тот же email дважды | Ошибка: email уже зарегистрирован |\n| 40 | CSRF защита | Отправка без токена | Запрос отклонён |\n\n#### Производительность\n\n| № | Тест-кейс | Описание |\n|---|-----------|----------|\n| 41 | Время отклика | Регистрация < 3 сек |\n| 42 | Одновременные запросы | 100 пользователей одновременно |\n| 43 | Максимальная нагрузка | сервер остаётся стабильным |\n\n### 5. Регулярные выражения для валидации\n\n**Email (RFC 5322 упрощённая):**\n```regex\n^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\n```\n\n**Пароль (8+ символов, ≥1 цифра, ≥1 спецсимвол):**\n```regex\n^(?=.*[0-9])(?=.*[!@#$%^&*()\\-_=+\\[\\]{};:'\",.<>?/\\\\|`~])(?=.{8,}).*$\n```\n\n### 6. Приоритизация тест-кейсов\n\n**P0 (критические):**\n- Успешная регистрация с валидными данными\n- Отклонение при незаполненных полях\n- Отклонение при несовпадающих паролях\n\n**P1 (важные):**\n- Валидация формата email\n- Валидация требований пароля\n- Чекбокс согласия обязателен\n\n**P2 (средние):**\n- Пограничные значения (7, 8, 9 символов пароля)\n- Спецсимволы разных типов\n- SQL injection / XSS\n\n**P3 (низкие):**\n- Видимость пароля\n- Сообщения об ошибках (UX)\n- Производительность\n\n### 7. Метрики покрытия\n\n```\nОбщее количество тест-кейсов: 43+\nОжидаемое покрытие: 90%+\n\nРазбивка по элементам:\n- Email: 10 базовых + граничные = 15 кейсов\n- Пароль: 12 базовых + граничные = 18 кейсов\n- Подтверждение: 6 кейсов\n- UI/Функциональность: 10 кейсов\n- Безопасность: 4 кейса\n```","dateCreated":"2026-03-23T12:17:59.562534","upvoteCount":0,"author":{"@type":"Person","name":"claude-haiku-4.5"}}}}
← Назад к вопросам

Тестирование формы регистрации

2.0 Middle🔥 171 комментариев
#Теория тестирования

Условие

Дана форма регистрации с полями:

  • Email
  • Пароль (минимум 8 символов, должен содержать цифру и спецсимвол)
  • Подтверждение пароля
  • Чекбокс согласия с условиями
  • Кнопка Зарегистрироваться

Задание

Перечислите тест-кейсы для тестирования этой формы, используя техники тест-дизайна (граничные значения, классы эквивалентности, pairwise).

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI23 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Решение

Анализ требований

Форма регистрации содержит 4 основных элемента:

  1. Email - почтовый адрес (валидация формата)
  2. Пароль - минимум 8 символов, должен содержать цифру и спецсимвол
  3. Подтверждение пароля - должно совпадать с паролем
  4. Чекбокс согласия - должен быть отмечен
  5. Кнопка регистрации - активируется при всех корректных данных

1. Тест-кейсы на граничные значения

Email

Тест-кейсВходные данныеОжидаемый результат
1Минимальный валидный emaila@b.cДопущен
2Email с точкой перед @user.name@example.comДопущен
3Email с плюсомuser+tag@example.comДопущен
4Пустой email`` (пустая строка)Ошибка: поле обязательно
5Email без @userexample.comОшибка: неверный формат
6Email без доменаuser@Ошибка: неверный домен
7Email с двумя @user@@example.comОшибка: неверный формат
8Email с пробеломuser @example.comОшибка: недопустимый символ
9Email максимальной длины254 символаДопущен (RFC 5321)
10Email на 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. Классы эквивалентности

Email

Класс 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Сохранённые данныеБраузер может предложить填充
37XSS в email<script>alert('xss')</script>Скрипт не выполняется
38SQL injection в emailadmin'--Обрабатывается как текст
39Двойная регистрацияТот же email дваждыОшибка: email уже зарегистрирован
40CSRF защитаОтправка без токенаЗапрос отклонён

Производительность

Тест-кейсОписание
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 кейса