Какие способы распространения десктопных приложений существуют
Что проверяют
Для QA вопрос не про список форматов, а про то, что каждый канал доставки добавляет в тестирование: установку, обновление, удаление, права и подпись. Следом обычно просят набросать чек-лист проверки инсталлятора.
Как отвечать
Сначала каналы по платформам:
- Windows: MSI с транзакционной установкой, откатом и тихим режимом
msiexec /i app.msi /qn, удобный для корпоративного развёртывания; EXE-инсталляторы на Inno Setup или NSIS; MSIX с чистым удалением и обязательной подписью; Microsoft Store иwinget; - macOS:
.dmgс перетаскиванием в «Программы»,.pkg, Mac App Store с обязательной песочницей, Homebrew Cask. Приложение вне магазина подписывают Developer ID и нотаризуют, иначе Gatekeeper его не пустит; - Linux:
.debи.rpmчерез репозитории, Flatpak, Snap, AppImage; - портативные сборки: архив без установки, настройки рядом с исполняемым файлом;
- автообновление: встроенный механизм (Sparkle на macOS,
electron-updaterв Electron) или обновление силами магазина.
Потом что проверять:
- установка: чистая машина, установка без прав администратора, для одного пользователя и для всех, тихая и прерванная установка;
- обновление: поверх предыдущей и более старых версий, сохранение настроек и данных, откат;
- удаление: хвосты в реестре,
%AppData%,~/Library, ярлыки и ассоциации файлов; - окружение: версии ОС, архитектуры x64 и ARM64, антивирусы, SmartScreen.
Где спотыкаются
Проверяют только чистую установку на свежей виртуалке. Большинство реальных пользователей обновляется поверх старой версии, и именно там ломаются миграции настроек и остаются старые файлы.
Не знают про подпись. Неподписанная сборка вызывает предупреждение SmartScreen на Windows и блокировку Gatekeeper на macOS, а тестовый стенд с отключёнными проверками это прячет.
Считают сборку для магазина той же самой. Песочница Mac App Store и контейнер MSIX ограничивают доступ к файлам и реестру, поэтому функция из прямой сборки в магазинной может сломаться. Каждый канал тестируется отдельно.