Статьи в блоге Праймсофт

Главная / Блог / Статьи / Информационные / Этапы тестирования мобильных приложений

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

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

Функциональное тестирование.

Функциональное тестирование мобильных приложений охватывает тестирование взаимодействия с пользователем, а также тестирование транзакций. НА данном этапе проверяется выполняет ли приложение ожидаемые функции, которые обычно описаны в спецификации или продиктованы бизнес-процессами.
Важные для этого вида тестирования факторы:
1. Тип приложения, определяемый его бизнес-функциональностью (банкинг, игровая индустрия, социальные сети, образование).
2. Целевая аудитория (пользователь, компания, образовательная среда).
3. Канал, по которому распространяется приложение (например, App Store, Google Play или раздача напрямую).

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

Позитивные сценарии:
  • Регистрация в приложении доступна всеми описанными в ТЗ способами.
  • Можно зарегистрироваться, заполнив только обязательные поля.
  • Можно зарегистрироваться, заполнив полностью все поля.
  • После регистрации можно авторизоваться в приложении. При этом введенные данные корректно сохранены в профиле (e-mail, пароль, личная информация и т.д.).
  • Зарегистрировавшись на одном устройстве, можно авторизоваться на другом — данные корректно сохраняются на сервере и доступны.
  • Выход из системы работает корректно.
  • Восстановление пароля работает корректно.

Негативные сценарии:
  • Повторная регистрация на один и тот же e-mail, с одним и тем же логином недоступна.
  • Регистрация без заполнения обязательных полей недоступна.
  • Регистрация, если все поля оставлены пустыми, недоступна.
  • Регистрация, если формат введенных данных не соответствует требованиям, недоступна.
  • Авторизация с пустыми полями недоступна.
  • Авторизация с неправильным/удаленным/заблокированным логином недоступна.
  • Авторизация с неправильным паролем недоступна.

Тестирование производительности

Это автоматизированное тестирование, которое имитирует работу определенного количества пользователей какого-либо общего ресурса.
Основная цель этого вида тестирования — убедиться в том, что приложение работает приемлемо при определенных требованиях производительности: доступ большому числу пользователей, устранение важного элемента инфраструктуры, как, например, сервера базы данных, и др.
При этому основные задачи такого рода тестирования:
1. Определить количество пользователей, которые могут одновременно работать с приложением.
2. Проверить, как ведет себя приложение при увеличении интенсивности выполнения каких-либо операций.
3. Проверить работоспособность приложения при многочасовом использовании на средней нагрузке.
4. Проверить поведение приложения в стресс-условиях.
5. Проверить работу в условиях «разросшейся» базы данных — насколько быстро выполняются запросы.

Тестирование безопасности

Основная цель этого типа тестирования — обеспечить безопасность сети и данных приложения. На данном этапе проводится анализ рисков, связанных с обеспечением целостного подхода к защите приложения, атак хакеров, вирусов, несанкционированного доступа к конфиденциальным данным.
Основные подходы (действия) при проверки безопасности мобильных приложений:
1. Убедиться в том, что данные пользователей приложения — логины, пароли, номера банковских карт — защищены от сетевых атак автоматизированных систем и не могут быть найдены путем подбора.
2. Удостовериться в том, что приложение не дает доступ к секретному контенту или функциональности без надлежащей аутентификации.
3. Убедиться в том, что система безопасности приложения требует надежного пароля и не позволяет взломщику завладеть паролями других пользователей.
4. Убедиться в том, что время таймаута сессии адекватно для приложения.
5. Найти динамические зависимости и принять меры для защиты этих уязвимых участков от взломщиков.
6. Защитить приложение от атак типа SQL-injection.
7. Найти случаи неуправляемого кода и устранить его последствия.
8. Удостовериться в том, что срок действия сертификатов не истек, вне зависимости от того, использует приложение Certificate Pinnig или нет.
9. Защитить приложение и сеть от DoS-аттак.
10. Проанализировать требования хранения и проверки данных.
11. Обеспечить управление сеансами для защиты информации от неавторизованных пользователей.
12. Удостовериться в том, что бизнес-логика приложения защищена и не подвержена атакам извне.
13. Проанализировать взаимодействие файлов системы, выявить и скорректировать уязвимые места.
14. Защитить приложение от вредоносных атак на клиентов.
15. Защитить систему от вредоносных внедрений в момент работы программы.
16. Предотвратить возможные вредоносные последствия кэширования файлов.
17. Предотвратить ненадежное хранение данных в кэш-памяти клавиатуры устройства.
18. Предотвратить возможные вредоносные действия файлов cookie.
19. Обеспечить регулярный контроль безопасности данных.
20. Изучить пользовательские файлы и предотвратить их возможное вредоносное влияние.
21. Обезопасить систему от случаев переполнения буфера или нарушения целостности информации в памяти.

Юзабилити-тестирование

Тестирование удобства использования — это метод тестирования, направленный на установление степени удобства использования, обучаемости, понятности и привлекательности для пользователей разрабатываемого продукта в контексте заданных условий.
Тестирование удобства пользования дает оценку уровня удобства использования приложения по следующим пунктам:
  • Производительность, эффективность (efficiency) — сколько времени и шагов понадобится пользователю для завершения основных задач приложения, например, размещения новости, регистрации, покупки (чем меньше времени и шагов понадобится пользователю, тем лучше).
  • Правильность (accuracy) — сколько ошибок сделал пользователь во время работы с приложением?
  • Активизация в памяти (recall) — как долго пользователь помнит о том, как пользоваться приложением, после приостановки работы с ним на длительный период времени? (Повторное выполнение операций после перерыва должно проходить быстрее, чем у нового пользователя).
  • Эмоциональная реакция (emotional response) — Как пользователь себя чувствует после завершения задачи: растерян, испытал стресс или, наоборот, ему все понравилось? Порекомендует ли пользователь систему своим друзьям?

Для улучшения удобства использования полезно следовать двум принципам:
1. «Защита от дурака». Если поле предполагает ввод номера телефона, то стоит ограничить диапазон ввода только цифрами и соответствующим образом сформировать клавиатуру. Аналогично для e-mail и остальных элементов, которые предполагают пользовательский ввод данных.
2. Использовать цикл Демминга (планирование-действие-проверка- корректировка), то есть собирать информацию о дизайне и удобстве использования у существующих пользователей, и на основе их мнений планировать изменения в приложении.

Конфигурационное тестирование

Конфигурационное тестирование проводится для того чтобы обеспечить оптимальную работу приложения на разных устройствах — с учетом их размера, разрешения экрана, версии, аппаратного обеспечения и пр.
Важнейшие сценарии конфигурационного тестирования:
1. Убедиться в том, что интерфейс приложения соответствует размеру экрана устройства, текст не выходит за рамки дисплея.
2. Убедиться в том, что текст легко читается на любом устройстве.
Перед проведением конфигурационного тестирования рекомендуется:
  • Создавать матрицу покрытия (матрица покрытия — это таблица, в которую заносят все возможные конфигурации).
  • Проводить приоритезацию конфигураций (на практике, скорее всего, все желаемые конфигурации проверить не получится).
  • Шаг за шагом, в соответствии с расставленными приоритетами, проверяют каждую конфигурацию.

Тестирование на восстановление

Тестирование на восстановление проверяет тестируемый продукт с точки зрения способности противостоять и успешно восстанавливаться после возможных сбоев, возникших в связи с ошибками программного обеспечения, отказами оборудования или проблемами связи. Применяется чаще всего в приложениях, которые должны работать 24x7, где каждая минута простоя стоит очень дорого.
К такому типу тестирования относятся проверки:
1. Проверка восстановления после сбоя системы и сбоя транзакций.
2. Проверка эффективного восстановления приложения после непредвиденных сценариев сбоя.
3. Проверка способности приложения обрабатывать транзакции в условиях сбоя питания (разряженная батарея / некорректное завершение работы приложения).
4. Проверка процесса восстановления данных после перерыва в соединении.
Другие важные области проверки:
1. Тестирование установки (быстрая, соответствующая требованиям установка приложения).
2. Тестирование удаления (быстрое, соответствующее требованиям удаление приложения).
3. Сетевые тест-кейсы (проверка адекватной работы сети в разных условиях загрузки, а также способности сети обеспечить функционирование всех приложений, используемых в ходе тестирования).
4. Проверка наличия нефункциональных клавиш.
5. Проверка экрана загрузки приложения.
6. Проверка возможности ввода с клавиатуры во время сбоев сети.
7. Проверка методов запуска приложения.
8. Проверка наличия эффекта зарядки в случае, если приложение находится в фоновом режиме.
9. Проверка функционирования экономичного режима и режима высокой производительности.
10. Выявление последствий извлечения аккумулятора во время работы приложения.
11. Проверка уровня потребления энергии приложением.
12. Проверка побочных эффектов приложения.