Привет, Хабр!
Сегодня я хочу поделиться своим опытом тестирования десктопных приложений, который может быть особенно полезен для тех, кто сталкивается с вакансиями десктопного тестировщика.
Так какие особенности сопутствуют тестированию десктопных приложений?
Операционная Система
Необходимо помнить о различиях в системных вызовах, библиотеках и API, которые используются для взаимодействия с операционной системой. Например, для Windows приложения могут использовать WinAPI, для Linux - GTK или Qt, на macOS - Cocoa и Objective-C. Эти различия требуют адаптации кода под каждую конкретную операционную систему, а также новые версии ОС.
Оперативная память
Работоспособность приложения может зависеть от объема оперативной памяти устройства. Обычно, чем больше оперативной памяти, тем лучше приложение может обрабатывать данные и выполнять операции. Для десктопных приложений рекомендуется иметь не менее 4 ГБ оперативной памяти для стабильной работы. Когда приложение использует больше памяти, чем операционная система может предоставить, приложение начинает тормозить. В результате начинается использование виртуальной памяти, что замедляет производительность из-за более медленного доступа к данным.
Утечки памяти
Утечка памяти — это ситуация, при которой программа использует память компьютера менее эффективно, чем нужно. В результате этого процесса приложение продолжает потреблять больше и больше оперативной памяти, что в конечном итоге может привести к исчерпанию ресурсов системы. Утечки памяти могут серьезно повлиять на производительность и стабильность работы приложения.
Инструменты мониторинга памяти:
Task Manager в Windows
Activity Monitor в MacOS
Mtrace в Linux
Размеры экранов
Десктопные приложения должны адаптироваться к разным размерам экранов. Важно проверить масштабируемость на экранах различных размеров, обратить внимание на расположение и размер элементов интерфейса, чтобы они не перекрывались или не становились слишком мелкими на более крупных или более маленьких экранах.
Понять, какие размеры экранов наиболее распространены в вашем регионе, можно благодаря статистике.
Например, для РФ наиболее популярны разрешения экрана 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. Установка, обновление и удаление
Тестирование установки включает проверку:
установки для всех пользователей компьютера,
установки с правами админа и без,
проверка наличия указания издателя приложения,
предложенного пути для сохранения по умолчанию и возможности его изменения,
наличия ярлыка на рабочем столе и в меню пуск,
локализации и поведения при установке с разными языковыми настройками операционной системы.
Тестирование обновления включает проверку:
получения уведомлений о наличии новых версий приложения,
есть ли выбор у пользователя обновить или оставить старую версию приложения,
требования согласия пользователя на обновление,
сохранения данных и файлов пользователя после обновления.
Тестирование удаления включает проверку отсутствия удаленных файлов в директории установки, меню пуск, отсутствие ярлыка и логов приложения.
Тестирование десктопных приложений – это многогранный процесс, охватывающий различные аспекты взаимодействия пользователя с приложением и его работы в различных условиях. С учетом разнообразия операционных систем, устройств и сценариев использования пользователей, тестировщики десктопных приложений должны быть готовы к широкому спектру задач, чтобы обеспечить стабильность, производительность и удовлетворение конечного пользователя.
А что еще можно учесть при тестировании?