Файл: Функциональное тестирование программного обеспечения на примере мобильных приложений (Характерные особенности тестирования мобильных приложений).pdf
Добавлен: 30.03.2023
Просмотров: 330
Скачиваний: 2
- Фактор рекламы в мобильном приложении должен пройти проверку по следующим факторам:
- реклама не должна перекрывать кнопки управления приложением,
- реклама должна иметь доступную кнопку закрытия, потому что чаще всего пользователь ее не ищет, а просто удаляет приложение с концами.
- При проверке локализации необходимо учитывать:
- на другом языке на экране должно хватить места для текста,
- даты должны соответствовать формату установленного региона,
- временные настройки должны быть соблюдены.
- При проверке энергопотребления необходимо проверять насколько сильно ваше мощное приложение опустошает батарею устройства. Скорее всего пользователь удалит его, если из-за него мобильное устройство придется под заряжать слишком часто[80].
К основным этапам функционального тестирования мобильного приложения можно отнести[81]:
- Тестирование документации. Проверка документации — это необходимый подготовительный этап процесса тестирования мобильных приложений. Фактически, тестирование начинается до процесса разработки программного обеспечения. Тестировщики получают навигационные диаграммы, схемы экрана, другие требования. Эти требования анализируются на предмет полноты и несогласованности. Противоречия в требованиях должны быть решены до начала разработки. На этом этапе создаются и анализируются требования (спецификация, PRD), план тестирования, тестовые сенарии, матрица отслеживания[82].
- Основной этап функционального тестирования. Функциональное тестирование направлено на работу приложения в соответствии с определенными требованиями. Проще говоря, тестировщик проверяет, выполняет ли приложение ожидаемые функции, которые обычно описываются в спецификации[83]. При этом, необходимо обратить внимание на следующие важные факторы при проведении функционального тестирования вашего мобильного приложения:
- Тип приложения, определяемый его бизнес-функциональностью (социальные сети, банковское дело, образование, заказ и доставка продуктов питания, билеты, игровая индустрия и т. д.).
- Целевая аудитория (компании, пользователи, образовательная среда и т. д.).
- Каналы распространения (Google Play, магазин приложений и т. д.)
Стоит также рассмотреть основные проверки, которые должны быть проведены для определения функциональности мобильных приложений:
- Установка и запуск приложения
- Установка приложения должна выполняться без значительных ошибок, если устройство соответствует системным требованиям.
- Необходимо убедиться, что приложение автоматически запускается правильно.
- Необходимо убедиться, что руководство пользователя доступно.
- Необходимо убедиться, что работа приложения во время запуска / выхода соответствует основным требованиям.
При тестировании полей необходимо проверить правильность функционирования необходимых полей, а также убедится, что обязательные и необязательные поля отображаются по-разному[84].
В процессе тестирования функциональности нужно убедится, что заявленная цена и контент соответствуют полученной пользователем информации, убедится, что пользователь может выполнять типичные операции: покупка, добавление товаров в корзину, заказ товаров, а также нужно убедится, что приложение поддерживает платежные операции через платежные системы, такие как Visa, Mastercard, Paypal[85].
Кроме того, требуется проверка на возможность восстановление покупки независимо от устройства, но с привязкой к учетной записи[86].
В функциональное тестирование прерываний входит проверка следующих элементов мобильного приложения:
- Входящие и исходящие звонки, SMS и MMS.
- Разрядка / снятие батареи.
- Отключение и подключение сети / Wi-Fi.
- Отсоединение и подключение SD-карты.
- Зарядка устройства.
Постоянное тестирование отзывов пользователей включает в себя тестирование[87]:
- Загрузки сообщений и статистики,
- Соответствующей реакции кнопок при нажатии,
- Сообщений об ошибках доступа к сети.
- Попытку удалить важные информационные сообщения.
- Доступность и синхронизация звуковых, вибрационных и визуальных уведомлений.
- Внешний вид экрана (сообщения) в конце процесса (игры).
Важнейшим этапом функционального тестирования мобильного приложения является тестирование обновлений. В данную процедуру включается процессы, позволяющие убедится в том, что[88]:
- Все пользовательские данные сохраняются после обновлений.
- Ход обновления отображается правильно.
- Обновления поддерживаются более старыми операционными системами.
- Тестирование различных способов установки обновлений (Wi-Fi, Bluetooth, USB) успешно пройдены.
Тестирование ресурсов устройства дает возможность выявить соответствия приложения следующим требованиям:
- Отсутствие места для установки или запуска приложения.
- Утечка памяти. Обратите внимание на окна с большой информацией и задачами с длинным рабочим процессом.
- Установка / замена приложения на SD-карте.
- Отсутствие некоторых функций, поддерживаемых приложением (3G, SD-карта).
- установленное приложение не мешает нормальной работе других приложений и не использует их память.
К дополнительным процедурам тестирования можно отнести[89]:
- Тестирование правильности подключения / разъединения игроков, подключения игроков через разные сети.
- Убедитесь, что сообщения об ошибках верны и уместны.
- Проверьте подключение к аналитическим инструментам, таким как Google Analytics.
- Тестирование энергопотребления.
- Проверьте необходимые параметры правильной работы с социальными сетями — «Поделиться», «Опубликовать», «Навигация».
- Юзабилити-тестирование направлено на обеспечение удобства использования приложения, создание интуитивно понятного интерфейса, соответствующего принятым стандартам. Он выполняется для создания быстрых и простых в использовании приложений[90]. Вот 3 основных критерия оценки приложений[91]:
- Удобство,
- КПД,
- Эффективность.
Рассмотрим простой контрольный список для проведения юзабилити-тестирования мобильных приложений:
- Убедитесь, что кнопки имеют нормальный размер и помещены в одну область экрана.
- Убедитесь, что приложение работает в многозадачном режиме, когда это необходимо.
- Проверьте навигацию важных модулей приложений.
- Убедитесь, что значки и изображения выглядят естественно в среде приложения.
- Убедитесь, что цвет кнопок, которые выполняют одну и ту же функцию, одинаковый.
- Текст должен быть простым, понятным и видимым для пользователя. Можно читать короткие предложения и параграфы.
- Определите оптимальный размер шрифта.
- Обеспечьте правильную работу системы Zoom-in and Zoom-out.
- Проверьте, что контекстные меню не перегружены.
- Убедитесь, что приложение может быть прервано любым состоянием и что оно возобновляет работу в том же состоянии.
- Убедитесь, что компоненты приложения синхронизированы с действиями пользователя.
- Убедитесь, что пользователь может вернуть или отменить действие, если он нажал неправильную кнопку.
- Убедитесь, что скорость ответа элемента достаточно высока.
- Тестирование пользовательского интерфейса UI выполняется для обеспечения соответствия графического пользовательского интерфейса вашего приложения спецификациям[92]:
- Обеспечить соответствие стандартам пользовательского интерфейса. Соответствие стандартным разрешениям экрана: 640 × 480, 800 × 600, 1024 × 768, 1280 × 800, 1366 × 768, 1400 × 900, 1680 × 1050[93].
- Протестируйте работоспособность приложений на разных устройствах.
- Проверьте основные элементы дизайна: кнопки, значки, цвета, ссылки, шрифты, размеры шрифта, макет, текстовые поля, форматирование текста, ярлыки, титры, кнопки, списки и т. д.
- Убедитесь, что реклама не перекрывает кнопки управления приложениями.
- Убедитесь, что у рекламы есть доступная кнопка закрытия.
- Проверьте отображение всех элементов с ориентацией на портретную и альбомную страницу.
- Тестирование совместимости. Тестирование совместимости проводится для обеспечения оптимальной производительности приложений на разных устройствах — с учетом их размера, разрешения экрана, версии, оборудования и т. д.
Кросс-платформенное тестирование помогает тестировать мобильное приложение на разных ОС: Windows, iOS, Android и BlackBerry и т. д. Кросс-браузерное тестирование позволяет обеспечить правильную работу приложения в разных конфигурациях браузера: Mozilla Firefox, Google Chrome, Opera Mini и т. д.[94]
Тестирование базы данных предназначено для проверки правильной работы вашего приложения в разных конфигурациях базы данных: Oracle, DB2, MySql, MSSQL Server, Sybase. При тестировании конфигурации устройства должны учитываться такие параметры[95]:
- Тип устройства: смартфон, планшет и т. д.
- Конфигурация устройства: ОЗУ, тип процессора, разрешение экрана, емкость аккумулятора и т. д.
- Тестирование конфигурации сети выполняется для обеспечения правильной работы в различных сетевых конфигурациях (GSM, TDMA) и стандартах (2G, 3G, 4G).
- Тестирование производительности - это набор типов тестирования, целью которого является определение работоспособности, стабильности, потребления ресурсов и других атрибутов качества приложения при различных сценариях использования и нагрузках.
Основные цели тестирования производительности[96]:
- Проверка времени отклика приложения на различные типы запросов, чтобы убедиться, что приложение работает в соответствии с требованиями для нормальной загрузки пользователя. (Нагрузочное тестирование).
- Тестирование работоспособности приложения при нагрузках, превышающих количество пользователей в несколько раз. (Стресс-тестирование).
- Изучите работоспособность приложения для долговременной работы при нормальной нагрузке. (Стабильность).
- Проверяйте работу в условиях «расширенной» базы данных в обычное время. (Тестирование объема).
- Определите количество пользователей, которые могут одновременно работать с приложением. (Параллельное тестирование).
- Тестирование безопасности предназначено для проверки безопасности системы, а также для анализа рисков, связанных с обеспечением целостного подхода к защите приложений от хакеров, вирусов, несанкционированного доступа к конфиденциальным данным[97]:
- Убедитесь, что данные пользователей приложения (логины, пароли, номера банковских карт) защищены от сетевых атак автоматизированных систем.
- Убедитесь, что система безопасности приложений требует надежного пароля и не позволяет злоумышленнику получать пароли других пользователей.
- Убедитесь, что приложение не предоставляет доступ к конфиденциальному содержимому или функциям без надлежащей проверки подлинности.
- Защитите приложение и сеть от DoS Attacks.
- Защитите приложение от вредоносных атак на клиентов.
- Предотвратите возможные вредоносные последствия кэширования файлов.
- Изучите файлы пользователей и предотвратите их возможные негативные последствия.
- Анализ взаимодействия системных файлов, выявление и исправление уязвимостей[98].
- Тестирование восстановления проверяет тестируемое приложение с точки зрения его способности выдерживать и успешно восстанавливаться после возможных сбоев, вызванных ошибками программного обеспечения, сбоями оборудования или проблемами связи[99]:
- Проверяйте эффективное восстановление приложения после непредвиденных аварийных ситуаций.
- Обеспечьте процесс восстановления данных после перерыва в соединении.
- Проверьте восстановление после сбоя системы и сбоя транзакции.
- Проверьте способность приложения обрабатывать транзакции в случае сбоя питания (низкая батарея, неправильное закрытие приложения и т. д.).
Глава 3. Практическое применение инструментов функционального тестирования мобильных приложений
Наиболее распространёнными на данный момент инструментами для функционального тестирования мобильных приложений являются:
- Calabash - это фреймворк для автоматизации функционального тестирования, который является своего рода драйвером, управляющим работой приложения на девайсе или симуляторе. Подходит как для Android-приложений, так и для приложений для iOS. Разработкой и поддержкой занимается компания Xamarin. Также компания Xamarin предоставляет платную услугу тестирования в «облаке»[100].
- Appium - это open source фреймворк, который помогает автоматизировать тестирование мобильных приложений. В последнее время Appium часто упоминают на конференциях, а используется он даже Яндексом.
- Robotium предназначен для Android-приложений. С помощью него разработчики могут писать функциональные тесты, охватывающие несколько Android активити[101].
- Espresso — это инструмент для тестирования пользовательских интерфейсов Android-приложений. Основной API невелик и прост, но поскольку исходный код инструмента открыт, вы можете расширить его для своих нужд[102].
- iOS UI automation - родной инструмент функционального тестирования программ для устройств Apple.
- MonkeyRunner - API для написания программ, которые управляют Android-устройством или эмулятором извне Android-кода. Дает возможность написать программу на Python, которая установит приложение или тестовый пакет, запустит его, отправит нажатия, сделает скриншоты интерфейса и сохранит их.
- Ranorex — это GUI-фреймворк для автоматизации тестирования настольных, веб- и мобильных приложений. У него нет своего языка — вместо этого он использует C# и VB.NET.
- TestFairy. При публичном тестировании мобильных приложений очень сложно узнать, из-за чего конкретно у пользователя возникла та или иная проблема. TestFairy решает эту проблему, записывая все тесты на видео, а также запоминая технические характеристики устройства[103].