Некоторые рекомендации по сертификация приложений Compatible with Windows 7
Тестирование, сертификация приложений и получение логотипа Compatible with Windows 7 становятся все более популярным способом обеспечения совместимости приложений с новой версией операционной системы Microsoft – Windows 7. Благодаря несложной и бесплатной процедуре тестирования, десятки российских компаний уже проверили свои приложения и получили для них логотип Compatible with Windows 7. Ниже приведены некоторые рекомендации, которые позволят вам максимально быстро пройти набор тестов для получения логотипа Compatible with Windows 7.
Тестовый компьютер
Установите наиболее «старшую» 64-битную версию WIndows 7 (Ultimate или Enterprise)
- Тестовые утилиты поддерживают только 64-битные версии операционной системы, тестируемые приложения могут быть как 32-битными, так и 64-битными
Монитор должен поддерживать режим High DPI
Графический процессор и драйвер для него должны поддерживать Aero
Для поддержки Aero компьютер должен отвечать следующим требованиям:
32- или 64-битный процессор с частотой не ниже 1ГГц
1Гбайт системной памяти
Графическая карта должна поддерживать DirectX 9 и иметь не менее 128 Мбайт памяти
Графическая карта должна поддерживать Pixel Shader 2.0 и Windows Display Driver Model (WDDM)
Должна быть установлена цветность дисплея 32 бита на пиксель
Должна быть включена опция Desktop Composition
Тесты Windows Experience Index (WEI) должны показывать как минимум 2.0 для разделов Graphics & Gaming graphics
Установка приложения
Убедитесь в том, что приложение запускается под той же учетной записью, под которой оно было установлено
- Запустите Task Manager, на вкладке Processes найдите приложение, в колонке User Name найдите имя учетной записи
Приложение должно устанавливаться только в корректные папки
Бинарные файлы (исполняемые файлы, библиотеки и т.п.) должны устанавливаться в %ProgramFiles% - это предотвращает появление лишних запросов на повышение привилегий и позволяет структурировать информацию на диске
Документы и другие данные должны храниться в % UserProfile% или % Public% - в зависимости от того, кому должны быть доступны эти данные – только конкретному пользователю ( % UserProfile% ) или всем пользователям ( % Public% )
За исключением использования GAC, SxS, установки шрифтов и т.п. не используйте каталог system32
Приложение должно корректно реагировать на версию операционной системы
Для проверки используйте Application Verifier c параметром –hiversionlie:
- Avrf –hiversionlie myapp.exe
Этот параметр увеличивает номер версии на 2.2 – 6.1 становится 8.3
В реестре должны быть прописаны параметры для удаления приложения (Uninstall)
Эти параметры заносятся в Control Panel (Programs and Features) и используются для удаления приложений
Для проверки наличия параметров для удаления приложений следует проверить следующую ветвь реестра: HKLM\Software\Microsoft\Windows\CurrentVersion\
Uninstall\ и найти в не приложениеДолжны быть заполнены следующие параметры:
DisplayName
InstallLocation
Publisher
UninstallString
VersionMajor
VersionMinor
Установка должна производиться на 64-битной системе
По завершении установки приложения не должна требоваться перезагрузка компьютера
Тестирование приложения
Убедитесь в том, что в манифесте приложения указан параметр requestedExecutionLevel
- Приложение должно работать в режиме Standard User
- Параметр requireAdministrator требует повышения привилегий
- Параметр asInvoker поддерживает режим Standard User
- Отсутствие параметра requestedExecutionLevel приводит к включению механизмов обеспечения совместимости:
- Перенаправление операций с файлами и реестром
- Определение программ установки
- Вызов Program Compatibility Assistant
- Для проверки содержимого манифеста либо посмотрите содержимое внешнего манифеста – myapp.exe.manifest, либо используйте утилиту sigcheck.exe (можно загрузить с сайта technet.microsoft.com) с параметром –m:
- Sigcheck –m myapp.exe
- Проведите тестирование приложения в режиме Standard User
- Выполните тестовый сценарий или набор операций, которые позволят убедиться в том, что приложение работает корректно под стандартной учетной записью
- Приложение не должно изменять системные настройки
- Системные настройки защищены механизмом Windows Resource Protection
Проверка надежности приложения
- Поддержка Restart Manager
- Restart Manager позволяет избежать лишних перезагрузок системы в тех случаях, когда процесс “захватил» тот или иной ресурс
- Restart Manager выполняет перезагрузку приложения, а не всей системы
- Для проверки поддержки Restart Manager выполните следующие действия:
- Запустите приложение
- В Task Manager получите его PID (Process ID)
- Вызовите утилиту Restart Manager Tool – rmtesttool в качестве параметра указав PID вашего приложения
- Убедитесь в отсутствии сообщений об ошибках
- Тестирование под Application Verifier
- Application Verifier используется для тестирования и обнаружения ошибок, «невидимых» для других тестов
- Обычно Application Verifier используется совместно с Windbg
- Из командной строки с повышенными привилегиями запустите windbg с параметром –I
- В Application Verifier включите тесты Exceptions, Handles, Heaps, Locks, Memory, TLS из группы Basics Checks
- Включите тесты DangerousAPIs и DirtyStacks из группы Miscelaneous
- Запустите ваше приложение
- Исследуйте каждое переключение в windbg
- Windows Error Reporting
- Обрабатывайте только “известные» исключения
- Для тестирования Windows Error Reporting выполните следующие действия:
- Запустите ваше приложение
- Из командной строки с повышенными привилегиями запустите ThreadHijacker:
- · Threadhijacker.exe /ui /crash:av /process:myapp
- Откройте журнал Application Event Log
- Убедитесь в том, что для вашего приложения указаны Application Error (Error) и Windows Error Reporting (Information)
Поддержка Fast User Switching, Remoting и Terminal Services
- Приложения должны работать в режиме Fast User Switching
- На одном компьютере могут быть одновременно активны несколько пользовательских сессий
- Экземпляры приложения не должны конфликтовать друг с другом
- Звук в одной сессии не должен быть слышен в другой сессии
- Приложения должны запускаться и корректно работать через Remore Desktop
- Удаленный доступ к компьютеру является довольно часто используемым сценарием работы пользователей
- Если приложение не поддерживает удаленный доступ, оно должно сообщить об этом пользователю и корректно завершить свою работу
- Убедитесь в том, что пользователи не могут изменять документы и файлы других пользователей
- Приложения должны поддерживать работу с документами и файлами только одного пользователя
- Если приложение позволяет создавать и сохранять документы, выполните основные операции под одной учетной записью
- Переключитесь на другого пользователя и попробуйте открыть документы, созданные на предыдущем шаге
Поддержка High DPI и Aero
- Основные симптомы несовместимости с High DPI:
- «Обрезанные» интерфейсные элементы или текст
- Некорректные размеры шрифтов или расположение элементов
- Смазанные интерфейсные элементы
- Текст, отображаемый в виде пикселей
- Неверные координаты, например, кнопки, которые не нажимаются
- Для тестирования в режиме High DPI выполните следующие действия:
- В Control Panel в разделе Appearance and Personalization | Display выберите команду Set custom text size (DPI) и измените DPI на 120 или 144 (125% или 150% соответственно)
- Запустите приложение и выполните тестовый сценарий, максимально используя все интерфейсные возможности приложений
- Обратите внимание на все некорректные отображения интерфейсных элементов
- Для тестирования поддержки Aero выполните следующие действия:
- Убедитесь в том, что Aero включено (например, в Performance Options должна быть включена опция Desktop Composition)
- Запустите приложение
- Убедитесь в том, что Aero все еще включено
- Проверьте отображение интерфейса вашего приложения, например попытайтесь быстро подвигать окно вашего приложения по экрану и убедитесь в том, что оно корректно отрисовывается
Дополнительные рекомендации
- Поддержка платформы x64
- Для 64-битной платформы требуется наличие только 64-битных драйверов
- 16-битная система не поддерживается
- Код для x86 работает под управлением подсистемы Windows on Windows
- Использование имен файлов в формате 8.3
- Имена файлов в формате 8.3 поддерживаются только для обеспечения совместимости с приложениями, написанными для предыдущей версии операционной системы
- Для проверки работы вашего приложения выполните следующие действия:
- Отключите поддержку имен файлов в формате 8.3:
- · fsutil.exe behavior set disable8dot3 1
- Проверьте работу вашего приложения в части работы с файлами
- Включите поддержку имен файлов в формате 8.3:
- fsutil.exe behavior set disable8dot3 0
- Отключите поддержку имен файлов в формате 8.3:
- Наличие подписанных бинарных файлов
- Убедитесь в том, что все бинарные файлы вашего приложения подписаны с помощью цифрового сертификата
- Из командной строки с повышенными привилегиями выполните следующую команду:
- signtool verify /pa /v “<App_Install_Directory>\<Executable>”
- Обратите внимание на сообщения об ошибках, выдаваемые утилитой signtool
- Поддержка обновления операционной системы
- После того как ваше приложение установлено, пользователи могут обновить версию операционной системы
- Установите приложение на WIndows Vista (или Windows XP)
- Выполните обновление операционной системы на Windows 7
- Убедитесь в работоспособности вашего приложения
- Убедитесь в том, что приложение по-прежнему корректно удаляется с компьютера
- После того как ваше приложение установлено, пользователи могут обновить версию операционной системы
Если у вас возникают вопросы по тестированию или сертификации приложений под Windows 7, пожалуйста присылайте их по адресу: appcmpru@microsoft.com
P.S. Кросс-пост с Microsoft Russia ISV Team