Файл: Функциональное тестирование программного обеспечения на примере мобильных приложений (Характерные особенности тестирования мобильных приложений).pdf
Добавлен: 30.03.2023
Просмотров: 329
Скачиваний: 2
Кроме нагрузочного тестирования проводят испытания в условиях минимальных аппаратных средств и максимальной нагрузки – стрессовое тестирование, а также, испытания в условиях предельных объемов обрабатываемой информации – объемное тестирование.
Выделяют еще один вид тестирования: тестирование стабильности и надежности, которое включает в себя не только длительное испытание программного продукта в нормальных условиях, но и способность его возвращаться в нормальный режим функционирования после непродолжительных периодов стрессовых нагрузок[58].
Как уже было указано выше, тестирование проводится в соответствии с программой и методикой испытаний, которая разрабатывается в соответствии с ГОСТ 34.603-92.
Для проведения тестирования разрабатывается контрольный пример, который должен содержать достаточно данных для проверки всех режимов работы программного продукта. Обычно, контрольный пример создается совместно заказчиком и исполнителем на основе реальных данных[59]. Для проведения всех видов тестирования производительности чаще всего создается так называемый генератор данных, который позволяет в автоматическом режиме создать достаточное количество данных, для достижения объективного результата при оценке производительности.
В ходе проведения тестирования составляется протокол тестирования, куда заносится информация о прохождении всех этапов и шагов тестирования и замечаниях полученных на испытаниях. Если результат тестирования отрицательный, проводится устранение недостатков и повторное тестирование[60].
Исследовательское тестирование (ad hoc тестирование - подвид функционального тестирования. Оно применяется в быстрорастущих проектах с гибкими методиками разработки, где нет четкой документации и требований. Исследовательское тестирование - высший пилотаж в тестирование программного обеспечения. Качественное тестирование доступно специалистам с высшей квалификацией и практически полностью зависит от исполнителя, его опыта, знаний (как в предметной области, так и в методиках тестирования), способности быстро проникать в сущность.
Нагрузочное тестирование - процесс анализа производительности тестируемой системы под воздействием нагрузок[61]. Цель нагрузочного тестирования- определить способность приложения к внешним нагрузкам. Обычно испытания проводятся в несколько этапов[62]:
1. Генерация тестовых сценариев. Для эффективного анализа сценарии должны быть наиболее близки к реальным сценариям использования. Важно понимать, что всегда возможны исключения, и даже самый подробный план тестирования может не покрыть отдельно взятого случая.
2. Разработка тестовой конфигурации. Имея сценарии тестирования, важно распределить порядок возрастания нагрузки. Для успешного анализа необходимо выделить критерии оценки производительности (скорость отклика, время обработки запроса и т.д.).
3. Проведение тестового испытания. При проведении тестов важно своевременно следить за исполнением сценариев и откликом тестируемой системы. Для эмуляции высоких нагрузок требуется серьезная аппаратная и программная инфраструктура. В некоторых случаях для удешевления работ применяются методы математического моделирования. За основу берутся данные, полученные при низких нагрузках, и аппроксимируются. Чем выше уровень моделируемой нагрузки, тем ниже точность оценки. Однако подобный способ существенно сокращает расходы[63].
Основная особенность автоматизированного тестирования - возможность быстрого проведения регрессионных тестов. Главными плюсами автоматизации является увеличение эффективности персонала, более раннее обнаружение дефектов и более высокое качество бизнес-процессов[64]. Эти преимущества компенсируются существенным недостатком: дороговизна, - из-за высокой цены на внедрение и поддержку автоматизации тестирования, около 50% компаний до сих пор применяют в основном ручное тестирование.
Любое приложение создается для того, чтобы им воспользовались. Удобство использования - важный качественный показатель программы. IT индустрия знает множество примеров, когда проекты взлетали после удачного исправления удобства использования[65]. Чем шире аудитория, тем важнее фактор юзабилити. Тестирование юзабилити включает в себя детальный анализ поведения пользователей. Для оценки эргономики важно иметь данные не только о скорости выполнения бизнес-задачи, но и об эмоциях пользователя, мимике лица, тембра голоса.
У любой системы есть предел нормального функционирования. При превышении предела система попадает в состояние стресса и значительно меняет свое поведение. Стресс тестирование проверяет работу приложения в условиях превышения предлов нормального функционирования. Особенно это важно для "критичных" программ: банковского ПО, программ авиационной отрасли, медицины. Стресс тестирование проводят не только на стадии разработки программного обеспечения, но и на протяжении всего цикла функционирования с целью получения и обработки данных поведения системы за долгий период времени[66].
Глава 2. Характерные особенности тестирования мобильных приложений
Мобильные приложения представляет собой приложения, процесс тестирования которых значительно отличается от тестирования десктопных приложений[67]. При разработке мобильных приложений, а следовательно, и при тестировании, следует учитывать ряд определенных моментов[68]:
- мобильные устройства — это системы, которые чаще всего имеют не шибко мощную начинку. Они по определению не могут работать как персональный компьютер, поскольку слабее в разы.
- прогресс в сфере информационных приложений движется очень быстро, поэтому операционные системы мобильных устройств быстро устаревают. Кроме того, есть предел на обновление их ОС. К примеру, на Iphone 4 — это версия 7.1.2.
- многообразие экранов, их расширений и цветов. В отличие от монитора компьютера, экран мобильных устройств может менять ориентацию, что также необходимо учесть при разработке и тестировании мобильных приложений.
- существует определенный список обязательных параметров мобильных приложений, которые создаются производителями устройств. Им следовать нужно обязательно.
- мобильное устройство чаще всего находится в движении, поэтому следует ожидать, что могут возникнуть какие-то случайные действия на устройстве[69] (если оно не заблокировано, если щекой нажимаешь кнопки или кто-то тебя пинает). При разработке приложения для мобилки нужно также учесть его пребывание в разных погодных условиях, при разном свете, поэтому нужно использовать контрастные цвета.
- необходимо помнить, что основной задачей, к примеру телефона, по прежнему являются звонки, и приложение ну никак не должно мешать этой прямой и главной функции устройства.
- разные мобильные устройства обладают разными примочками. И наполнение вашего приложения должно им соответствовать.
- при тестировании мобильных приложений все-таки следует пренебречь эмуляторами, если у вас есть такая возможность. Дело в том, что в них не всегда функционал соответствует всем возможностям реального девайса.
- на мобильных устройствах может быть представлено большое разнообразие специфических операционных систем и конфигураций комплектующих.
- устройство постоянно пребывает в состоянии поиска сети. При тестировании следует проверить работу приложения на разных скоростях передачи данных.
Еще одна важная вещь в процессе тестирования мобильных приложений — это тип приложения. Существует три основных типа мобильных приложений[70]: мобильные веб-приложения, нативные приложения и гибридные приложения.
Фактически, мобильным веб-приложением является веб-сайт, открытый в гаджете (смартфоне или планшете) с помощью мобильного браузера[71]. Достоинства мобильных веб-приложений:
- Простая разработка.
- Легкий доступ.
- Простое обновление.
- Мобильные веб-приложения не требует установки.
Недостатки мобильных веб-приложений:
- Нет поддержки автономных функций.
- Ограниченная функциональность в сравнении с гибридными и нативными приложениями (нет доступа к файловой системе и локальным ресурсам)
- Проблемы с перераспределением: Google Play и App Store не поддерживают перераспределение мобильных веб-приложений.
Нативное приложение — это приложение, разработанное специально для одной платформы (Android, iOS, BlackBerry)[72]. Достоинства нативных приложений:
- Нативное приложение работает в автономном режиме.
- Оно может использовать все функции своего устройства.
- Продвинутый пользовательский интерфейс.
- Push-уведомления для удобства пользователей.
Недостатки нативных приложений:
- Разработка нативных обходится дороже в сравнении с мобильными веб-приложениями.
- Требуется больших затрат на техническое обслуживание[73].
Гибридное приложение — это сочетание нативного и мобильного веб-приложений. Его можно определить как отображение содержимого мобильного сайта в формате приложения. Достоинства гибридных приложений[74]:
- Более рентабельно по сравнению с нативным приложением.
- Простое распространение.
- Встроенный браузер.
- Особенности устройства.
Недостатки гибридных приложений:
- Работает не так быстро, как нативное приложение.
- Графика менее адаптирована к ОС в сравнении с нативным приложением.
Процесс тестирования начинается до разработки и сразу после передачи разработчикам навигационной схемы и дизайна макетов экранов. Этих материалов более чем достаточно для начала процесса разработки. Но в навигационной схеме зачастую не хватает некоторых элементов: нет каких-либо экранов, на которые предусмотрен переход, не прописаны ограничения на поля ввода, к некоторым пунктам меню нет доступа не из одного экрана или меню, не отображаются ошибки и т.д. Еще одна существенная проблема – неочевидность предоставленной информации: анимация, работа в критических ситуациях, работа скрытого от пользователя функционала приложения.
Мобильное приложение должно быть интуитивно понятным, удобным, работать бесперебойно, безопасно, круглосуточно и достаточно быстро реагировать на действия пользователя[75]. Рассмотрим основные моменты и особенности тестирования мобильных приложений, на которые стоит обратить внимание при функциональном тестировании мобильных приложений[76]:
- К размеру экрана и touch-интерфейса предъявляются следующие требования:
- удобный размер кнопок, чтобы не надо было искать ее на экране и попадать с третьего раза по ней,
- скорость отклика элементов (высокая; нажатая клавиша должна визуально отличаться).
- При тестировании мобильного приложения на возможные утечки памяти необходимо помнить, что:
- Факт утечки памяти можно проверить с помощью таких программ, как например, Instruments (стандартное приложение MacOS). Может быть не более 30 мб. на 2 г. айфон/айпод, примерно 70мб для всех устройств до 2-го айпада,
- Нужно уделить внимание окнам с большим количеством информации, при длительном пребывании пользователя в приложении.
- Проверка работы приложений на ретина экранах и различных версия OS учитывает следующие параметры[77]:
- корректное отображение различных элементов на экранах ретина/не ретина,
- установка приложения на корректную версию OS,
- проверить установку на все возможные девайсы,
- различные функции на девайсах: отсутствие/наличие камеры (автофокуса), отсутствие/наличие GPS.
- Проверка работы обратной связи учитывает эффективную работу следующих элементов[78]:
- сообщения при загрузке контента/прогресс,
- сообщения при ошибке доступа к сети,
- наличие сообщений при попытке удалить важную информацию,
- наличие экрана/сообщения при окончании процесса/игры (к примеру, экран Game over).
- Проверка работы обновлений подразумевает корректную работу мобильного приложения исходя из[79]:
- проверка различных путей установки обновлений (wifi, bluetooth, usb),
- проверка работы установленных изменений, мест, куда они вносились,
- необходимо также убедиться в поддерживаемости обновлений более старыми ОС, чтобы элементы, которые на новой системе работают хорошо не падали на более старых версиях.
- Проверка реакции приложения на внешние прерывания включает:
- входящие/исходящие смс, ммс, звонки
- разряд/изъятие батареи
- отключение сети/wifi
- подключение кабеля, карты, зарядки.