Этап 6: Тестирование производительности
Мобильные устройства предоставляют для приложений меньший объем памяти и меньшую доступную мощность процессора, чем стационарные компьютеры и ноутбуки. По этой причине в работе мобильных приложений очень важна эффективность использования предоставляемых ресурсов. Вам следует проверить работоспособность тестируемого приложения, изменив соединение с 2G, 3G на WIFI, проверить скорость отклика, потребление заряда батареи, стабильность работы и т. д.
Рекомендуется проверять приложение на предмет масштабируемости применения и наличие возможных проблем с производительностью.
В рамках этого этапа важно пройти и нагрузочное тестирование мобильного приложения. Функциональное тестирование
Функциональное тестирование
Функциональность приложения должна быть полностью протестирована
Особое внимание следует уделить установке, обновлениям, регистрации и входу в систему, обеспечению, работе со специфическими функциями устройства и сообщениям об ошибках
Функциональное тестирование мобильного приложения, по большей части, может быть выполнено так же, как вы выполнили бы его для любого другого типа приложения. По этой причине мы не будем вдаваться в подробности этого типа тестирования. Однако следует указать области, которые имеют особое значение для мобильных приложений.
Имейте в виду, что функциональное тестирование должно включать в себя тестирование всех функций приложения и не должно быть излишне сосредоточено на какой-то одной функции.
В рамках функционального тестирования, вам следует выполнить следующие тесты:
• Тестирование процесса установки; • Тестирование возможности обновлений; • Эксплуатационное тестирование; • Тестирование процесса регистрации и авторизации; • Тестирование функций, специфических для устройства; • Тестирование отправки и получения сообщений об ошибках; • Низкоуровневое тестирование ресурсов: использование памяти, автоматическое освобождение ресурсов и т.д. • Тестирование сервисов: функционирование как в режиме онлайн, так и в автономном режиме.
BlueStacks
Рис.1.
Скачать
Детали
Универсальный эмулятор с большим количеством возможностей. С его помощью получают доступ к интерфейсу виртуального устройства и практически любым приложениям или играм для телефонов и планшетов.
Наличие встроенного в BlueStacks App Player установщика позволяет установку файлов из любых источников, а запускать их можно даже с рабочего стола, не открывая эмулятор.
Преимущества:
- возможность легко настроить работу эмулятора под себя;
- минимальные требования к аппаратной части, высокая скорость запуска и работы;
- наличие функции изменения местоположения, имитация движения джойстика, встряхивания и жестов;
- собственный центр приложений, где можно найти популярные программы и игры;
- синхронизация данных прохождения игр с телефоном.
Недостатки:
- необходимость активации движка виртуализации в БИОС;
- высокие рекомендованные требования – при минимальном ОЗУ 2 ГБ эмулятор работает нормально только, если оперативной памяти больше 4 ГБ;
- наличие рекламы в бесплатной версии.
Инструкция по установке
Для примера установки эмулятора на ПК с операционной системой Windows можно выбрать одну из самых популярных утилит – BlueStacks.
Перед использованием стоит найти и скачать подходящий вариант (3-ю или 4-ю версию) с сайта разработчика или другого надёжного источника и определиться, куда будет устанавливаться программа.
Порядок действий для установки эмулятора следующий:
Эмулятор готов к использованию. Для установки приложений их следует скачать на ПК из любого источника и запустить через BlueStacks или сразу сделать это с помощью Play Market. Установленные программы могут запускаться и из эмулятора и напрямую с рабочего стола.
Google Search Console
На данный момент в Search Console вы найдете отчет «Удобство для мобильных».
В отчете указаны только те ошибки, которые робот успел обнаружить. Эти примеры помогут понять тип страниц, нуждающиеся в дооптимизации.
Базовые рекомендации:
- не используйте шрифт, для прочтения которого приходится увеличивать масштаб;
- убедитесь, что изображения масштабируются, а значения ширины и позиционирования элементов CSS относительны. Область просмотра должна быть настроена с помощью мета-тега viewport;
- не размещайте элементы навигации слишком близко друг к другу;
- вместо плагинов, несовместимых с большинством мобильных браузеров, используйте HTML5.
В Search Console вы не найдете подробного объяснения, какой контент на странице шире экрана или какие плагины не поддерживаются. Для этого лучше использовать следующий сервис.
Ваш пошаговый алгоритм тестирования мобильных приложений
Обеспечение качества (QA, от английского — Quality Assurance) является неотъемлемой частью жизненного цикла разработки любых приложений, включая мобильные. К сожалению, многие упускают из виду критические особенности тестирования мобильных приложений, которые часто приводят к сбоям, ошибкам в работе приложения и плохому качеству обслуживания клиентов.
Чтобы обеспечить успешную разработку любого приложения, специалист-тестировщик должен принимать участие во всех этапах разработки — от создания концепции и анализа требований, до создания спецификаций тестирования и выпуска готового продукта. Обеспечение качества также является ключевым элементом в последующих, после прохождения этапов разработки, обзорах программного продукта.
Однако часто бывает сложно определить, с чего начать организацию процесса тестирования мобильного приложения. Для беспроблемного тестирования мы рекомендуем просто выполнить девять указанных ниже шагов.
Давайте рассмотрим особенности тестирования мобильных приложений.
Цикл жизни спринтов
Краткая история эмулятора Android
У эмулятора Android, который предоставляет компания Google, история скорее неприятная. В течение первых нескольких лет своего существования он был медленным и довольно глючным. Его вялое поведение было вызвано тем, что он эмулировал чипсет ARM, когда практически все машины для разработки работали под x86. Он также не эмулировал многие функции реальных физических устройств. Так что для серьезной разработки все равно приходилось использовать реальные устройства.
Затем, в 2013 году, появился Genymotion с эмулятором, который фактически запускал Android на x86 в виртуальной машине, размещенной в VirtualBox, что, очевидно, обеспечивало лучшую производительность. Так что многие разработчики перешли на Genymotion — всего лишь с некоторыми оговорками (преимущественно насчет цены).
Примерно в 2016 году Google резко улучшил стандартный эмулятор Android, позволив ему использовать аппаратную виртуализацию x86, и производительность продолжала повышаться с течением времени. Разработчикам потребовалось какое-то время, чтобы восстановить доверие к предоставленным инструментам, но всё с легкостью трансформировалось в лучший опыт эмуляции, который можно получить на десктопе. Совсем недавно, в 2019 году, произошел массивный скачок в плане производительности и функций благодаря Project Marble.
Автоматизация тестирования сайтов, мобильных и веб- приложений: когда делать и какими инструментами
Команды разработки и тестирования стремятся автоматизировать UI-тесты по нескольким причинам. К наиболее примечательным относятся:
- Время. Ручное тестирование движется медленно и не успевает за релизами в полном объеме.
- Стоимость. Ручное тестирование требует значительных ресурсов и затрат.
- Точность. Ручное тестирование склонно к большему количеству ошибок при выполнении повторяющихся задач. Автоматизация снижает вероятность этих ошибок.
- Масштаб. Сложно полагаться на надежность ручного тестирования при выполнении сложных итераций.
- Тренд. Большинство организаций осознали пользу, которую могут извлечь из автоматизированного тестирования.
Таблица сравнения ручного и автоматического тестирования
Разбираем в каких случаях применять автоматическое тестирование.
Критерий | Ручное тестирование | Автоматическое тестирование |
---|---|---|
Скорость | Низкая | Высокая |
Точность | Низкая | Высокая |
Масштабируемость | Низкая | Высокая |
Рентабельность инвестиций в краткосрочное тестирование | Высокая | Высокая |
Рентабельность инвестиций в долгосрочное тестирование | Низкая | Высокая |
Возможность повторного использования теста | Низкая | Высокая |
Покрытие тестов | Низкая | Высокая |
Порог входа | Легко освоить | Требуется постараться |
Прозрачность | Скорее низкая | Скорее высокая |
Адаптивность | Высокая | Требуется постараться |
Лучше всего подходит для: | Юзабилити-тестирование;Исследовательское тестирование;Ранние стадии разработки; Тестирование пользовательского интерфейса;Ad-hoc тесты; | Сквозное тестирование;Регрессионное тестирование;Тестирование стабильных версий пользовательского интерфейса; |
Ребята из SimbirSoft сделали классный обзор инструментов для тестирования и подобрали подходящие инструменты для тестирования.
Инструмент для тестирования iOS- и Android-приложений
Для покрытия тестами основных пользовательских сценариев выбрали Appium по следующим причинам:
- кроссплатформенность, возможность частично переиспользовать код
- подходит для end-to-end тестов, может работать с веб
- наличие в команде специалистов, хорошо знающих Selenium, который служит оболочкой данного фреймворка.
Appium помог успешно провести тесты для iOS и Android. При этом следует учитывать, что подобные end-to-end тесты с Appium не проводятся на каждом merge request, поскольку это занимает много времени. Подробнее →
Инструмент для тестирования веб-приложений и сайтов
Для тестирования веб-приложений и сайтов ребята применяют WebDriver (в связке с Selenium и протоколом автоматизации DevTools). Однажды они нашли статью с исследованием от Giovanni Rago – автора серии полезных материалов о тестировании – и перевели его статью «Puppeteer vs Selenium vs Playwright: сравнение скорости» (Puppeteer vs Selenium vs Playwright, a speed comparison). В итоге решили опробовать новые инструменты, такие как Puppeteer и Playwright. Подробнее →
Этап 9: контрольный этап и резюме
Этот этап включает в себя подробное и полное тестирование — от ранних итеративных этапов тестирования до регрессионных тестов, которые все еще могут потребоваться для стабилизации работы приложения и выявления незначительных дефектов.
На этом этапе тестирования вы можете добавить для проверки новые функции и изменить настройки на те, которых не будет в финальной версии.
После завершения тестирования приложения, дополнительные параметры и функции, добавленные для проверки на этом этапе, удаляются, и окончательная версия становится готовой для представления общественности.
Итоговый отчет о тестировании
Весь процесс тестирования мобильных приложений должен быть тщательно задокументирован. Проверьте дважды, сделаны ли нужные записи, и после этого сформируйте свой окончательный отчет о тестировании (test summary report).
Этот отчет должен включать:
• Важную информацию, выявленную в результате проведенных испытаний; • Информацию о качестве проводимого тестирования; • Сводную информацию о качестве тестируемого мобильного приложения; • Статистику, полученную из отчетов об различных инцидентах; • Информацию о видах тестирования и времени, затраченном на каждый из них.
Следует также указать в отчете, что:
• данное мобильное приложение пригодно для использования в том качестве, в котором заявлено; • соответствует всем критериям приемлемости функционала и качества работы.
Бесплатные вебинары по схожей тематике:
Автоматизация тестирования. Причины, цели, инструменты.
Алексей Тараненко
QA практикум. Техники тест дизайна. Часть 2
Мизевич Кристина
QA практикум. Техники тест дизайна. Часть 1
Мизевич Кристина
Вооружившись сводкой, руководство проекта теперь может решить, готово ли мобильное приложение к выпуску на рынок.
Тестирование мобильных приложений — сложная задача. Приспосабливая эти этапы тестирования к каждому разрабатываемому приложению и тщательно выполняя каждый шаг — вы гарантированно получите полнофункциональный качественный продукт.
В данной статье мы рассмотрели особенности тестирования мобильных приложений. Рассмотренные этапы тестирования важны и для тестирования андроид приложений и как ответ на вопрос как тестировать приложения для iphone.
Важно помнить, что тестирование приложений перед представлением на рынке – важный этап в разработке любых приложений. И, конечно же, тестирование мобильных приложений имеет свои особенности и важные моменты
Ответственно подходите к вопросу разработки и тестирования мобильных приложений, своевременно изучая и применяя актуальные методики и технологии. С нашей стороны мы рекомендуем для изучения курс на ITVDN — Unit тестирование для Android разработчиков.
Также Вам могут быть интересны:
- Видео курсы по специальности Quality Assurance
- Видео курсы по специальности Android Developer
- Видео курсы по специальности iOS Developer
↑ MEmu
Плюсы:
- позволяет играть в бесплатные игры и поставляется с множеством оптимизированной графики;
- можно открыть 3 разных окна для трех версий ОС;
- отсутствуют назойливые рекламные интеграции;
- легко устанавливается, поддерживает клавиатуру, мышь и игровую панель;
- позволяет обмениваться файлами между платформами Android и Windows;
- имеет быструю установку APK с помощью функции перетаскивания.
Минусы:
- интерфейс можно улучшить для лучшего взаимодействия с пользователем, например, добавив определенные настраиваемые темы;
-
не поддерживает все, поэтому очень часто может лагать или надолго зависать.
Тестируйте и отлаживайте приложения с помощью Android Studio
Далее мы увидим, как мы можем тестировать приложения Android из Android Studio как на реальном мобильном устройстве, так и на виртуальной машине, которую мы можем создать благодаря включенному в нее эмулятору.
Скомпилируйте приложение прямо на смартфоне
Если у нас есть новый мобильный телефон, это лучший метод отладки, который мы можем выбрать. Благодаря ему мы можем получить очень точное представление о том, как приложение будет работать на реальном смартфоне, что трудно понять в виртуальных машинах, которые мы можем создать.
Это возможно благодаря Android Debug Bridge , своего рода туннель, через который компьютер может взаимодействовать с Android в режиме разработчика. Чтобы выполнить эту практику, необходимо активировать функции разработчика нашего телефона. Поскольку каждый интерфейс отличается, трудно указать точные шаги для выполнения этой задачи, но, в общем, мы должны сделать следующее:
- Активируйте параметры разработчика (по умолчанию скрытые), щелкнув 5 раз на номере сборки Android.
- Войдите в Опции для разработчиков и включить USB Debugging .
- Подключите смартфон кабелем к компьютеру.
- Установите драйверы ADB (если есть) от нашего производителя. Их мы можем скачать с здесь .
После выполнения предыдущих шагов мы можем проверить, правильно ли мобильный телефон подключен к ПК. Для этого мы должны перейти в каталог установки Android Studio внутри папки android_sdk / platform-tools, открыть окно CMD и выполнить следующую команду: ADB устройства . Если мобильный подключен в режиме отладки, он появится в списке.
Начиная с Android 11, операционная система поддерживает Android Debug Bridge через Wi-Fi. Если мы хотим сохранить USB-кабель (что, с другой стороны, является преимуществом), мы должны активировать беспроводная отладка вариант с Android Параметры разработчика. Теперь из Android SDK мы выполним следующие команды, чтобы связать мобильный телефон с ПК, изменив ipaddr: port на соответствующий IP-адрес и порт. Когда вы запросите у нас PIN-код, он появится на вашем мобильном телефоне, и мы все равно введем его.
- пара adb ipaddr: порт
- adb connect ipaddr: порт
Если беспроводное соединение доставляет нам проблемы, то лучше использовать отладку по USB.
Классификация инструментов
Драйвер
Утилиты автотестирования, как и другие программы, могут взаимодействовать с приложением только через программный интерфейс — по-другому они не умеют. Для работы через другие интерфейсы существуют специальные программы — драйверы.Драйвер — программа, которая предоставляет API для одного из интерфейсов приложения.
Для каждого интерфейса, кроме, собственно, API, необходим свой драйвер. Например, когда вы даёте драйверу для GUI команду “Нажать на кнопку Menu”, он воспринимает её через API и отсылает в тестируемое приложение, где эта команда превращается в клик по графической кнопке Menu. Для взаимодействия с API приложения драйверы не нужны или почти не нужны — взаимодействие программное. А вот при работе с остальными интерфейсами без них не обойтись.
Наиболее сложными обычно являются драйверы для GUI, так как этот интерфейс сильно отличается от обычного для программы общения кодом. При этом в автоматизированном тестировании мобильных приложений GUI наиболее актуален, так как в интеграционном тестировании использовать чаще всего приходится именно его. Наиболее популярные драйвера для GUI в мобильном тестировании — и для Android, — для iOS.
Надстройка
Когда функционала драйвера не хватает или он неудобен и сложен, над нимпоявляется ещё один уровень, который я буду называть надстройкой. Надстройка — программа, которая взаимодействует с приложением через один или несколько драйверов, повышая удобство их использования или расширяя их возможности.
У надстройки могут быть следующие функции:
- Модификация поведения (без изменения API).
Например:- дополнительное протоколирование,
- валидация данных,
- ожидание выполнения действия в течение определённого времени.
- Повышение удобства и/ или уровня абстракции API через:
- использование синтаксического сахара — удобных названий функций, более коротких обращений к ним, унифицированного стиля написания тестов;
- неявное управление драйвером, когда, например, он инициализируется автоматически, без необходимости прописывать каждое такое действие вручную;
- упрощение сложных команд вроде выбора события из календаря или работы с прокручивающимися списками;
- реализацию альтернативных стилей программирования, таких как процедурный стиль или fluent.
- Унификация API драйверов.
Здесь надстройка предоставляет единый интерфейс для работы сразу с несколькими драйверами. Это позволяет, например, использовать один и тот же код для тестов на iOS и Android, как в популярной надстройке .
Фреймворк
С другой стороны тестов находится фреймворк запуска. В рамках данной статьи я буду коротко называть его “фреймворк”. Фреймворк — это программа для формирования, запуска и сбора результатов запуска набора тестов.
В задачи фреймворка входят:
- формирование, группировка и упорядочивание набора тестов,
- распараллеливание набора (опционально),
- создание фикстур,
- запуск тестов,
- сбор результатов их выполнения,
- формирование отчётов о выполнении (опционально).
Можно заметить, что эти функции не связаны с тестированием только мобильных приложений — их можно успешно применять и в тестировании десктоп- и веб-приложений. Дело в том, что фреймворк не должен обеспечивать взаимодействие тестов и приложения — он работает только с тестами, и тип приложения не имеет значения.
Если драйверы и надстройки находятся между тестами и приложением, то фреймворк находится над тестами, организуя их запуск
Поэтому важно не путать понятия “драйвер” и “фреймворк”. Конечно, в некоторых фреймворках есть собственные драйверы для работы с приложениями, но это вовсе не обязательное условие
Самые заметные фреймворки в мобильном тестировании — и .
Комбайны
Наконец, ещё одна группа утилит, использующихся для автоматизации тестирования мобильных приложений, — это комбайны, объединяющие в себе и фреймворки, и драйверы (причём не только мобильные), и даже возможности разработки. , , — все они поддерживают автоматизацию тестирования iOS-, Android-, веб-приложений, а два последних — ещё и десктоп-приложений.
Итак, инструменты мы классифицировали. Осталось определить самые популярные в каждой категории и сравнить их.
Панель эмуляции мобильного устройства
Стоит потратить немного времени на ознакомление с панелью инструментов и меню эмулятора мобильных устройств:
Элементы управления:
- тип устройства («Responsive»);
- текущее разрешение;
- масштаб (экран эмулируемого устройства может быть увеличен или уменьшен);
- кнопка переключения портретной / пейзажной ориентации (если выбрано устройство, отличное от «Responsive»).
Меню с тремя точками позволяет отображать или скрывать дополнительные элементы управления:
- рамка устройства (если доступно, графика телефона или планшета);
- пиксельная линейка;
- соотношение пикселей устройства (например, 2,0 для эмулированных Retina-экранов);
- тип устройства («Смартфон» или «Планшет»);
- дросселирование сети (способ ограничить пропускную способность и протестировать производительность при более медленных соединениях);
- последняя опция позволяет сделать снимок экрана, который будет включать в себя рамку устройства, если она отображается.
Внешние устройства
- Подключение/отключение устройства. Канал связи, по которому оно взаимодействует с приложением (Wi-Fi/Bluetooth).
- Влияние внешнего устройства на логику приложения.
- Конфигурация внешнего устройства. Есть ли какие-то системы, которые администрируют внешнее устройство?
- Максимальное расстояние, на котором происходит взаимодействие.
- Сила/мощность сигнала. Выясните, от чего могут зависеть эти параметры? Например, если beacon спрятать в металлическую банку, то шансы на потерю его сигнала резко возрастает.
- Подключение нескольких внешних устройств одновременно. Например, переключение с одного устройства на другое может привести к любопытным кейсам.
- Подключение к внешнему устройству при свёрнутом приложении/при заблокированном экране.
Эмуляторы и симуляторы устройств
Симуляторы устройств и эмуляторы имитируют не только среду браузера, но и все устройство. Каждый симулятор полезен для тестирования вещей, которые требуют интеграции ОС, например ввода форм с виртуальными клавиатурами.
Эмулятор Android
На данный момент нет способа установить Microsoft Edge на эмулятор Android. Тем не менее, вы можете использовать Браузер Android, Chromium content Shell и Firefox для Android, которые мы рассмотрели позже в этой статье. Chromium Content Shell запускает тот же Chromium, что и Microsoft Edge, но поставляется без специальных функций браузера.
Эмулятор Android поставляется с SDK Android, который необходимо скачать в составе Android Studio. Затем выполните инструкции по настройкам виртуального устройства и запуску эмулятора.
После загрузки эмулятора выберите значок Браузер и проверьте свой сайт в старом браузере Stock для Android.
Chromium оболочки контента на Android
Чтобы установить Chromium для Android, держите эмулятор запущенным и запустите следующую команду:
Теперь вы можете протестировать свой сайт с помощью Chromium content Shell.
Firefox на Android
Как и Chromium content Shell, вы можете получить AK для установки Firefox на эмулятор.
Чтобы установить файл на открытый эмулятор или подключенное android-устройство, запустите следующую команду:
симулятор iOS
Симулятор iOS для Mac OS X поставляется с Xcode, который устанавливается из App Store.
После этого узнайте, как работать с симулятором с помощью документации разработчика Apple.
Примечание
Чтобы не открывать Xcode каждый раз, когда нужно использовать iOS Simulator, откройте его, наведите курсор на значок симулятора iOS в доке, откройте контекстное меню (правой кнопкой мыши) и выберите Keep in Dock. Теперь просто выберите значок всякий раз, когда это нужно.
Microsoft Edge (EdgeHTML) виртуальные машины (VMs) позволяют получать доступ к различным версиям EdgeHTML и Internet Explorer на компьютере через VirtualBox (или VMWare). Выберите виртуальную машину на странице загрузки.