Разделы портала

Онлайн-тренинги

.
Особенности тестирования десктопных приложений
08.02.2024 00:00

Оригинальная публикация
Автор: Логунова Маргарита 

Сегодня я хочу поделиться своим опытом тестирования десктопных приложений, который может быть особенно полезен для тех, кто сталкивается с вакансиями десктопного тестировщика. 

Так какие особенности сопутствуют тестированию десктопных приложений?

  1. Операционная Система

    Необходимо помнить о различиях в системных вызовах, библиотеках и API, которые используются для взаимодействия с операционной системой. Например, для Windows приложения могут использовать WinAPI, для Linux - GTK или Qt, на macOS - Cocoa и Objective-C. Эти различия требуют адаптации кода под каждую конкретную операционную систему, а также новые версии ОС. 

  1. Оперативная память

    Работоспособность приложения может зависеть от объема оперативной памяти устройства. Обычно, чем больше оперативной памяти, тем лучше приложение может обрабатывать данные и выполнять операции. Для десктопных приложений рекомендуется иметь не менее 4 ГБ оперативной памяти для стабильной работы. Когда приложение использует больше памяти, чем операционная система может предоставить, приложение начинает тормозить. В результате начинается использование виртуальной памяти, что замедляет производительность из-за более медленного доступа к данным.

  1. Утечки памяти

    Утечка памяти — это ситуация, при которой программа использует память компьютера менее эффективно, чем нужно. В результате этого процесса приложение продолжает потреблять больше и больше оперативной памяти, что в конечном итоге может привести к исчерпанию ресурсов системы. Утечки памяти могут серьезно повлиять на производительность и стабильность работы приложения.

Инструменты мониторинга памяти:

  • Task Manager в Windows

  • Activity Monitor в MacOS

  • Mtrace в Linux

  1. Размеры экранов

    Десктопные приложения должны адаптироваться к разным размерам экранов. Важно проверить масштабируемость на экранах различных размеров, обратить внимание на расположение и размер элементов интерфейса, чтобы они не перекрывались или не становились слишком мелкими на более крупных или более маленьких экранах.

    Понять, какие размеры экранов наиболее распространены в вашем регионе, можно благодаря статистике.
    Например, для РФ наиболее популярны разрешения экрана 1920x1080 (38.58%), 1366x768 (11.84%), 1536x864 (10.91%).

5. Гайдлайны





Hidden text

Гайдлайны – это набор правил и рекомендаций, определяющих, каким образом приложения должны выглядеть и вести себя на определенной платформе.





Интерфейс должен соответствовать гайдлайнам операционной системы, учитывать переходы и навигацию в окнах.
Ниже представлена сравнительная таблица некоторых пунктов в гайдлайнах Windows, Linux и MacOS.

Аспект

Windows

Linux

MacOS

Графический интерфейс

Windows UX Design Principles.
Основные элементы имеют тени, округлые углы, более насыщенные цвета. Основное меню часто в верхней части окна.

GNOME Human Interface Guidelines
Может значительно различаться в зависимости от дистрибутива и окружения. 

Human Interface Guidelines
Обычно имеет минималистичный дизайн с тонкими линиями, чистыми формами и плоскими цветами. Элементы интегрируются в верхнюю панель окна.

Оформление окон

Fluent Design System

GNOME Adwaita Theme

Human Interface Guidelines

Системные кнопки

Кнопки в правом верхнем углу окна - "закрыть", "свернуть", "развернуть".

Расположение и стиль кнопок могут зависеть от окружения рабочего стола.

Кнопки обычно в верхнем левом углу окна - "закрыть", "свернуть", "развернуть".

Работа с клавишами

Часто использует комбинации клавиш с клавишей "Ctrl".

Различные дистрибутивы могут использовать разные комбинации, но часто используется клавиша "Ctrl".

Часто использует комбинации клавиш с клавишей "Command" (⌘).

Типографика и шрифты

Segoe UI, Calibri, Arial

Cantarell, Ubuntu, DejaVu, Noto, Liberation

San Francisco, Lucida Grande

Системные уведомления

Toast Notifications

Desktop Notifications

Notification Center

Знание гайдлайнов помогает создавать приложения, которые соответствуют ожиданиям пользователей и интегрируются с окружением операционной системы.

6. Тестирование взаимодействия с устройствами

Неотъемлемой частью проверки десктопных приложений является интеграция с другими устройствами.
Если приложение предполагает работу с игровыми устройствами, необходимо проверить поддержку джойстиков, геймпадов, а также корректность распознавания их сигналов.
Удостоверься, что приложение правильно реагирует на действия с мышью и клавиатурой, включая различные типы мышей (сенсорные, обычные).

! Также важно проверить поддержку виртуальной клавиатуры, особенно если ваше приложение предназначено для устройств с сенсорными экранами.

7. Работа с Интернетом

При тестировании нужно учитывать зависимость приложения от интернета. Обрати внимание на работу:

  • Без подключения к интернету.

  • Во время прерывания интернета.

  • При различных условиях сети, например, использование 3G, 4G, 5G.

Не забывай учитывать как приложение:

  • Восстанавливает работу после прерывания.

  • Обрабатывает большие объемы данных при быстром и медленном интернете.

  • Как происходит синхронизация с облаком при изменении условий интернет-соединения.

Несколько инструментов в помощь:

  • Network Link Conditioner (для macOS/iOS)

  • Charles Proxy, Fiddler

  • Network Emulation в Android Emulator

8. Уведомления

При тестировании уведомлений следует учесть несколько аспектов:

  • Отображение: Убедись, что уведомления корректно отображаются на различных разрешениях экрана и в различных режимах окна приложения (развернутое, свернутое, полноэкранное).

  • Звук: Проверь, что звук уведомлений воспроизводится правильно и в соответствии с настройками звука пользователя. Убедись в наличии возможности включения и выключения звука для уведомлений.

  • Переход по уведомлениям: Проверь, что клик по уведомлению открывает соответствующее окно или выполняет предусмотренное действие. Удостоверься, что уведомления исчезают после их просмотра или выполнения действия. Также важно проверить отображение уведомлений в различных  режимах энергосбережения, спящем режиме и тд.

! Учти, что стили и поведение системных уведомлений могут различаться в зависимости от операционной системы. 

9. Работу в различных режимах компьютера

Проверка работы приложения в различных режимах компьютера включает в себя тестирование в режимах энергосбережения. Режимы, такие как High Performance, Balanced и Power Saver, могут влиять на производительность компьютера. Кроме того, стоит учесть режимы спящего режима, гибернации и быстрого запуска, если они доступны в операционной системе. Проверь, как приложение ведет себя в каждом из этих режимов.

10. Работа в foreground и background

Проверь, как приложение обрабатывает переход в фоновый режим. Удостоверься, что оно правильно сохраняет свое состояние, чтобы пользователь мог вернуться к предыдущим данным при возвращении.

11. Установка, обновление и удаление

Тестирование установки включает проверку:

  • установки для всех пользователей компьютера, 

  • установки с правами админа и без, 

  • проверка наличия указания издателя приложения, 

  • предложенного пути для сохранения по умолчанию и возможности его изменения,

  • наличия ярлыка на рабочем столе и в меню пуск, 

  • локализации и поведения при установке с разными языковыми настройками операционной системы. 

Тестирование обновления включает проверку:

  • получения уведомлений о наличии новых версий приложения,

  • есть ли выбор у пользователя обновить или оставить старую версию приложения, 

  • требования согласия пользователя на обновление,

  • сохранения данных и файлов пользователя после обновления.

Тестирование удаления включает проверку отсутствия удаленных файлов в директории установки, меню пуск, отсутствие ярлыка и логов приложения.

Тестирование десктопных приложений – это многогранный процесс, охватывающий различные аспекты взаимодействия пользователя с приложением и его работы в различных условиях. С учетом разнообразия операционных систем, устройств и сценариев использования пользователей, тестировщики десктопных приложений должны быть готовы к широкому спектру задач, чтобы обеспечить стабильность, производительность и удовлетворение конечного пользователя.

А что еще можно учесть при тестировании?

Обсудить в форуме