Разделы портала

Онлайн-тренинги

.
Мобильное тестирование, часть 1: 12 проблем мобильного тестирования
27.05.2019 00:00

Автор: Кристин Джеквони (Kristin Jackvony)
Оригинал статьи: http://thethinkingtester.blogspot.com/2018/07/mobile-testing-part-i-twelve-challenges.html
Перевод: Ольга Алифанова


Первый айфон увидел свет всего лишь чуть больше десяти лет назад. Теперь мы живем в веке, когда смартфоны расплодились повсеместно. Наши смартфоны – это швейцарские ножи: это карты, адресные книги, календари, камеры, плееры, и, конечно, средства коммуникации. Тестирование ПО будет неполным без тестирования на мобильных устройствах. В этом тестировании приходится учитывать столько всего, что я решила разбить статью на несколько частей, и сегодня я расскажу о сложностях мобильного тестирования. Затем мы перейдем к ручному тестированию, а потом – к автоматизированному.

Итак, сложности! Ниже перечислено двенадцать причин, благодаря которым тестировать на мобильных устройствах так сложно. Я решила, что будет забавнее иллюстрировать каждую из них, описывая баги, с которыми я сталкивалась. Некоторые из них были найдены в ходе моей работы, а некоторые – на моем личном устройстве, где я выступала как конечный пользователь.

1. Операторы: производительность мобильных приложений может варьировать в зависимости от того, какой оператор используется. Крупнейшие операторы в США – это Verizon и AT&T, и у нас есть также более мелкие поставщики – например, Sprint и T-Mobile. В Европе наиболее распространены Deutche Telekom, Telefonica, Vodaphone, и Orange, в Азии – China Mobile, Airtel, NTT и Softbank. Тестируя на мобильных устройствах, важно знать, какими операторами будут пользоваться ваши конечные пользователи, и тестировать с учетом этой информации.

Пример бага: как-то раз я тестировала функции карты внутри приложения и обнаружила, что при использовании одного оператора карта обновлялась в зависимости от моего местоположения, а при использовании другого – нет. Это было как-то связано со способом кэширования локации после пинга сотовой вышки.

2. Сеть или WiFi. Пользователи могут подключаться как к сети оператора, так и через WiFi. Они даже могут выбирать различные способы связи посреди процесса использования приложения, или же их соединение может быть полностью разорвано, если они вышли из зоны действия сети. Очень важно тестировать приложение и при сотовой связи, и при соединении через WiFi, и посмотреть, что будет, если соединение внезапно меняется или полностью оборвано.

Пример бага: у меня дома есть ретранслятор WiFi. Когда я меняю подключение телефона на IP ретранслятора, Spotify думает, что я вне сети. Мне приходится насильно перезапускать приложение, чтобы Spotify осознал, что я онлайн.

3. Тип приложения. Мобильные приложения могут делиться на Web, нативные, или быть гибридом первого и второго (разрабатываются как веб, но устанавливаются как нативные). Некоторые из ваших конечных пользователей проигнорируют нативное или гибридное приложение, предпочитая пользоваться им через телефонный браузер. В качестве браузера может быть использовано множество различных приложений – например, Safari, Chrome, Opera. Важно убедиться, что ваше веб-приложение корректно работает в разных браузерах.

Пример бага: я множество раз сталкивалась с тем, что при переходе на мобильный сайт на нем не обнаруживалось необходимой функциональности. Мне приходилось переходить на полную версию, где текст очень мелкий, а навигация чересчур сложна.

4. Операционная система. Мобильные приложения по-разному функционируют в зависимости от операционной системой. Два гиганта на этом поле – это iOS и Android, но есть и другие – например, Windows Mobile и Blackberry. Важно тестировать на том, чем будут пользоваться ваши конечные потребители, и убедиться, что все функции приложения поддерживаются вне зависимости от ОС.

Пример бага: это не баг, это ключевая разница между Android и iOS. Устройства на Android имеют кнопку "назад", в отличие от iOS. Приложения, созданные для iOS, требуют встроенную на каждую страницу кнопку перехода назад, чтобы пользователи могли вернуться к предыдущему состоянию.

5. Версия. Каждая ОС периодически обновляется, и добавленные фичи подталкивают пользователей к установке обновлений. Однако не каждый пользователь обновит свое устройство до самой последней версии. Важно использовать аналитику, чтобы определить, какими ОС, скорее всего, будут пользоваться ваши потребители, и убедиться, что вы тестируете под все эти версии. К тому же каждое обновление ОС потенциально может вызывать баги в вашем приложении, которые отсутствовали ранее.

Пример бага: зачастую при обновлении версии ОС я больше не могу пользоваться громкой связью, делая звонки. Мне слышно собеседника, но он не слышит меня.

6. Производитель. Все iOS-устройства производятся Apple, но с устройствами на Android не все так просто. Samsung – один из крупнейших производителей Android-устройств, но существует еще множество других – например, Huawei, Motorola, Asus, LG. важно отметить, что не у каждого пользователя Android будет непременно Samsung, и тестировать на других устройствах тоже.

Пример бага: как-то раз я тестировала приложение для планшета, в котором функция клавиатуры отлично работала на устройствах некоторых производителей, но не работала на прочих. Она просто не появлялась, и я не могла ничего ввести в поля форм.

7. Модель. Схожим с версиями образом новые модели устройств появляются ежегодно. Некоторые пользователи обновят свой девайс раз в пару лет, но не все. Более того, некоторые устройства не смогут обновиться до последней версии ОС, и устареют сразу по двум направлениям. Повторюсь, важно выяснить, какими устройствами пользуется ваша аудитория, дабы принимать решения о том, на каких моделях тестировать и какие модели поддерживать.

Пример бага: это не баг, но об этом важно помнить: когда Apple выпустила новую модель iPad, позволяющую подписываться в формах, ПО, которое я тестировала, учитывало эту функцию. Однако старые версии iPad ее не поддерживали, поэтому приложение должно было учесть такую ситуацию и не просить пользователей более старых версий подписать документ.

8. Планшет или смартфон. Множество ваших пользователей будут взаимодействовать с приложением через планшет, а не через смартфон. Нативные приложения зачастую имеют различные версии в зависимости от того, предназначены ли они для планшета или телефона. Приложение, созданное для смартфона, зачастую можно загрузить на планшет, но не наоборот. Если используется веб-приложение, важно помнить, что у планшетов и смартфонов разная функциональность. Протестируйте ваше приложение и там, и там.

Пример бага: я тестировала приложения, которые отлично работали на смартфоне, но выдавали пустой экран, когда я пыталась проверить их на планшете.

9. Размер экрана. Мобильные устройства бывают очень, очень разными по размеру. Устройства iOS имеют небольшую вариативность в размерах, а вот у Android ситуация намного хуже. Конечно, невозможно проверить все размеры до единого, но важно протестировать маленькие, средние, большие и очень большие экраны, чтобы убедиться, что приложение корректно отрисовывается вне зависимости от разрешения.

Пример бага: я тестировала приложения на маленьких экранах, и элементы страниц начинали наезжать друг на друга, затрудняя просмотр текстовых полей и нажатие на кнопки.

10. Портретная и ландшафтная ориентации. Тестируя на смартфонах, легко забыть проверить ландшафтную ориентацию, потому что мы, как правило, держим телефон в портретной. Однако иногда пользователи смартфонов захотят просматривать приложение в ландшафтном формате – особенно это верно для пользователей планшетов. Важно не только проверить обе ориентации экрана, но также попереключаться между ними в ходе работы с приложением.

Пример бага: как-то раз я тестировала приложение, которое отлично смотрелось на планшете в портретной ориентации, но при переходе к ландшафтной все поля исчезали.

11. Внутренняя интеграция. Одно из достоинств мобильных приложений в том, что они могут интегрироваться с другими функциями устройства – например, микрофоном или камерой. Они могут также связываться с другими приложениями, скажем, Фейсбуком или Твиттером. Вне зависимости от поддерживаемых интеграций убедитесь, что вы тщательно их проверили.

Пример бага: я тестировала приложение, в котором пользователь мог сделать фото устройства у себя дома и добавить его на домашний склад. Когда я переходила к съемке, меня правильно перенаправляло к приложению камеры, и я могла сделать фото, но обратного перехода к приложению не происходило.

12. Внешняя интеграция. Даже если ваше приложение не предназначено для взаимодействия с другими приложениями или функциями, в этой области все равно могут таиться баги. Что будет, если пользователь примет телефонный звонок, сообщение, или предупреждение о низком заряде батареи в ходе использования приложения? Нужно это выяснить.

Пример бага: в моем телефоне долгое время существовал вот какой баг – если таймер срабатывал тогда, когда я разговаривала по телефону, то после завершения разговора таймер звучал бесконечно долго.

Надеюсь, что описания и примеры достаточно демонстрируют, как сложно тестировать мобильные приложения! В следующих статьях я расскажу, как упростить ваше тестирование.

Обсудить в форуме