Ответ
Тестирование таких форм строится на проверке валидации и поведения системы при различных комбинациях заполнения.
1. Стратегия тестирования:
- Обязательные поля: Проверяю, что система корректно требует их заполнения.
- Необязательные поля: Проверяю, что система корректно их обрабатывает как при наличии значения, так и при его отсутствии.
- Комбинации: Тестирую отправку формы с разными наборами заполненных/пустых необязательных полей.
2. Конкретные тест-кейсы:
A. Для обязательного поля (например, 'Email'):
- Отправка формы с пустым обязательным полем → Должна появиться ошибка (например, 'Поле обязательно для заполнения').
- Отправка формы с валидным значением в обязательном поле → Форма должна отправиться успешно.
- Отправка формы с невалидным значением (например,
user@) → Должна появиться ошибка формата.
B. Для необязательного поля (например, 'Телефон'):
- Отправка формы с пустым необязательным полем → Форма должна отправиться успешно, в БД должно сохраниться
NULLили пустая строка. - Отправка формы с валидным значением в необязательном поле → Форма должна отправиться успешно, значение должно корректно сохраниться.
- Отправка формы с невалидным значением в необязательном поле (если для него определена валидация) → Должна появиться ошибка.
C. Комбинации полей: Проверяю, что валидация одного поля не ломает поведение другого. Например, ошибка в обязательном поле не должна 'сбрасывать' корректно введенные данные в необязательных полях при перезагрузке страницы.
3. Пример набора тестовых данных для формы регистрации:
- Обязательные: Имя, Фамилия, Email.
- Необязательные: Телефон, Компания.
| Тест | Имя | Фамилия | Телефон | Компания | Ожидаемый результат | |
|---|---|---|---|---|---|---|
| 1 | + | + | + | (пусто) | (пусто) | Успех |
| 2 | (пусто) | + | + | + | + | Ошибка для 'Имя' |
| 3 | + | + | invalid |
+ | (пусто) | Ошибка для 'Email' |
| 4 | + | + | + | abc |
+ | Ошибка для 'Телефон' (если есть валидация) |
4. Дополнительные проверки:
- Визуальное выделение полей с ошибками.
- Понятность и точность текстов ошибок.
- Сохранение введенных данных при ошибке валидации (чтобы пользователь не вводил все заново).