Читать книгу Тестирование программного обеспечения. Занимательная практика - Виктор Владимирович Вразовский, Виктор Владимирович Москва, Евгений Александрович Шмаков - Страница 23
Практика в теории
Тестирование загрузки файлов
ОглавлениеТестирование загрузки файлов через приложение требует тщательной проверки определённых аспектов, чтобы убедиться, что процесс работает корректно с разными сценариями использования. Под загрузкой файлов понимается отправка файлов на сервер через приложение.
Минимальный и максимальный размер файла. Необходимо убедиться, что приложение корректно обрабатывает файлы как минимально, так и максимально допустимого к загрузке размера, а также корректно реагирует на превышение установленных ограничений. Проверяется, что файлы минимального размера (например, пустые файлы или файлы с минимальным содержимым) успешно загружаются и распознаются приложением без ошибок. Для проверки максимального размера загружаются файлы, соответствующие верхнему пределу допустимого диапазона, чтобы убедиться, что система справляется с их обработкой и загрузкой без снижения производительности. Особое внимание уделяется файлам, которые превышают допустимый размер: такие файлы не должны загружаться, и приложение должно выводить пользователю сообщение об ошибке или предупреждение о превышении размера. Тестируется также, что интерфейс не зависает при загрузке файлов.
Поддерживаемые форматы файлов. При тестировании загрузки файлов различных форматов необходимо убедиться, что приложение корректно обрабатывает поддерживаемые форматы и блокирует загрузку неподдерживаемых. Проверяется, что файлы допустимых форматов, таких как изображения (JPG, PNG), документы (PDF, DOCX), таблицы (XLSX) и другие, загружаются без ошибок, отображаются правильно. Тестируется, что приложение корректно распознает каждый из поддерживаемых форматов и выполняет необходимые действия, такие как предварительный просмотр, редактирование или обработка файла. Особое внимание уделяется проверке неподдерживаемых форматов: при попытке загрузить файл неподдерживаемого типа (например, EXE, TIFF, или ZIP) приложение должно заблокировать загрузку и вывести пользователю сообщение. Сообщение должно чётко указывать причину отказа, например, «Формат файла не поддерживается», и по возможности предоставлять список поддерживаемых форматов. Это помогает пользователю быстро понять, в чем проблема, и избежать ошибок при загрузке файлов.
Корректность загруженных файлов. Проверяем, что файлы загружаются полностью и без искажений, сохраняя своё первоначальное содержимое. Проверяется, что при загрузке файлы передаются на сервер или сохраняются в системе без потерь данных, без изменения формата и содержания. Особое внимание уделяется проверке целостности больших файлов, например, видео, архивов или объёмных документов, чтобы убедиться, что они полностью загружены и не содержат ошибок, связанных с повреждением данных при передаче. После завершения загрузки файлы проверяются на соответствие исходным: проводится сравнение размеров, контрольных сумм (если это возможно) и визуальная проверка содержимого, чтобы убедиться, что загруженный файл идентичен исходному. Это гарантирует, что процесс загрузки надёжен и не приводит к повреждению данных.
Скорость загрузки. При тестировании скорости загрузки файлов важно проверить, как приложение справляется с загрузкой в условиях различного качества интернет-соединения, включая медленный интернет и нестабильное соединение. Тестируется поведение приложения при нормальной, медленной и нестабильной скорости интернета, чтобы убедиться, что загрузка файлов продолжается корректно, без зависаний или произвольных прерываний. Особое внимание уделяется длительным загрузкам больших файлов: приложение должно оставаться отзывчивым, показывать индикаторы прогресса и информировать пользователя о текущем статусе процесса, что особенно важно при медленной скорости. Также тестируется наличие сообщений или индикаторов, предупреждающих о возможных задержках, чтобы пользователи понимали, что загрузка продолжается, и могли принять соответствующие меры.
Прерывание загрузки. При анализе поведения приложения при прерывании загрузки, например, из-за отключения интернета или временного сбоя соединения, важно проверить, как приложение реагирует на такие ситуации. Тестируем, что при обрыве загрузки пользователь получает соответствующее уведомление или сообщение об ошибке, информирующее о причинах остановки процесса. Важно убедиться, что система предлагает возможность возобновления загрузки с места прерывания, если это предусмотрено, чтобы не начинать процесс заново, особенно для больших файлов. Проверяется, что механизм восстановления работает корректно и стабильно, сохраняя ранее загруженные данные и продолжая процесс без потери информации. Если возобновление невозможно, приложение должно корректно завершить процесс с указанием причины сбоя, предлагая пользователю повторить попытку позже, при этом интерфейс не должен зависать.
Отображение процесса загрузки. Необходимо убедиться, что прогресс-бар или индикатор загрузки точно и наглядно отражают текущее состояние процесса. Прогресс-бар должен показывать реальное соотношение загруженного и оставшегося объёма данных, обновляясь плавно и без скачков, чтобы пользователь мог легко понять, на каком этапе находится загрузка. Если загрузка идёт в несколько этапов (например, подготовка, передача, обработка), индикатор должен чётко показывать переходы между этими этапами, чтобы пользователь знал, что именно происходит. Важно проверить, что при медленной загрузке индикатор не «зависает», а продолжает показывать прогресс, пусть и медленный, а при ошибках или прерываниях информирует об этом, не оставаясь на месте.
Валидация файлов на сервере. Проверяем, что приложение выполняет проверку загружаемых файлов на безопасность, предотвращая загрузку вредоносного кода или нежелательного содержимого. Проверяется, что сервер автоматически сканирует файлы на наличие вирусов, скрытых скриптов или других опасных элементов, используя встроенные средства безопасности или интегрированные антивирусные решения. Также важно удостовериться, что проверяются типы файлов и их содержимое, чтобы исключить маскировку вредоносного ПО под допустимые форматы, например, под видом изображений или документов. В случае обнаружения угрозы приложение должно мгновенно блокировать загрузку и уведомлять пользователя о проблеме. Тестируется также, что все проверки выполняются на серверной стороне, чтобы избежать манипуляций с валидацией на уровне клиента, обеспечивая надёжную защиту от загрузки опасных файлов.