В чем разница тестирования на симуляторе, эмуляторе и реальном устройстве и что можно тестировать на каждом?
Что проверяют
Различаете ли вы симулятор и эмулятор и знаете ли, что проверяется только на живом устройстве.
Как отвечать
Разница между первыми двумя принципиальная, и её обычно не знают.
Симулятор (мир iOS) не эмулирует железо. Приложение собирается под архитектуру самого компьютера и выполняется нативно, используя ресурсы компьютера. Отсюда он очень быстрый, но и очень непохожий на устройство: у него процессор и память рабочей машины.
Эмулятор (мир Android) воспроизводит железо: другую архитектуру процессора, объём памяти, характеристики экрана. Медленнее, но ближе к реальности. С аппаратным ускорением и образом под архитектуру хоста разрыв сократился.
Что можно проверять на симуляторе и эмуляторе:
- функциональную логику, переходы, формы, валидацию;
- вёрстку под разные размеры экрана и ориентации;
- локализацию, тёмную тему, размер шрифта;
- значительную часть автотестов интерфейса, потому что они дёшевы и параллелятся.
Что проверяется только на устройстве:
- производительность и плавность: симулятор с мощным процессором покажет шестьдесят кадров там, где бюджетный телефон покажет двадцать;
- память: реальные ограничения и завершение приложения системой при нехватке;
- батарея и нагрев;
- камера, датчики, биометрия, определение местоположения;
- реальная сеть: переключение между сетями, слабый сигнал, потеря связи в туннеле;
- жесты и отзывчивость касаний;
- особенности производителей в Android: оболочки, агрессивное завершение фоновых процессов, свои настройки энергосбережения. Это отдельный и очень плодородный источник дефектов;
- push-уведомления и покупки в полном объёме.
Практический вывод: симулятор и эмулятор для быстрой обратной связи и массового прогона, реальные устройства для приёмки. Матрица устройств строится по доле аудитории, и в неё обязательно включают слабый бюджетный аппарат.
Где спотыкаются
Считают симулятор разновидностью эмулятора.
Делают выводы о производительности по симулятору.
Не проверяют на слабых устройствах.
Игнорируют особенности оболочек производителей.