Добавлен: 01.04.2023
Просмотров: 85
Скачиваний: 1
Защитить приложение от вредоносных атак на клиентов.[23]
Защитить систему от вредоносных внедрений в момент работы программы.
Предотвратить возможные вредоносные последствия кэширования файлов.
Предотвратить ненадежное хранение данных в кэш-памяти клавиатуры устройства.
Предотвратить возможные вредоносные действия файлов cookie.
Обеспечить регулярный контроль безопасности данных.
Изучить пользовательские файлы и предотвратить их возможное вредоносное влияние.
Обезопасить систему от случаев переполнения буфера или нарушения целостности информации в памяти.
Сделать анализ различных потоков данных и защитить систему от их возможного вредоносного влияния.
Юзабилити-тестирование
Юзабилити-тестирование проводится для создания быстрых и простых в обращении приложений. Главная цель — обеспечить удобство пользования приложением, создать интуитивный, соответствующий принятым стандартам интерфейс.
Итак, для проведения юзабилити-тестирования следует:
Убедиться в том, что кнопки имеют нормальный размер и подходят для крупных пальцев.
Поместить кнопки в одной области экрана, чтобы не вызвать замешательства у пользователей.[24]
Убедиться в том, что значки и картинки смотрятся естественно в среде приложения.
Убедиться в том, что цвет кнопок, выполняющих одну и ту же функцию, совпадает.[25]
Убедиться в правильной работе системы уменьшения и увеличения масштаба просмотра.
Обеспечить минимальный ввод данных с клавиатуры.
Убедиться в наличии возможности возврата или отмены действия в случае нажатия не на ту кнопку.
Убедиться в том, что контекстуальные меню не перегружены, так как они предполагают быстрое использование.
Убедиться в том, что текст прост, ясен и виден пользователю.
Убедиться в том, что короткие предложения и абзацы возможно прочитать.
Найти оптимальный размер шрифта.
Убедиться в том, что в случае загрузки пользователем больших объемов информации приложение предупреждает о возможных сбоях в его работе из-за этого.
Убедиться в том, что завершить работу приложения можно из любого состояния и что оно возобновляет работу в этом же состоянии.
Проверить, что все строки отображаются на нужном языке, если в приложении есть опция перевода.
Убедиться в том, что компоненты приложения синхронизируются с действиями пользователя.
Обеспечить пользователя руководством, которое бы помогло ему понять работу приложения и эффективно им пользоваться.
Юзабилити-тестирование обычно проводится на пользователях, поскольку только люди могут понять субъективные ощущения других людей, вызываемые тем или иным приложением.[26]
Тестирование удобства использования — это метод тестирования, направленный на установление степени удобства использования, обучаемости, понятности и привлекательности для пользователей разрабатываемого продукта в контексте заданных условий
Тестирование удобства пользования дает оценку уровня удобства использования приложения по следующим пунктам:
Производительность, эффективность (efficiency) — сколько времени и шагов понадобится пользователю для завершения основных задач приложения, например, размещения новости, регистрации, покупки (чем меньше времени и шагов понадобится пользователю, тем лучше).
Правильность (accuracy) — сколько ошибок сделал пользователь во время работы с приложением?
Активизация в памяти (recall) — как долго пользователь помнит о том, как пользоваться приложением, после приостановки работы с ним на длительный период времени? (Повторное выполнение операций после перерыва должно проходить быстрее, чем у нового пользователя).
Эмоциональная реакция (emotional response) — Как пользователь себя чувствует после завершения задачи: растерян, испытал стресс или, наоборот, ему все понравилось? Порекомендует ли пользователь систему своим друзьям?
Для улучшения удобства использования полезно следовать двум принципам:
«Защита от дурака». Если поле предполагает ввод номера телефона, то стоит ограничить диапазон ввода только цифрами и соответствующим образом сформировать клавиатуру. Аналогично для e-mail и остальных элементов, которые предполагают пользовательский ввод данных.
Использовать цикл Демминга (планирование-действие-проверка- корректировка), то есть собирать информацию о дизайне и удобстве использования у существующих пользователей, и на основе их мнений планировать изменения в приложении.[27]
Конфигурационное тестирование
Конфигурационное тестирование проводится для того чтобы обеспечить оптимальную работу приложения на разных устройствах — с учетом их размера, разрешения экрана, версии, аппаратного обеспечения и пр.
Важнейшие сценарии конфигурационного тестирования:
Убедиться в том, что интерфейс приложения соответствует размеру экрана устройства, текст не выходит за рамки дисплея.
Убедиться в том, что текст легко читается на любом устройстве.
Убедиться в том, что функция вызова/будильника доступна при запущенном приложении, приложение сворачивается или переходит в режим ожидания в случае входящего звонка, а по его завершении возобновляется.
"Это тип тестирования, предназначенный для проверки работоспособности приложения на различных конфигурациях системы. Имеет смысл рассмотреть клиентский уровень конфигурационного тестирования. Сервер у мобильных приложений часто единственный, а клиент устанавливается на большое количество самых разнообразных устройств. Но нужно учесть, что если приложение специфичное — например, игра, для которой выделено несколько серверов, то серверный уровень также становится приоритетным.
На клиентском уровне можно выделить:
Тип устройства: смартфон, планшет и т.д.
Конфигурация устройства: количество оперативной памяти, тип процессора, разрешение экрана, емкость аккумулятора и т.д.
Тип и версия операционной системы. iOS 6, 7; Android 4.2.2 и т.д.
Тип сети: Wi-Fi, GSM.
Перед проведением конфигурационного тестирования рекомендуется
Создавать матрицу покрытия (матрица покрытия — это таблица, в которую заносят все возможные конфигурации).[28]
Проводить приоритезацию конфигураций (на практике, скорее всего, все желаемые конфигурации проверить не получится).
Шаг за шагом, в соответствии с расставленными приоритетами, проверяют каждую конфигурацию.
Уже на начальном этапе становится очевидно: чем больше требований к работе приложения при различных конфигурациях рабочих станций, тем больше тестов нам необходимо будет провести. В связи с этим рекомендуем по возможности автоматизировать этот процесс, так как именно при конфигурационном тестировании автоматизация реально помогает сэкономить время и ресурсы. Конечно же, автоматизированное тестирование не является панацеей, но в данном случае оно окажется очень эффективным помощником.
Тестирование на восстановление
Тестирование на восстановление проверяет тестируемый продукт с точки зрения способности противостоять и успешно восстанавливаться после возможных сбоев, возникших в связи с ошибками программного обеспечения, отказами оборудования или проблемами связи. Применяется чаще всего в приложениях, которые должны работать 24x7, где каждая минута простоя стоит очень дорого.
Проверка восстановления после сбоя системы и сбоя транзакций.
Проверка эффективного восстановления приложения после непредвиденных сценариев сбоя.
Проверка способности приложения обрабатывать транзакции в условиях сбоя питания (разряженная батарея / некорректное завершение работы приложения).
Проверка процесса восстановления данных после перерыва в соединении.[29]
Другие важные области проверки[30]:
Тестирование установки (быстрая, соответствующая требованиям установка приложения).
Тестирование удаления (быстрое, соответствующее требованиям удаление приложения).
Сетевые тест-кейсы (проверка адекватной работы сети в разных условиях загрузки, а также способности сети обеспечить функционирование всех приложений, используемых в ходе тестирования).
Проверка наличия нефункциональных клавиш.
Проверка экрана загрузки приложения.
Проверка возможности ввода с клавиатуры во время сбоев сети.
Проверка методов запуска приложения.
Проверка наличия эффекта зарядки в случае, если приложение находится в фоновом режиме.
Проверка функционирования экономичного режима и режима высокой производительности.
Выявление последствий извлечения аккумулятора во время работы приложения.
Проверка уровня потребления энергии приложением.
Проверка побочных эффектов приложения.
Отдельно укажу интеграционное тестирование, в рамках которого проводятся проверки взаимодействия модулей друг с другом, а также приложения с операционной системой и другими приложениями.
Сюда попадают все сценарии, связанные с различного рода прерываниями во время работы с приложением:
произошел телефонный звонок;
поступило смс;
на экране появилось уведомление другого приложения;
пропала сеть или ухудшилось качество связи (попадает сюда, т.к. это обычное событие для мобильных сетей);
приложение было свернуто в трей;
приложение переведено в фоновый режим и т.д.
Данные случаи должны быть предусмотрены при разработке и тестировании приложения.[31]
Давайте рассмотрим немного другой алгоритм действий.
Тестирование установки
Итак, приступим. Что делает пользователь мобильного приложения в первую очередь? Правильно: устанавливает. Вот вам первый этап тестирования. QA инженер обязан убедиться, что пользователь не испытает боль и страдания в процессе установки. Здесь нужно определить: будет ли приложение устанавливаться на различные операционные системы. [32]
Тестирование совместимости
Второй этап. Его основная цель: убедиться, что приложение может успешно перемещаться из одной среды в другую. Другими словами, это позволяет определить, готов ли продукт к работе на разных платформах с различными конфигурациями оборудования и/или программного обеспечения. Это особенно актуально для кроссплатформенных приложений, разработанных одновременно под Android и iOS. Что может спровоцировать проблемы совместимости?
Недостаток оперативной памяти;
Недостаток дискового пространства;
Определенные типы процессора и операционной системы;
Совместимость между различными типами операционных систем.
Стрессовое тестирование
На третьем этапе определяется поведение приложения в необычных (стрессовых условиях). К ним могут относиться, как внешние, так и внутренние факторы.
Внешние факторы: скорость/стабильность подключения к сети, переключение между Wi-Fi и 3G/4G, прием звонков/сообщений в процессе работы приложения, подключение периферийных устройств (наушники, bluetooth гаджеты и т. д.), выемка/замена SIM или SD-карты, пока телефон включен, включение/выключение спящего режима, температура воздуха и т. д.[33]
Внутренние факторы: нехватка оперативной памяти или места на диске, низкий заряд аккумулятора, отключение каких-либо услуг (например, GPS) и т. д.
Нагрузочное тестирование
Четвертый этап позволяет определить имеет ли приложение какие-либо уязвимые места. Например, утечки памяти или проблемы с производительностью. При нагрузочном тестировании мобильных приложений предполагается, что программа будет запускаться на устройстве с низким объемом памяти.[34]
Функциональное тестирование
На пятом этапе тестировщики выявляют может ли приложение рухнуть в обычных условиях использования. Проще говоря — работают ли все функции программы должным образом. Выделим несколько пунктов, на которые QA инженер обращает внимание в первую очередь:
Жесты;
Физическая/экранная клавиатура;
Ориентация экрана (горизонтальная/вертикальная);
Нестандартные элементы управления.
Тестирование локализации
Шестой этап. В процессе тестирования локализации, особое внимание уделяется контенту и пользовательскому интерфейсу. А именно:
Какие языки поддерживает приложение;
Точность перевода различных элементов интерфейса;
Точность перевода документации и разделов FAQ/Help;
Корректность текущей даты, времени и т.д.