- Формат
- Поле ввода
- Обработка ошибок
- Безопасность
- Интеграция
- Юзабилити
- Скорость
- Пограничные кейсы
- Лучшие практики и частые ошибки
Проверка мобильных номеров важна в мобильном QA, поскольку позволяет убедиться, что введенные пользователями номера верны и могут использоваться для связи с ними, например для отправки SMS-уведомлений, защиты учетных записей и поддержки клиентов. Валидация мобильных номеров позволяет избегать ошибок и обеспечивать надежную связь с пользователями, а также сократить количество актов мошенничества (используются только реальные и допустимые номера).
Формат
Тщательная валидация форматов мобильных номеров необходима для надежной работы приложений с вводимыми данными. QA-инженеру создание надежных тест-кейсов поможет выявить потенциальные проблемы и улучшить пользовательский опыт. Ниже приведены ключевые тест-кейсы, посвященные проверке длины номера, вводу только цифр и обработке кода страны.
Проверка длины номера
TC01: Проверка минимальной длины
- Описание: Убедитесь, что приложение не принимает мобильные номера короче минимально необходимой длины.
- Шаги: Введите номер мобильного телефона, длина которого меньше минимальной, и отправьте форму.
- Ожидаемый результат: Система должна вывести сообщение об ошибке, указывающее на то, что номер слишком короткий.
TC02: Проверка максимальной длины
- Описание: Убедитесь, что приложение не принимает номера мобильных телефонов, длина которых превышает максимально допустимую.
- Шаги: Введите номер мобильного телефона, длина которого превышает максимально допустимую, и отправьте форму.
- Ожидаемый результат: Система должна вывести сообщение об ошибке, указывающее на то, что номер слишком длинный.
TC03: Проверка точной длины
- Описание: Подтверждение того, что приложение принимает номера мобильных телефонов точно требуемой длины.
- Шаги: Введите номер мобильного телефона требуемой длины и отправьте форму.
- Ожидаемый результат: Система должна принять номер мобильного телефона без каких-либо ошибок.
Ввод только чисел
TC04: Проверка нечисловых символов
- Описание: Убедитесь, что приложение не принимает нечисловые символы (например, буквы, специальные символы).
- Шаги: Введите номер мобильного телефона, содержащий буквы или специальные символы, и отправьте форму.
- Ожидаемый результат: Система должна вывести сообщение об ошибке, указывающее на то, что в номере разрешены только цифровые символы.
TC05: Проверка пробелов и дефисов
- Описание: Убедитесь, что приложение правильно обрабатывает мобильные номера с пробелами или дефисами.
- Шаги: Введите номер мобильного телефона с пробелами или дефисами и отправьте форму.
- Ожидаемый результат:
- Если пробелы и дефисы разрешены: Система должна принять и правильно обработать номер.
- Если пробелы и дефисы не разрешены: Система должна вывести сообщение об ошибке, указывающее, что разрешены только цифровые символы.
Обработка кода страны
TC06: Проверка валидности кода страны
- Описание: Убедитесь, что приложение принимает валидные коды стран.
- Шаги: Введите номер мобильного телефона с валидным кодом страны и отправьте форму.
- Ожидаемый результат: Система должна принять номер мобильного телефона и правильно сопоставить его с кодом страны.
TC07: Проверка несуществующего кода страны
- Описание: Убедитесь, что приложение не принимает недействительные или несуществующие коды стран.
- Шаги: Введите номер мобильного телефона с недействительным кодом страны и отправьте форму.
- Ожидаемый результат: Система должна вывести сообщение об ошибке, указывающее на то, что код страны недействителен.
TC08: Обработка отсутствия кода страны
- Описание: Убедитесь, что приложение корректно обрабатывает мобильные номера без кода страны.
- Шаги: Введите номер мобильного телефона без кода страны и отправьте форму.
- Ожидаемый результат:
- Если код страны обязателен: Система должна вывести сообщение об ошибке, указывающее на необходимость ввода кода страны.
- Если код страны необязателен: Система должна принять номер с кодом страны по умолчанию.
Формат международных номеров
TC09: Правильность формата международного номера
- Описание: Проверка того, что приложение корректно обрабатывает валидные международные форматы номеров.
- Шаги: Введите номер мобильного телефона в международном формате (например, +7 501XXXXXXX) и отправьте форму.
- Ожидаемый результат: Система должна принять и правильно обработать номер в соответствии с международным форматом.
TC10: Неправильный формат международного номера
- Описание: Убедитесь, что приложение отклоняет международные мобильные номера с неправильным форматом.
- Шаги: Введите номер мобильного телефона с неправильным международным форматом (например, +0-7911-12345) и отправьте форму.
- Ожидаемый результат: Система должна вывести сообщение об ошибке, указывающее на то, что международный формат номера неправильный.
Тесты поведения полей ввода при автоформатировании
TC15: Автоформатирование мобильных номеров
- Описание: Убедитесь, что приложение автоматически форматирует номер мобильного телефона по мере его ввода.
- Шаги: Введите номер мобильного телефона без какого-либо форматирования (например, 1234567890) и наблюдайте за полем ввода.
- Ожидаемый результат: Система должна автоматически вставлять соответствующие символы форматирования (например, пробелы, дефисы) для отображения номера в определенном формате (например, 123-456-7890).
Функциональность копирования-вставки
TC16: Обработка вставленных цифр
- Описание: Убедитесь, что приложение корректно обрабатывает номера, вставленные в поле ввода.
- Шаги: Скопируйте полностью отформатированный номер мобильного телефона (например, +7 (200) 555-1234) в буфер обмена и вставьте его в поле ввода номера мобильного телефона.
- Ожидаемый результат: Система должна правильно распознать вставленный номер и либо сохранить форматирование, либо переформатировать его в соответствии с требованиями приложения.
Позиционирование курсора
TC17: Положение курсора после форматирования
- Описание: Убедитесь, что после автоформатирования положение курсора остается удобным и интуитивно понятным.
- Шаги: Медленно введите номер мобильного телефона, делая паузу после каждой цифры, и проследите за поведением курсора при добавлении символов форматирования.
- Ожидаемый результат: Курсор должен все время оставаться в правильном положении, позволяя пользователю продолжать ввод без сбоев и путаницы.
TC18: Положение курсора после редактирования
- Описание: Проверка позиционирования курсора при редактировании ранее введенного и отформатированного номера.
- Шаги: Переведите курсор в определенную позицию в отформатированном номере мобильного телефона, и выполните редактирование (например, вставку или удаление цифр).
- Ожидаемый результат: Курсор должен перемещаться соответствующим образом и сохранять логическое положение относительно редактируемого ввода, сохраняя форматирование номера.
Обработка ошибок и фидбек пользователей
TC19: Сообщения об ошибке при вводе неправильных номеров
- Описание: Убедитесь, что приложение выдает четкие и полезные сообщения об ошибках при вводе недопустимых мобильных номеров.
- Шаги: Введите в поле ввода различные неправильные номера мобильных телефонов (например, слишком короткие, слишком длинные, с буквами или спецсимволами).
- Ожидаемый результат: Система должна отображать сообщения об ошибках, подчеркивающие характер ошибки, например «Неверная длина номера», «Буквы и специальные символы не допускаются» или «Пожалуйста, введите действительный номер мобильного телефона».
TC20: Проверка в реальном времени
- Описание: Убедитесь, что приложение выполняет валидацию номера мобильного телефона в режиме реального времени, по мере ввода пользователем.
- Шаги: Медленно введите номер мобильного телефона, следя за появлением подсказок или индикаторов проверки после каждой цифры.
- Ожидаемый результат: Если введенный номер становится неправильным, система должна обеспечивать немедленную обратную связь в любой момент, используя визуальные подсказки, такие как отметка места ошибки, значки ошибок или всплывающие сообщения.
TC21: Четкость инструкций по исправлению ошибок
- Описание: Подтвердите, что приложение предоставляет четкие инструкции по исправлению неправильных мобильных номеров.
- Шаги: Введите неправильный номер мобильного телефона, а затем прочитайте сообщение об ошибке.
- Ожидаемый результат: Сообщение об ошибке должно содержать конкретные инструкции по восстановлению, например «Пожалуйста, удалите все буквы и специальные символы», «Убедитесь, что номер мобильного телефона содержит 10 цифр» или «Удалите все пробелы и лишние символы».
Безопасность и конфиденциальность
TC22: Маскировка данных
- Описание: Убедитесь, что конфиденциальные данные, вводимые в приложение, маскируются соответствующим образом.
- Шаги: Введите конфиденциальную информацию (например, пароли, номера кредитных карт) в соответствующие поля ввода.
- Ожидаемый результат: В полях ввода должны отображаться маскированные данные (например, ****) вместо реальных символов.
TC23: Шифрование при передаче
- Описание: Убедитесь, что конфиденциальные данные, передаваемые между клиентом и сервером, зашифрованы.
- Шаги: Отслеживайте сетевой трафик при выполнении действий, связанных с передачей конфиденциальных данных (например, вход в систему, совершение платежа).
- Ожидаемый результат: Данные должны передаваться по защищенному каналу (например, HTTPS) и выглядеть зашифрованными при просмотре в логах сетевого трафика.
TC24: Безопасность хранения данных
- Описание: Подтверждение того, что конфиденциальные данные, хранящиеся на сервере, надежно зашифрованы.
- Шаги: Проверьте серверные механизмы хранения и базы данных на наличие протоколов шифрования.
- Ожидаемый результат: Чувствительные данные должны храниться в зашифрованном виде, чтобы несанкционированный доступ к серверу или базе данных не привел к открытию доступных для чтения данных.
Тест-кейсы интеграции
TC25: Процесс верификации SMS
- Описание: Убедитесь, что процесс SMS-верификации функционирует корректно от начала до конца.
- Шаги:
- Запустите процесс SMS-верификации, введя валидный номер мобильного телефона.
- Убедитесь, что на введенный номер мобильного телефона отправлено SMS с кодом проверки.
- Введите полученный код проверки в приложение.
- Убедитесь, что приложение приняло правильный код и перешло к следующему шагу.
- Ожидаемый результат: SMS с кодом проверки получено быстро, а код проверки принят (при правильном вводе).
TC26: Проверка интеграции API сторонних разработчиков
- Описание: Оценка интеграции и функциональности сторонних API, используемых для проверки данных (например, проверка адреса, обработка платежей).
- Шаги:
- Введите данные, требующие проверки сторонним API (например, адрес или платежные реквизиты).
- Наблюдайте за взаимодействием приложения со сторонним сервисом.
- Проверьте реакцию приложения на результаты проверки стороннего API.
- Ожидаемый результат: Приложение должно корректно отправлять данные на проверку, обрабатывать ответ от стороннего API и точно отражать результаты проверки в пользовательском интерфейсе.
TC27: Хранение и извлечение данных из базы
- Описание: Проверка правильности хранения и извлечения данных из БД.
- Шаги:
- Введите и отправьте данные через интерфейс приложения.
- Проверьте, что отправленные данные точно сохранены в базе данных.
- Извлеките данные из базы данных с помощью интерфейса приложения.
- Убедитесь, что извлеченные данные соответствуют первоначально отправленным данным.
- Ожидаемый результат: Данные должны храниться в базе данных корректно, без потерь и повреждений, а операции извлечения должны точно отражать сохраненные данные.
Тест-кейсы юзабилити и доступности
TC28: Совместимость с программами чтения с экрана
- Описание: Убедитесь, что приложение полностью совместимо с программами чтения с экрана для слабовидящих пользователей.
- Шаги:
- Активируйте программу чтения с экрана (например, JAWS, NVDA).
- Осуществите навигацию по приложению с помощью программы чтения с экрана.
- Определите и взаимодействуйте с различными элементами (кнопки, ссылки, формы) с помощью команд программы чтения с экрана.
- Ожидаемый результат: Все элементы должны быть точно описаны считывателем экрана, а пользователи должны иметь возможность эффективно перемещаться и взаимодействовать с приложением с помощью программы чтения с экрана.
TC29: Навигация по клавиатуре
- Описание: Убедитесь, что пользователи могут перемещаться по приложению, используя только клавиатуру.
- Шаги:
- Откройте приложение и начните навигацию с помощью клавиш Tab, Arrow и Enter.
- Получите доступ ко всем интерактивным элементам (ссылки, кнопки, поля ввода) с помощью клавиатуры.
- Выполните такие типичные действия, как отправка формы или переход на другую страницу, используя команды клавиатуры.
- Ожидаемый результат: Пользователи должны иметь возможность перемещаться по всему приложению и выполнять все необходимые действия без мыши.
TC30: Методы ввода, специфичные для мобильных устройств (например, цифровая клавиатура)
- Описание: Проверка того, что формы ввода для мобильных устройств адаптируются к наиболее подходящим методам ввода (например, цифровая клавиатура для полей телефонных номеров).
- Шаги:
- Откройте приложение на мобильном устройстве.
- Перейдите к различным полям ввода, требующим определенных типов данных (телефонные номера, даты и т. д.).
- Убедитесь, что срабатывают соответствующие клавиатуры (цифровая клавиатура для телефонных номеров, селектор даты для дат).
- Ожидаемый результат: Для каждого типа поля должен автоматически срабатывать нужный метод ввода, что повышает удобство работы пользователя и снижает количество ошибок ввода.
Тест-кейсы производительности
TC31: Проверка времени отклика
- Описание: Измерение и проверка времени отклика различных функций приложения.
- Шаги:
- Определите набор основных функций приложения, таких как вход в систему, получение данных и отправка форм.
- Используйте инструмент тестирования производительности для измерения времени отклика каждой нужной функции.
- Выполните несколько итераций каждой операции, чтобы собрать полный набор данных о времени отклика.
- Ожидаемый результат: Приложение должно отвечать в пределах допустимого времени для каждой основной функциональности.
TC32: Нагрузочное тестирование с большим количеством одновременных пользователей
- Описание: Оценка производительности приложения при одновременном взаимодействии с ним нескольких пользователей.
- Шаги:
- Определите критически важные операции в приложении, которые, вероятно, будут использоваться одновременно несколькими пользователями (например, поиск, транзакции или загрузка данных).
- Смоделируйте большое количество одновременно выполняющих эти операции пользователей с помощью инструмента нагрузочного тестирования.
- Зафиксируйте метрики производительности, такие как время ответа, количество ошибок и использование системных ресурсов.
- Ожидаемый результат: Приложение должно справляться с нагрузкой без существенного снижения производительности, поддерживая приемлемое время отклика и не допуская критических ошибок.
Пограничные кейсы
TC33: Сценарии минимальной и максимальной длины
- Описание: Проверка работы полей ввода приложения путем тестирования ввода минимально и максимально допустимой длины.
- Шаги:
- Определите поля ввода в приложении, которые имеют ограничения по длине (например, имя пользователя, пароль, описание).
- Введите данные минимально допустимой длины в каждое поле и отправьте форму.
- Введите данные максимально допустимой длины в каждое поле и отправьте форму.
- Проверьте, как приложение реагирует на эти вводы.
- Ожидаемый результат: Приложение должно принимать данные, соответствующие ограничениям по длине, и выдавать соответствующие сообщения об ошибках, при вводе слишком коротких или слишком длинных данных.
TC34: Обработка нестандартных чисел (например, коротких кодов)
- Описание: Убедитесь, что приложение может правильно обрабатывать нестандартные числовые данные, такие как короткие коды, которые могут не соответствовать обычным форматам числовых данных.
- Шаги:
- Определите поля ввода, которые принимают числовые данные (например, номера телефонов, номера счетов).
- Введите в эти поля различные нестандартные числа, такие как короткие коды (например, 112) и другие подобные числа.
- Отправьте форму и проследите, как приложение обрабатывает эти данные.
- Ожидаемый результат: Приложение должно корректно обрабатывать и проверять нестандартные числовые данные, предоставляя при необходимости уведомления и проводя правильные действия, например, принимать правильные короткие номера и отклонять неправильные форматы.
Лучшие практики и распространенные ошибки
- Поддержка международных форматов: Убедитесь, что приложение поддерживает мобильные номера в международных форматах, включая коды стран, и различную длину номера.
- Последовательные правила валидации: Применяйте единые правила тестовой валидации всех полей ввода, принимающих мобильные номера, чтобы избежать недопонимания и путаницы среди пользователей.
- Обратная связь в реальном времени: Обеспечьте обратную связь в режиме реального времени, когда пользователи вводят свои номера — указывать, являются ли введенные формат и длина приемлемыми.
- Проверки для конкретной страны: Создайте правила валидации номеров по конкретной стране, чтобы учесть особенности и требования к мобильным номерам из разных регионов.
- Внимательная обработка ошибок: Убедитесь, что сообщения об ошибках понятны и информативны, подсказывают пользователям, как исправить введенные данные.
Распространенные ошибки
- Не тестировать пограничные состояния: Игнорирование пограничных (крайних) случаев, таких как короткие номера или особенности премиум-тарифов, может привести к тому, что корректные номера будут отклоняться.
- Хардкодинг правил проверки: Жесткое кодирование логики проверки без учета возможности будущих изменений в системах нумерации может привести к моральному устареванию системы.
- Игнорирование пользовательского опыта: Чрезмерное внимание к строгим проверкам в ущерб удобству использования может разочаровать пользователей. Важно найти правильный баланс между строгостью и удобством.
- Чрезмерное усложнение процесса ввода: Если для простого ввода номера мобильного телефона требуется слишком много шагов и чтения дополнительной информации, это может отпугнуть пользователей.
- Пренебрежение кросс-платформенной совместимостью: Неспособность обеспечить нормальную работу системы ввода и проверки мобильного номера на всех устройствах и браузерах может негативно сказаться на части пользователей.
- Плохие механизмы исправления ошибок: Непредоставление пользователям простых способов исправления ошибок может привести к неполному заполнению анкеты или отказу.
- Предположение об однородности пользователей: Предполагая, что все пользователи знакомы с одним конкретным форматом, можно забыть об иностранных пользователях. Если приложение претендует на глобальность, важно учитывать глобальное удобство использования.
- Недостаточное тестирование: Полагаясь на ограниченное количество тест-кейсов проверки логики, можно получить неожиданные сбои в реальных сценариях. Необходимо проводить комплексное тестирование с различными наборами данных.