Ни
одна из современных операционных систем не содержит абсолютно всех
требуемых пользователями приложений в составе штатных компонентов. По
этой причине под каждую ОС сторонние разработчики создают собственные
программы, так или иначе использующие ее возможности или расширяющие ее
функции. Как с этим обстоит дело в Windows 7? Из чего состоит
экосистема новой ОС? Каким требованиям должен удовлетворять продукт,
чтобы получить заключение о совместимости с Windows 7?
Сторонний разработчик (преимущественно, речь идет о независимом
вендоре программного обеспечения – ISV) стремится к получению
сертификата о соответствии своего приложения с операционной системой по
двум основным причинам. Во-первых, именно наличие этого свидетельства
говорит о том, что его разработка выполнена именно под эту данную
операционную систему и будет работать на ней наиболее эффективно,
надежно и безопасно. На это обращают внимание пользователи, когда
мигрируют с предыдущих версий ОС, уточняя вопросы совместимости при
обращении в техподдержку вендора и на тематических форумах. Это
особенно важно для защитного ПО, системных утилит, офисных продуктов,
игр, корпоративных ИС, профессиональных пакетов и так далее. Во-вторых,
создание сертифицированного приложения дает независимым разработчикам
дополнительный стимул использовать инновационные технологии в своих
продуктах, повышая их функциональность, удобство использования,
качество реализации и так далее. Подобные вопросы затрагивают, в
основном, различные мультимедиа-продукты, а также программы,
используемые в повседневной работе, отчасти пересекаясь с теми
категориями, которые перечислены выше.
Среди программ сертификации приложений под ОС мы рассмотрим последнюю
на сегодняшний день программу Compatible with Windows 7. Она пользуется
высокой популярностью среди разработчиков ПО, как в мире, так и в России,
в частности. В нашей стране на состояние середины декабря в ней приняло
участие порядка 40 компаний, а сертификат совместимости получили около
120 приложений.
Требования к качеству
Согласно требованиям Microsoft, право использовать логотип
"Совместимо с Windows 7" могут получить далеко не все приложения,
разработанные под Windows 7. Во-первых, они должны быть
самостоятельными и исполняться в отдельном программном процессе (хотя
могут и требовать наличия установленного в системе другого приложения).
Поэтому так называемые "плагины" и дополнения, устанавливаемые на
существующие программы, не могут получить логотип о совместимости. Не
подлежат сертификации и различные веб-приложения, запускаемые в виде
Java-апплетов в браузере, компоненты консоли управления системой,
драйвера для аппаратных компонентов, а также библиотеки или среды
разработки. Любые составные части (например, дополнительные утилиты)
сертифицируемого продукта также обязательно отвечать общим критериям
программы сертификации. Дополнительные компоненты, необходимые для
запуска и работы продукта, по возможности также должны соответствовать
критериям сертификации. Исключением являются компоненты Windows 7 и
Windows 7 SDK, а также обновления, загружаемые через Центр обновления
Windows.
Согласно общим требованиям, предъявляемым Microsoft к продуктам,
претендующим на получение логотипа "Совместимо c Windows 7",
разработчик должен гарантировать, что его приложение не является
вредоносным ПО, использует применяющиеся в ОС механизмы обработки
ошибок, отладки и устранения сбоев, защиты и предотвращения фатальных
ошибок (DEP и так далее), не изменяет системные ресурсы, поддерживает
"чистую" установку и удаление (не оставляя после этого "хвостов"),
работает не только на 32-, но и на 64-битной архитектуре, соответствует
требованиям UAC (для разделения привилегий запуска и доступа программы
к ресурсам компьютера или пользовательским данным), корректно
взаимодействует с системой при выполнении перезагрузки (не блокирует
ее), загрузки компьютера в Безопасном режиме (не загружается), смене
пользователя (работает параллельно с несколькими учетными записями без
сбоев). Кроме того, производитель программного обеспечения должен
обеспечить соответствие пользовательского интерфейса своего продукта с
тем, что в данный момент используется в Windows 7 – поддержка High DPI
для графических элементов, совместимость с функциями Рабочего стола и
его отдельных частей (компоненты Aero, "списки" Jumplist и так далее),
работа с Unicode-кодировкой, ассоциацию с программами по умолчанию.
Качество в подробностях
Для проведения сертификации программного обеспечения компания должна
подготовить тестовую среду. Это должен быть компьютер (или компьютеры,
если проводится тестирование программы для сетевого использования) с
установленной Windows 7 32-битной или 64-битной максимально возможного
издания (это необязательное условие). В системе должен быть созданы три
учетных записи – администраторская и две обычных пользовательских.
Компьютер должен быть оснащен видеокартой, поддерживающей DirectX 10
для тестирования поведения приложения в интерфейсе Aero. После этого
тестировщик загружает и устанавливает Windows 7 Software Development
Kit (SDK) (некоторые из утилит, входящие в этот пакет, нужны для
подписания бинарных компонентов приложения цифровой подписью Microsoft
Code Signing Authenticode, а также для проверки инсталляторов), после
чего производит установку Windows 7 Client Software Logo Toolkit.
Дальнейшие действия связаны с запуском тестов, которые проводятся в
виде интерактивного Мастера или поодиночке с запуском команд в консоли.
Рассмотрим основные этапы проверки.
Первые несколько шагов связаны с поведением инсталлятора приложения. На
этом этапе проверяется, насколько корректно устанавливается продукт –
помещаются ли его файлы в системные каталоги %ProgramFiles%, %AppData%
или %LocalAppData% и доступны ли конфигурационные файлы, расположенные
в них. Здесь же проводится проверка запуска инсталлятора от разных
учетных записей – от администраторской (с запросом логина и пароля) и
пользовательской с обязательной проверкой по окончании установки, от
какого пользователя производится запуск исполняемого файла программы.
Аналогичным образом проверяется настройка приложения (не переходят ли
параметры при настройке под одной учетной записью в другую, что
недопустимо). Windows 7 Client Software Logo Toolkit также отслеживает
поведение инсталлятора при добавлении/удалении записей из системного
реестра (речь идет о прописывании пути до программы деинсталляции в
ветке
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\)
и проверке версии ОС (с помощью AppVerifier). Кроме этого,
сертифицируемое приложение не должно выводить систему в перезагрузку
после установки, а также корректно устанавливаться в случае обновления
Windows 7 с одной версии на другую.
Следующий этап проверки – это непосредственный запуск программы на
целевой машине. Здесь тестируется поведение программы не только на
Windows 7, но и на последующих версиях (с помощью AppVerifier) и
проверяется наличие объявленных в manifest-файлах параметров запуска с
разными ключами. После этого пакет пытается запустить программу от
обычной учетной записи; от другого пользователя при "горячем"
переключении входа в систему; а также работоспособность служб,
связанных с многопользовательской поддержкой (службы терминального
доступа, удаленный Рабочий стол, Общий доступ к папкам и так далее).
Здесь же определяется, могут ли пользователи с меньшими привилегиями
получить доступ к данными других профилей на компьютере (это
недопустимо), работает ли программа на 64-битной архитектуре, корректно
ли она ассоциируется с типами файлов в программах по умолчанию,
правильно она их обрабатывает. Для приложений, использующих функции
браузера IE8 проверяется также поведение программы при отсутствии этого
браузера (в европейских изданиях Windows 7) и наличие удовлетворенных
зависимостей компонентов того и другого продукта.
В составе Windows 7 Client Software Logo Toolkit есть и тесты по
проверке пользовательского интерфейса. Они проверяют качество
прорисовки всех графических компонентов на крупном разрешении и
масштабировании от 125%, поддержку Aero (отсутствие черных полей,
качество иконок в панели задач, корректность переключения по Win+Tab,
адекватность заливки окон при перемещении их по областям Рабочего
стола, сворачивании и разворачивании).
На этапе проверки под названием Reliability проводится тест надежности
и безопасности программного обеспечения. В область проверки попадают
функции программы по записи данных в защищенные системные каталоги
(%systemroot%, %systemroot%\system32) (это недопустимо) и проверка
невозможности записи от учетной записи простого пользователя в
%programfiles%. Остальные тесты касаются поведения самого приложения
при перезагрузке системы, возникновении сбоев (использует ли программа
Windows Error Reporting).
На последнем этапе проводится проверка наличия подписи у всех бинарных
файлов продукта, а также включенных в его дистрибутив драйверов (есть
они есть); правильности использования сетевого стека, в частности
IP-адресации, корректного функционирования приложения в связке с
Windows Firewall (работа с портами, создание правил на этапе установки
программы и их удаление после деинсталляции ее); а также проверка
использования в именах файлов коротких имен (это недопустимо).
Интерпретация результатов
По окончании проверки Windows 7 Client Software Logo Toolkit выводится
отчет, в котором указывается, прошло ли приложение тест или нет.
Критерием успешной проверки является содержимое отчета, создаваемого
утилитой тестирования – статус Pass или Pass with Warning для всех
выполненных испытаний. После этого разработчик программного обеспечения
должен передать в Microsoft эти результаты, для чего ему потребуется
зарегистрироваться на сайте winqual.microsoft.com. При завершении
автоматической проверки и подписания в электронной форме лицензионного
соглашения продукту будет присвоен логотип "Compatible with Windows 7".
Для включения криптографической подписи исполняемого кода программы
разработчику потребуется получить цифровое удостоверение VeriSign.
Дополнительно российские вендоры могут заявить о том, что их программы совместимы с Windows 7, если зарегистрируются в "Зеленом свете", проекте, посвященном продвижению независимых разработок. Попасть в российский каталог инновационных решений партнеров Microsoft, можно, отправив запрос по электронной почте его модераторам.
Microsoft предоставляет независимым сторонним разработчикам
исчерпывающие набор инструментов для сертификации приложений и
документации по их использованию. Общие требования к качеству
продукции, ее безопасности и надежности понятны и не вызывают
двухсмысленной трактовки.
Российские независимые разработчики программного обеспечения рассказали
CNews, что для них процедура сертификации Windows 7 представляет
максимально упрощенной и автоматизированной. "Разработчик
самостоятельно тестирует продукт, после чего автоматически создается
файл-отчет, который необходимо отправить в Microsoft для проверки.
После этого сертификат выдается незамедлительно", - объясняет Наталья Худякова,
исполнительный директор Movavi, вендора мультимедиа-продуктов. По ее
мнению, корпорация Microsoft создала все необходимые условия для
быстрой и безболезненной сертификации: версии Windows 7 были доступны
для разработчиков задолго до официального выпуска, были созданы
многочисленные подробные инструкции о прохождении сертификации,
тест-кейсы. Об этом же говорят и в компании Agnitum,вендоре
антивирусного программного обеспечения, продукты которого в числе
первых получили поддержку новой системы за 3 месяца до официального
выпуска. "Для добавления продукта в список программного обеспечения,
имеющего поддержку Windows7, достаточно выпустить версию с поддержкой
новой ОС и получить цифровую подпись от Microsoft, выполнив также ряд
несложных технических требований к предоставлению информации на сайте",
- замечает Виталий Янко, коммерческий директор Agnitum.