Как проверить граничные условия в мобильном приложении?

«Как проверить граничные условия в мобильном приложении?» — вопрос из категории Мобильное тестирование, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Проверка граничных условий (Boundary Value Analysis) в мобильных приложениях фокусируется на крайних значениях входных данных и экстремальных состояниях системы.

Основные области и примеры проверок:

Область Граничные условия для проверки
Ввод данных Минимальное/максимальное количество символов в поле. Пустая строка и строка из пробелов. Допустимые и недопустимые символы (например, эмодзи в поле «Имя»). Крайние числовые значения (0, -1, максимальный int).
Аппаратные ограничения Низкий заряд батареи (<5%). Слабые сети (2G, 3G) и их потеря. Минимальный объем свободной памяти. Одновременные входящие звонки/SMS.
Особенности ОС и устройства Разные разрешения экрана и плотность пикселей (DPI). Смена ориентации (портрет/ландшафт) во время операции. Увеличенный размер шрифта в настройках системы. Темная/светлая тема.
Состояния приложения Первый запуск после установки. Запуск при обновлении с старой версии. Работа в фоне и восстановление. Одновременное выполнение нескольких операций (мультитач). Максимальное количество элементов (список из 1000+ записей).

Пример автоматизированной проверки граничного значения (Appium + Python):

from appium import webdriver

desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['deviceName'] = 'emulator'
# ... другие capabilities

driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

# Тестируем поле с ограничением от 1 до 100
input_field = driver.find_element_by_id('com.example.app:id/number_input')

# Проверка нижней границы (0 и 1)
input_field.send_keys('0')
save_button = driver.find_element_by_id('com.example.app:id/save')
save_button.click()
error_message = driver.find_element_by_id('com.example.app:id/error').text
assert "Значение должно быть не менее 1" in error_message

# Проверка верхней границы (100 и 101)
input_field.clear()
input_field.send_keys('101')
save_button.click()
error_message = driver.find_element_by_id('com.example.app:id/error').text
assert "Значение должно быть не более 100" in error_message

Рекомендация: Используйте эмуляторы и симуляторы для моделирования редких аппаратных условий, а реальные устройства — для проверки тактильных ощущений и производительности.