Некоторые рекомендации по сертификация приложений Compatible with Windows 7

win7cert

 

Тестирование, сертификация приложений и получение логотипа 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
  • Наличие подписанных бинарных файлов
    • Убедитесь в том, что все бинарные файлы вашего приложения подписаны с помощью цифрового сертификата
    • Из командной строки с повышенными привилегиями выполните следующую команду:
      • 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