Что общего у мобильного QA и осьминога
Привет! Я Катя, и я — трудоголик тестировщик самого популярного приложения для новых знакомств.
Итак, раннее утро, вы — мобильный QA. Вы приходите на работу, завариваете крепкий кофе и хотите взять пару мобильных устройств для тестирования новой фичи, осознавая, какие муки выбора вам предстоят. Что это будут за устройства?
Рано или поздно каждый мобильный тестировщик задаётся вопросом, на каком количестве устройств тестировать новый функционал, чтобы поймать максимальное количество девайсозависимых багов, потратив минимум времени. Автотесты ещё не написаны, перед вами абсолютно новые фичи. И если с iOS есть хоть какая-то ясность, и список устройств ограничен, то Android «расплодился» в полнейший ад. Вы удивитесь, но для счастья нужно всего три–четыре Android-устройства. Я хочу рассказать, как с точки зрения опытного тестировщика, их выбрать.
Зачем тестировать на разных девайсах и на сколько опасна фрагментация
Если ваше приложение только начинает путь к вершинам маркета приложений, то, казалось бы, для тестирования должно быть достаточно одного эталонного устройства от Google. Однако, если тысячи человек пользуются вашим приложением каждый день, то вам придётся задуматься о расширении «зоопарка» девайсов и лоб в лоб столкнуться с особенностями и проблемами, связанными с многообразием SamAndroid-устройств.
Пусть ваше приложение отлично работает под эмулятором, или на вашем нереально синем Pixel, однако в статистике популярных Android-устройств нет таких, которые занимают более 10% рынка, в отличие, например, от iOS-девайсов. Так что такое точечное тестирование не гарантирует отсутствия проблем у большинства пользователей. У разных устройств различные «улучшения» от производителей, разные версии ОС и железные характеристики — всё это может стать причиной девайсозависимых багов.
Чем популярнее ваше приложение, тем больше устройств вам нужно для полной проверки. И чем больше функционала в вашем приложении, тем вероятнее, что вы столкнётесь с проблемами. И выход в этой ситуации один — копить девайсы.
А вы пробовали играть в дженгу из смартфонов?
В нашей компании большой парк мобильных устройств (на данный момент у нас около 60 различных Android смартфонов и планшетов) и стенд-автоматизаторов, где на реальных девайсах бегают автотесты.
Тестировщик спит, автотесты работают!
Какие баги мы ищем?
Баги, которые вы можете встретить на каких-то девайсах, но не получить на других, можно условно разделить на три категории:
- связанные с производителем устройства — например, нестандартный API камеры или кастомная системная библиотека;
- связанные с версией ОС Android — например, несовместимые API и проблемы производительности (флагманы всего-то пятилетней давности и не мечтали о 512 Мб памяти);
- связанные с размером/ разрешением экрана, чипсетом и прочими различиями в железе.
Чаще всего эти проблемы не взаимосвязаны, так что использовать pairwise testing не приходится.
Знаете всё о таких багах? Тогда сразу переходите к разделу про выбор устройств.
Баги производителей
Производители современных мобильных устройств обожают изобретать велосипеды. Это касается всевозможных прошивок и модификаций интерфейса. В лучшем случае вы столкнётесь просто с багами с отображением интерфейса, который производитель изменил для определённых девайсов. Например, такие баги могут появляться из-за кастомных шрифтов или увеличения их размера по умолчанию.
Ввиду такой реализации UI начинает искажаться (как на скрине), а значит, девелоперам придётся либо учитывать это, либо использовать собственный шрифт и не давать возможность использовать сторонние. Раньше эта проблема встречалась только на дешёвых китайских устройствах, но сейчас она добралась и до корейских флагманов (не хочется приводить конкретные примеры и делать производителям антирекламу). Стоит ли принимать во внимание такие девайсы, подскажет статистика по вашему приложению.
Фантастическая К и где искать её работу и образование
В худшем (для девелоперов) случае с производителем будут связаны уже более интересные глубинные проблемы и падения приложения из-за использования каких-нибудь самописных библиотек и методов. Кроме того, баги могут быть связаны с кастомными приложениями, с которыми будет взаимодействовать ваше ПО. Такими как, например, камера или встроенный файловый менеджер.
В этом случае перед девелоперами встаёт выбор: писать свой собственный инструмент или отправлять пользователей из вашего идеального приложения в подсистемы производителя, откуда он уже не вернётся прежним. Проблемы с файловыми менеджерами в основном встречаются на китайских девайсах, возможно, вам о них и не стоит беспокоиться. А вот с камерой сложности возникают чаще.
Настойчивая забота о здоровье!
Любые особенности камеры, которые реализовал производитель, могут отразиться на работе вашего приложения и привести к крашам, проблемам с автофокусировкой, перевёрнутой картинке и так далее. Как и в предыдущем случае, вам придется принимать решение исходя из процента затронутых юзеров, и тут два варианта: либо писать собственную кастомную камеру, либо исправлять фоточки на лету.
Таким образом, для качественного тестирования нам нужен девайс с изменённой, неванильной прошивкой и множеством собственных приложений и предустановок от производителя. Идеально подходят девайсы Samsung и Sony.
Баги Android«a
Девелоперы любят использовать всё новое и интересное, но не всегда любят гуглить таблицы совместимости разных API и версий ОС. Девелоперы крепко спят, но нам, тестировщикам покоя нет — с несовместимостью версий связано большое количество потенциальных багов.
Тут нам достаточно вооружиться девайсами с наиболее популярными версиями ОС. Их, как правило, не очень много. С выбором вам поможет мой любимый сайт Android Developers.
Стоит учесть и вашу собственную статистику по устройствам, потому что ваше приложение может накладывать свой отпечаток на пользовательскую базу.
Поиск багов для самой свежей версии ОС, безусловно, очень важен: примерно через год эта версия станет самой популярной. Всё-таки ваше приложение не должно падать на родных девайсах от Google. С другой стороны, пока что девайсов с последней на текущий момент версией ОС Nougat мало, и обновления выкатываются редко. Поэтому можно либо доверить поиск таких багов автотестам, либо иногда проводить ручной прогон регресс-тестов на таких устройствах. Главное — не упустить какую-нибудь потенциальную опасность, как, например, агрессивный Doze Mode и его последствия, особенно если ваше приложение отслеживает подключение к Интернету. Не только девелоперы, но и тестировщики должны следить за изменениями, произошедшими в свежих версиях Android.
Не все Андроиды любят овалы!
Другая группа проблем возникает на слабых девайсах. Операционная система Android не накладывает ограничений на используемое железо, чем не преминули воспользоваться многие производители, чтобы сэкономить на всём. Практически любое приложение упадёт при нехватке памяти на слабом мобильном устройстве. Полностью защититься от этого невозможно, но стоит это учитывать, особенно если вы используете какие-нибудь «прожорливые» функции вроде видеозвонков или записи видео.
Для тестировании вам обязательно нужен слабенький девайс — необходимо следить за тем, чтобы приложение на нём адекватно функционировало. Интересными кейсами будут тесты работы при малом количестве оперативной памяти или недостатке внутренней памяти.
Кривые разрешения и режимы
Похожи или разные?
Строго говоря, эти проблемы не всегда относятся к девайсозависимым, чаще это просто недоработки, связанные с интерфейсом вашего приложения. Однако популярность тех или иных разрешений и размеров экрана тесно связана с популярностью устройств, и эти показатели постоянно меняются. Также производители могут добавить что-нибудь интересное, например, возможность выбора Pixel Density, как на OnePlus 3 (а в Nougat так вообще по умолчанию прямо из настроек).
Невзирая на статистику по популярным разрешениям и размерам экранов, для тестирования стоит использовать и планшет: он позволяет поймать такие проблемы, как забытые в форме элементы интерфейса (которые на маленьком экране окажутся за пределами экрана, но на большом станут видны), забытое выравнивание для текстов или картинок, которые на маленьком экране будут казаться на месте. Возможно, такие ошибки не очень критичны, но могут плохо сказаться на репутации вашего приложения.
Итоги: выбираем девайсы
Как правило, тестировщик начинает работу с утреннего кофе позитивных тестов, так что для начала вам нужен идеальный девайс для позитивного тестирования. Наиболее подходящими устройствами для этого являются самые популярные устройства пользователей вашего приложения. Статистику по устройствам можно найти в Google Play Store Developer Console или Google Analytics. Другими полезными ссылками поделюсь в конце поста.
Для позитивных тестов также неплохо подходят родные гугловые девайсы. Они дадут вам чистые тесты, а значит, при обнаружении каких-либо ошибок на остальных устройствах будет сразу понятно, что они каким-то образом связаны с данным устройством.
Выбирать будем так:
- Выясняете, какие девайсы самые популярные для вашего приложения на текущий момент
- Проверяете актуальную информацию по версиям Android и разрешениям экрана (или воспользуйтесь собственной статистикой из Google Play Developer Console).
- Выбираете наиболее популярный девайс для проведения позитивных тестов.
- Из остальных популярных девайсов выбираете слабое устройство с самым маленьким разрешением экрана.
- Проверяете, все ли популярные версии Android, разрешения и размеры экрана охвачены выбранными устройствами.
Плюс: выбираете самый популярный планшет (как дополнительный девайс).
Как правило, всего три устройства покрывают бо́льшую часть всевозможных различий.
Это наш выбор!
Сейчас на Badoo более 333 миллионов зарегистрированных пользователей по всему миру, а количество установок на платформе Android превысило 100 миллионов. Давайте прогоним этот алгоритм на данных, актуальных для Badoo, пока остывает кофе.
Самые популярные устройства (по данным собственной статистики; не буду указывать точные проценты, так как это значение очень быстро меняется, популярность тут не более 5% по каждому из устройств):
- Samsung Galaxy S4;
- Samsung Galaxy S5;
- Samsung Galaxy S6;
- Samsung Galaxy S7.
Самые популярные версии Android (эти данные от Google очень близки к нашей собственной статистике):
- Android 6.0 — 26,3%;
- Android 4.4 — 24%;
- Android 5.1 — 23,2%;
- Android 5.0 — 10,8%.
Самые распространенные размеры и разрешения экрана девайсов (эти данные от Google также очень близки к нашей собственной статистике):
- Normal с HDPI — 38,0%;
- Normal с XHDPI — 31,4%;
- Normal с XXHDPI –15,8%;
- разрешение MDPI также популярно (9,4%), но среди девайсов с различными размерами экрана.
Расшифровка этой таблицы.
Популярные производители мобильных устройств (статистика по популярным производителям зависит от стран, в которых сейчас популярно ваше приложение. Для нас это):
- Samsung;
- Motorola;
- Huawei;
- LG.
Если проанализировать все эти данные, то, на текущий момент, идеальным устройством для позитивных тестов для нас является Samsung Galaxy S6 с Android 6.0 и XXHDPI large/normal screen.
Поскольку Samsung Galaxy S3 c Android 4.4 и HDPI small screen является популярным устройством с самым маленьким экраном и, при этом достаточно слабым (это довольно старое устройство 2014 года выпуска), то он отлично подходит для негативного тестирования.
Плюс берём Samsung Galaxy S4 c Android 5.0 и XHDPI normal screen, он идеально дополнит набор популярной версией Android 5.0 и средним размером экрана.
На основе этих трёх девайсов мы получим следующее покрытие Android-фрагментации:
— версии Android: 26,3+24+10,8=61,1%, но нужно прибавить сюда 23,2 и получить целых 84,3% (т.к. баги, которые встречаются только на версии 5.0, но не встречаются на 5.1 — большая редкость);
— размеры экрана: 6,7+1,3+88,3=96,3%;
— разрешения экрана: 38,8+32,4+15,8=87%.
То есть при помощи всего трёх устройств мы получаем покрытие более 80% по всем интересующим нас различиям между Android-девайсами. Если у вас не получается покрыть около 80% по какому-либо показателю, значит, нужно добавить ещё одно устройство. Но как правило, трёх вполне достаточно.
Хорошими дополнениями могут стать:
— планшет;
— устройство с чистым Android;
— девайс, который увеличит покрытие по популярным производителям устройств.
Я обычно добавляю Asus Nexus 7 (2013) как планшет с чистым Android. Также подходит Huawei MediaPad M2.
То есть четыре устройства — это идеальный комплект Android-тестировщика, а значит, осьминог будет идеальным тестировщиком (по два щупальца на девайс)!
Берём Asus Nexus 7, Samsung Galaxy S3, S4 и S6 и идём пить кофе!
Как оказалось, всё не так страшно, а кофе ещё даже не остыл.
Ссылки по теме
- Статистика от Google
- Расшифровка по размерам и разрешениям экранов Android-девайсов
- Gsm Arena — лучший сайт, где можно найти информацию практически по любому Android-девайсу
- О Doze Mode
- Графики о фрагментации
- Статистика AnTuTu
- BrowserStack с неплохим разделеним по специфике для регионов
- Отличная статья с tips & tricks в тестировании мобильных приложений
- Полезные материалы для начинающего мобильного тестировщика
- И в заключение мой доклад с конференции для мобильных тестировщиков Mobile ConfeT&QA (осень 2013 года), который я актуализировала и дополнила в этом посте
P.S. Стикеры из поста.
Екатерина Михеева, Android QA