Файл: Этапы разработки, тестирования и ввода.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 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;

Корректность текущей даты, времени и т.д.