Тестирование мобильных приложений

В современном мире бизнес всё чаще обращает внимание на мобильные технологии. И в этом нет ничего удивительного. Рынок мобильных устройств растёт в разы быстрее рынка домашних компьютеров, позволяя реализовывать новые возможности для развития и продвижения самых передовых бизнес идей. Вместе с тем возрастает и спрос на тестировщиков мобильных приложений.

Разработка мобильного ПО – новая и динамично развивающаяся отрасль, поэтому разработчикам и тестировщикам приходится решать не только типичные IT проблемы, но и преодолевать вновь возникающие, ещё не изведанные трудности. Сложность при этом заключается ещё и в том, что сами инструменты для разработки и тестирования находятся на стадии развития.

Несколько облегчает задачу наличие опыта тестирования Desktop и Web приложений. Однако необходимо помнить, что мобильные технологии имеют ряд особенностей, которые надо учитывать: наличие сенсоров и датчиков, постоянная работа системы, управление тачскрином и прочее.

Данный тренинг направлен на то, чтобы помочь вам преодолеть первоначальные трудности, возникающие при тестировании мобильных приложений.

Во время прохождения курса вы узнаете, как организовать тестирование мобильных приложений, какое устройство выбрать для тестирования, получите представление о построении тестовых стратегий. Особый акцент сделан на работе с платформой Android, как с наиболее распространённой мобильной ОС на данный момент.

В процессе занятий я поделюсь с вами информацией, основанной на личном опыте семилетней работы в области тестирования приложений.

Тренинг рассчитан не только на приобретения теоретических знаний, но и на их отработку, позволяя на практике научиться применять навыки тестировщика мобильных приложений.

Программа тренинга

Урок 1: Особенности мобильного тестирования

Модуль 1: Знакомство

  • Введение в курс: знакомство и условия сдачи

Модуль 2: Базовые понятия

  • Нативные приложени
  • Веб приложения
  • Гибридные приложения
  • Что такое девайс?

Модуль 3: Выбор устройств для тестирования

  • Проблемы фрагментации
  • Виды устройств Android
  • Разрешение экрана
  • Размеры экранов
  • Архитектура процессоров Android устройств
  • Версии Android OS
  • Виды устройств iOS
  • Разрешения экранов
  • Архитектура процессоров iOS устройств
  • Инструменты оценки доли рынка
  • Рекомендации по выбору устройств для тестирования на iOS и Android

Модуль 4: Особенности мобильного тестирования

  • Тестирование связи (Wifi/2G/3G/LTE)
  • Тестирование прерываний
  • Взаимодействие с сенсорами положения и тач сенсором
  • Тестирование геолокации и GPS
  • Тестирование потребления ресурсов
  • Работа с клиент-серверными приложениями
  • Тестирование установки
  • Роль тестировщика в администрировании мобильных устройств
  • Списки тест-кейсов: чеклисты и мнемоники

Модуль 5: Эмуляторы и симуляторы

  • Разница между симулятором iOS и эмулятором Android
  • Особенности тестирования на физических устройствах и эмуляторах/симуляторах

Модуль 6: Фермы мобильных устройств

  • Что такое фермы?
  • Достоинства и недостатки использования ферм
  • Пример использования мобильной фермы

Урок 2: Тестирование Android-приложений

Модуль 1: Установка и настройка Android Studio

  • Установка Android Studio
  • Установка необходимых SDK

Модуль 2: Создание и настройка эмулятора в Android Studio

  • Работа с AVD Manager
  • Выбор параметров
  • Запуск эмулятора

Модуль 3: Функционал эмулятора

  • Боковое меню
  • Геолокация
  • Связь
  • Батарея
  • Функции телефона
  • Другие настройки

Модуль 4: Настройка альтернативного эмулятора Genymotion

  • Что такое Genymotion?
  • Где его взять?
  • Установка приложения
  • Создание виртуального устройства
  • Функции эмулятора Genymotion
  • Подключение эмулятора к Android Studio

Модуль 5: Настройка Android Device Bridge

  • Что такое ADB?
  • Основные команды

Модуль 6: Установка приложений на эмулятор и реальное устройство

  • Установка на эмулятор: drag&drop, Run, adb install
  • Установка на устройство

Модуль 7: Анализ логов и снятие скриншотов

  • Уровни логирования
  • Способы записи логов
  • Скриншоты через Android Studio
  • Скриншоты через настройки эмулятора

Модуль 8: Жизненный цикл операции

  • Понятие операции
  • Android Backstack
  • Состояния операции
  • Переходы между состояниями

Модуль 9: Перехват трафика

  • Настройка Charles
  • Настройка натив
    ного эмулятора для перехвата трафика
  • Настройка Genymotion для перехвата трафика
  • Перехват трафика приложения на примере

Модуль 10: Работа с GPS

  • Примеры приложенний, работающих с GPS
  • Работа с GPS на эмуляторе
  • Загрузка и прогрывание пути .gpx

Модуль 11: Меню разработчика Android

  • Работа с местоположениями
  • Изменение параметров графического интерфейса
  • Отображение курсора и касаний

Урок 3: Тестирование iOS-приложений

Модуль 1: Установка и настройка Xcode

  • Установка iOS
  • Установка необходимых симуляторов

Модуль 2: Функционал симулятора

  • Выбор устройства
  • Работа с акселерометром
  • Эмуляция физических кнопок
  • Touch ID и Apple Pay
  • Замедление анимаций
  • Работа с интерфейсом
  • Работа с геолокацией
  • Network link conditioner

Модуль 3: Запуск приложения на симуляторе

  • Подготовка приложения к установке
  • Установка сертификата Charles на симуляторы
  • Запуск приложения

Модуль 4: Запуск приложения на реальном устройстве

  • Сертификат и Provisioning profiles
  • Создание Apple ID
  • Создание сертификата и Provisioning Profile
  • Запуск приложения

Модуль 5: Артефакты тестировании

  • Передача логов
  • Сохранение скриншотов
  • Запись видео

Модуль 6: Перехват трафика

  • Настройка Charles Proxy
  • Перехват запросов с симулятора
  • Включение SSL-проксирования
  • Перехват запросов с реального устройства
  • Работа с HTTPS-запросами

Модуль 7: Работа с GPX-путями

  • Постановка задачи
  • Импорт пути
  • Просмотр работы GPS

Модуль 8: Жизненный цикл приложения

  • Понимание жизненного цикла
  • Состояния приложения
  • Переходы между состояниями

Урок 4: Организация процесса тестирования

Модуль 1: Процесс разработки приложения

  • Этапы развития мобильного приложения
  • Этап I: Идея
  • Этап II: Стратегия
  • Этап III: Дизайн
  • Этап IV: Разработка
  • Этап V: Выкладка и поддержка

Модуль 2: Выбор стратегии тестирования

  • Что такое стратегия?
  • Постановка цели тестирования
  • Работа с ресурсами
  • Разведка территории
  • Сложности в тестировании мобильных приложений
  • Виды стратегий: единичные и смешанные
  • Мнемоники
  • Пример выбора стратегии

Модуль 3: Гайдлайны для Android и iOS

  • Роль тестировщика в работе над дизайном приложения
  • Гайдлайны для Android
  • Гайдлайны для iOS

Модуль 4: Разработка

  • Понятия альфа- и бета-тестирования
  • Проведение альфа- и бета-тестирования на Android через Google Play
  • Проведение альфа- и бета-тестирования на iOS через TestFlight
  • Сервисы для альфа- и бета-тестирования: TestFairy, HockeyApp
  • Пример использования сервиса TestFairy
  • Tips&tricks для проведения альфа- и бета тестирования
  • Crowd-тестирование

Модуль 5: Monkey тестирование

  • Что такое UI/Application Exerciser Monkey?
  • Установка и запуск приложения на эмуляторе
  • Запуск Mokey на эмуляторе
  • Тонкая настройка нажатий Monkey
  • Параметры запуска: задержка, seed, действия при ошибке

Модуль 6: Выкладка

  • Особенности выкладки на мобильных устройствах
  • Особенности выкладки на Android: время, staged rollout, разрешения
  • Особенности выкладки на iOS: время, обновления
  • Как работать с экранами обновления
  • On-the-fly features

Модуль 7: Мониторинг и поддержка

  • Особенности мониторинга на мобильных устройствах
  • Сервисы для построения графиков
  • Сервисы сбора crash-логов
  • Статистические сервисы
  • Мониторинг отзывов

Модуль 8: A/B тестирование

  • Что такое A/B тестирование?
  • Пример проведения тестирования
  • Инструменты A/B тестирования

Модуль 9: Полезные утилиты тестировщика

  • Одноразовые email
  • Приём входящих СМС
  • Сокращение ссылок
  • Передача кода и логов
  • Скриншоты
  • Передача файлов
  • Системные параметры устройства

Системные требования:

Для выполнения заданий в уроке по Android вам потребуется

  • Windows 7/8/10 (64-bit), либо Mac OS El Capitan и старше, либо Ubuntu 14.04 и старше
  • Процессор i-серии (i3, i5, i7) или аналогичный от AMD
  • Минимум 4 GB RAM, лучше 8
  • 4 GB на жёстком диске
  • Разрешение экрана минимум 1280 x 800
  • Желательно телефон на Android с OS 5.1 и старше

Для выполнения заданий в уроке по iOS вам потребуется

  • Mac OS El Capitan и старше
  • 4 GB RAM, лучше 8
  • 4 GB на жёстком диске
  • iPhone или iPad с iOS 9.3.5 или старше

Менее производительные машины также могут запускать эмуляторы, однако работать эмуляторы будут долго и нестабильно.

Все процессоры AMD, а также некоторые процессоры старые Intel не поддерживают виртуализацию VT-X. В таком случае можно будет воспользов
аться альтернативным эмулятором Genymotion.

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

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

Зачем нужны испытания?

Тестирование приложений подразумевает различные испытания с применением тестовых способов и инструментов. Они определяют соответствие продукта установленным функциям и характерным особенностям (удобству пользования, мобильности, конфиденциальности и т. д.).

Тестирование Android приложений или оных для iOS отличается от проверки обычного программного обеспечения множеством определённых требований. Это объясняется тем, что приложения должны работать корректно независимо от платформы, операционной системы, размера экрана девайса и т. д. Кроме этого, большая часть мобильных устройств поддерживают беспроводные сети (2G, 3G Wi-Fi), которые могут негативным образом воздействовать на функционирование компонента. Цена ошибки в релизе приложения может быть высокой.

Тестирование мобильных приложений

Именно поэтому рекомендуется проверять все баги своевременно.

Особенности тестирования

В связи с большим количеством различий между проверкой мобильных приложений и десктопных аналогов, необходимо тщательно исследовать конкретные моменты. Обычно тестирование приложений на iPhone (работающих на iOS) или Андроид для предусматривает испытания по таким критериям:

  1. Удобство использования. Даёт возможность оценить интерфейс, сценарии операций, применение мультимедиа и т. д.
  2. Работа на разных девайсах. Здесь тестируется корректность функционирования приложения на разных устройствах, для которых оно предназначено (ПК, ноутбук, планшет, смартфон). При этом испытания проводятся на совместимость с различными операционными системами, другими возможностями, разрешением дисплея и т. д.
  3. Потребление ресурсов системы. На этом этапе проводится контроль над использованием продуктом памяти устройства и обнаруживаются «слабые» места контента.
  4. Мультиязычность. Большинство современных приложений поддерживают несколько языков, благодаря чему увеличивается количество иностранных пользователей. Поэтому тестируется корректность перевода и отображение строк на экране.
  5. Обновления. Любые приложения требуют периодического обновления. Здесь следует проверить возможности проведения этой манипуляции с максимальным удобством для пользователя.
  6. Внешние прерывания. Входящие звонки, сообщения, отключение Wi-Fi и прочие помехи не должны остановить или ухудшить функционирование приложения.

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

В нашей компании проводится тестирование приложений iOS и Android по вышеперечисленным требованиям. В результате проделанной работы вы получаете гарантии того, что готовый продукт не будет содержать алгоритмических, программных или визуальных багов. Таким образом, приложение сможет удовлетворить пользователя по всем параметрам.

Заказывайте тестирование Андроид приложений в компании Fixapp! Посетите наш офис, который находится в Москве, или получите консультацию по телефону.

Стоимость данной услуги — от 25.000 руб., подробную оценку уточняйте по телефону или эл. почте.

Существует два подхода к написанию тест-требований — функциональный и структурный. Тест-требования, написанные в рамках функционального подхода, основываются на системных требованиях и требованиях к программному обеспечению системы.

Место тест-требований среди проектной документации
Тест-требования, написанные в рамках структурного подхода, пишутся на основании описания архитектуры системы и принимают в расчет строение исходных текстов системы. Из-за такого различия функциональный и структурный подходы часто называют подходами черного и белого ящиков. Структурные тест-требования важны в том случае, когда к надежности системы предъявляются повышенные требования, т.е. когда важно проверить не только, насколько корректно система в целом отрабатывает сценарии своей работы (корректные и некорректные с точки зрения пользователя), но и как в различных нестандартных ситуациях будут вести себя отдельные ее компоненты.

На практике почти всегда применяются оба подхода к разработке тест-требований. В результате в состав документации проекта включаются тест-требования верхнего уровня и тест-требования нижнего уровня, по которым составляются тест-планы (Рис 10.2).
Свойства тест-требований

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

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

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

Проверить, что при <описание внешнего воздействия> [происходит]
<описание реакции программы>.
Тест-требования, написанные в рамках функционального подхода, обычно разделяют на следующие группы:

функции контроля входных данных;
функции обработки ошибок (ввода, вычислений);
функции получения основного результата;
функции обработки особых ситуаций;
функции оформления и вывода результатов.
Конкретизация программной реализации может потребовать уточнений или расширений реакций на различные ситуации, возникающие при решении задачи. В этом случае рекомендуется оформить дополнительные тест-требования низкого уровня для структурной проверки системы.

Совокупность тест-требований должна обладать некоторыми важными свойствами: полнота, верифицируемость и непротиворечивость.

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

При изменениях требований к системе для поддержания полноты должны меняться и тест-требования.

Как системные требования и требования к ПО, так и тест-требования должны обладать свойством верифицируемости. Т.е. для каждого требования должна существовать возможность определить четкий критерий проверки — выполняется это требование в реализованной системе или нет.

Примером не верифицируемого требования может служить следующее "требование":

Система должна иметь интуитивно понятный пользовательский
интерфейс.
Очевидное "тест-требование" будет выглядеть как

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

Тестирование мобильных приложений: руководство для новичков

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

При большом количестве тест-требований и частых их изменениях может возникнуть ситуация, в которой различные требования перестают быть согласованными. В этом случае такие требования имеют взаимоисключающие друг друга критерии проверки. Т.е., например, в простом случае, одно тест-требование на пользовательский интерфейс может декларировать необходимость проверки того, что введенный пользователем пароль имеет длину не более 16 символов, а тест-требование к базе данных системы — что допустимый размер пароля, сохраняемого в БД — от 4 до 12 символов. В этом случае эти два требования являются противоречивыми. Для того, чтобы устранить это противоречие, нужно проводить анализ системных и функциональных требований с последующей модификацией тест-требований. Тест-требования по которым составляются тест-планы для тестирования системы, обычно обладают свойством непротиворечивости, поскольку противоречия обычно устраняются на уровне верификации проектной документации. Однако противоречия могут быть выявлены и позже, в результате попытки создать адекватные тестовые примеры.
Тест-планы

Sencha Touch — Builds


Previous Page

Next Page  


Today’s demand for a web application is to develop a fast application with less development efforts. Sencha Touch helps in doing so with ease as it provide a number of build libraries to choose from, based on the development or production code along with the facility to create a custom build.

Sencha Touch build libraries loads the classes dynamically. Dynamic loading stands for the classes that gets loaded when required and only those classes will be included which are required in the application. This makes the application run faster as the number of files to be loaded reduces, simultaneously decreasing the time to load.

Sencha Touch 2.x provides the following five build libraries.

Sr.No. Builds & Usage
1

sencha-touchdebug.js

This build is used while developing the application locally.

Тестирование мобильных приложений

It is a nonminified version with all the comments and debug logs for easy debugging while development.

2

senchatouch.js

This file is used for production purpose. It is the minified version when we have a custom build.

3

sencha-touchall.js

This file is used for production purpose. It is the minified version when we do not have a custom build.

4

sencha-touchall-debug.js

This file is used for debugging in production. It is not minified and has all the comments and debug logs.

5

sencha-touchall-compat.js

This build is used to migrate the version 1.x to version 2.x. It gives a warning wherever version 1.x code is not compatible and needs code modification.

With the above mentioned builds, Sencha Touch provides a facility to create custom builds.

Advantages of Having a Custom Build

Custom build does not load all the touch files. It loads only those files, which we are using in the application, which makes the application faster and easily maintainable.

Sencha CMD is used to create a custom build. To create a custom build in Sencha CMD, go to the directory where the app file resides and type one of the following commands to create a build.

Sr.No. Command & Usage
1

sencha app build native

Builds the app and prepares a file called packager.temp.json that you can use to package an application—the packager.temp.json is the same as packager.json, but contains additional paths.

2

sencha app build -run native

Builds and automatically packages the application, and launches the appropriate simulator.

3

sencha app build package

Builds the app with packaging support, but does not configure a packager JSON file. This is useful for projects that manually maintain multiple packager.json files.

Once the build is successful, it will generate all-classes.js file which we need to include in our index.html to make it production ready.

Following code shows the changes to be done for production ready code.

Index.html before building application

<!DOCTYPE html> <html> <head> <link href = «https://cdn.sencha.com/touch/sencha-touch-2.4.2/resources/css/sencha-touch.css» rel = «stylesheet» /> <script type = «text/javascript» src = «https://cdn.sencha.com/touch/sencha-touch-2.4.2/sencha-touch-debug.js»></script> <script type = «text/javascript» src = «app.js»> </script> </head> <body> </body> </html>

Index.html after building the application

<!DOCTYPE html> <html> <head> <link href = «https://cdn.sencha.com/touch/sencha-touch-2.4.2/resources/css/sencha-touch.css» rel = «stylesheet» /> <script type = «text/javascript» src = «https://cdn.sencha.com/touch/sencha-touch-2.4.2/sencha-touch.js»></script> <script type = «text/javascript» src = «app.js»> </script> <script type = «text/javascript» src = «app-classes.js»> </script> </head> <body> </body> </html>


Previous Page

Print

Next Page  


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

Книга содержит примеры ключевых результатов процесса испытаний. Структура книги Книга состоит из трех частей и организована следующим образом:

Часть I. Процесс быстрого тестирования. В этой части даны определения основных понятий и терминов, имеющих отношение к тестированию. В ней описаны процессы быстрого тестирования, которые тесно интегрированы с общим жизненным циклом разработки программного обеспечения. Рассматривается традиционная каскадная модель разработки программных продуктов, равно как и жизненные циклы, в основу которых положены инкрементальные поставки и построение эволюционно развивающихся прототипов. Каждая стадия процесса разработки программного продукта исследуется с точки зрения специалиста по тестированию, при этом дается описание методов обнаружения и предупреждения дефектов как средств повышения эффективности тестирования.

Часть II.

Как тестировать мобильное приложение

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

Часть III. Примеры выполнения быстрого тестирования. В третьей части приводятся примеры реализации процессов и технологий, которые обсуждались в двух предыдущих частях книги. В основе этих примеров лежит набор инструментальных средств управления тестированием (Test Management Toolkit, TMT), который является чисто учебным приложением. Продукт ТМТ позволяет руководителям тестовых работ и специалистам по тестированию осуществлять планы проведения испытаний, оглашать сообщения о дефектах, результаты тестирования и другую информацию, имеющую отношение к тестированию. В условиях Web-приложений появляется возможность одновременной работы нескольких пользователей над несколькими проектами независимо от их географического удаления друг от друга.

Скачано: 5808 раз

Скачать книгу

 

Комментарии

GAYANE, 25.02.2011 08:27

🙂

Vardan, 16.07.2011 16:16

😀

Nadrav, 24.01.2012 14:53

xD

BAYANE, 21.02.2014 04:20

=^_^=

Roman, 17.04.2014 22:22

-___-

Ebatron, 18.05.2015 17:23

8==э

Нормальный человек, 24.08.2016 07:47

Что за херня творится тут в комментах?

Zbs, 18.05.2017 21:40

Да все збс тут в комментах!

 

Оставить комментарий

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *