Тестирование интеграции пользовательского интерфейса приложений для Windows 8

В записи блога, посвященной тестированию приложений для Магазина Windows, мы обсудили, какие аспекты работы приложения в разных состояниях выполнения необходимо проверить. Мы также обсудили некоторые особенности интерфейса Windows 8 и их влияние на среду, в которой работает ваше приложение. А сейчас мы подробнее рассмотрим пользовательский интерфейс и опишем некоторые интересные взаимодействия и сценарии (отмеченные нами в процессе тестирования существующих приложений), в которых может участвовать ваше приложение, и расскажем, что необходимо сделать, чтобы обеспечить его правильную работу.

Общая структура и поведение

В Windows 8 появились новые мощные функциональные возможности, благодаря которым вы можете сделать свое приложение иммерсивным и привлекательным. Во время инициализации приложения появляется экран-заставка, формирующий у пользователя первое впечатление о вашем приложении. Когда ваше приложение работает, пользователь в любой момент может повернуть его, изменить его масштаб, прикрепить его с помощью функции Snap или развернуть на весь экран. А что еще более важно, любые из этих событий могут происходить одновременно или подряд. Например, ваше приложение может получить команду изменить ориентацию во время отображения экрана-заставки или может быть переведено в прикрепленное состояние при подключении вашего устройства к проектору, что вызывает изменение масштаба. Давайте поподробнее обсудим, на что следует обратить внимание во время каждого из этих событий.

Экран-заставка

Экран-заставка позволяет вашему приложению отображать информацию, пока система выполняет его инициализацию для первого использования или переводит его из приостановленного состояния (из обратного стека). Чтобы убедиться в правильном отображении экрана-заставки, запустите свое приложение в полноэкранном режиме с книжной и альбомной ориентацией и проверьте, что экран-заставка расположен правильно (обычно в центре экрана) и что в нем нет проблем с анимацией или отображением визуальных элементов. Кроме того, обратите внимание на качество (разрешение) графики, отображаемой на экране-заставке: нет ли зубчатых краев или мозаичных изображений.

Если ваше приложение поддерживает отображение расширенного экрана-заставки, проверьте, что переход от обычного экрана-заставки к расширенному выполняется плавно, без скачков. Обратите особое внимание на такие неприятные эффекты, как изменение положения значков, мигание экрана и т. п.

Поворот

Поворот может произойти в любой момент работы вашего приложения, даже когда оно находится в приостановленном состоянии. Проверьте, что ваше приложение реагирует на изменения ориентации при тестировании различных состояний пользовательского интерфейса. Обратите особое внимание на проблемы, связанные с расположением и обрезанием элементов, которые могут отрицательно повлиять на впечатления пользователя от работы с вашим приложением. Убедитесь также, что контент не "скачет" и не мигает при изменении ориентации.

Если ваше приложение использует настройки автоматического поворота, проверьте, что при запуске вашего приложения или переходе к нему ориентация системы меняется в соответствии с настройками поворота вашего приложения. Убедитесь также, что ваше приложение может использоваться с настройкой поворота в перевернутом режиме. Например, если настройкой автоматического поворота является альбомная ориентация, проверьте, что ваше приложение правильно отображается и работает как при обычной альбомной ориентации, так и при перевернутой.

Если у вас нет соответствующего оборудования для тестирования приложения в условиях поворота, вы можете воспользоваться имитатором Visual Studio для моделирования поворота. Подробнее об использовании имитатора для тестирования можно прочитать в статье Тестирование приложений для Windows 8 с использованием Visual Studio.

Масштабирование

Windows 8 масштабирует ваше приложение для удобства использования сенсорного управления на устройствах с разным разрешением экрана. Проверьте интерфейс вашего приложения при масштабе 100 %, 140 % и 180 %. Убедитесь, что ваше приложение правильно отображается при всех вариантах масштаба в разных состояниях пользовательского интерфейса.

Для проверки работы приложения при поддерживаемых вариантах масштаба можно воспользоваться имитатором Visual Studio со следующими параметрами настройки:

  • 100 % — 10,6 дюйма, 1366 X 768
  • 140 % — 10,6 дюйма, 1920 X 1080
  • 180 % — 10,6 дюйма, 2560 X 1440

Изменения масштаба могут происходить динамически во время работы вашего приложения, если приложение перемещается с одного монитора на другой в системе с двумя мониторами или работает на устройстве, подключенном к проектору. Обратите особое внимание на проблемы, связанные с расположением и обрезанием элементов, которые могут отрицательно повлиять на впечатления пользователя от работы с вашим приложением. Внимательно проверьте качество отображения (разрешение) значков, плиток, изображений и контента, обратите внимание на зубчатые края и мозаичные изображения.

Просмотр в представлениях прикрепления и заполнения

Изменения отображения при переходе между представлениями прикрепления и заполнения могут произойти в любой момент работы вашего приложения; даже когда оно находится в приостановленном состоянии. Проверьте, что ваше приложение правильно реагирует на такие изменения представления при тестировании различных состояний пользовательского интерфейса. Кроме того, обратите внимание на проблемы, связанные с расположением и обрезанием элементов, которые могут отрицательно повлиять на впечатления пользователя от работы с вашим приложением.

Для использования прикрепленного представления для отображения двух приложений на экране требуется разрешение экрана не менее 1366 X 768. Для прикрепления приложения с помощью функции Snap необходимо, чтобы оно работало, а другое приложение находилось в обратном стеке. Чтобы создать прикрепленное представление, проведите пальцем от левого края экрана и располагайте второе приложение, пока не увидите вертикальный переплет.

Контракты и опциональное поведение

В Windows 8 введены многообразные и гибкие способы взаимодействия приложений и обмена данными и файлами. Приложения могут использовать средство выбора файлов для открытия и сохранения файлов. Кроме того, благодаря реализации контрактов выбора файлов приложения могут предоставлять другим приложениям файлы или расположение сохранения. С помощью контракта "Поиск" приложения могут предоставлять пользователю информацию, которую он ищет. А контракт общего доступа обеспечивает пользователю удобный способ передачи контента, например фотографий и веб-ссылок, из одного приложения в другое для совместного использования.

В условиях, когда приложения имеют больше возможностей и играют ключевую роль во взаимодействии пользователя с файлами и данными, необходимо обеспечить, чтобы эти взаимодействия были интуитивно понятны пользователю. Далее мы обсудим некоторые возможности работы с файлами и данными и некоторые интересные сценарии.

Контракт выбора файлов в окне открытия

В Windows 8 приложения могут использовать средство выбора файлов для открытия и сохранения файлов. Кроме того, благодаря реализации контрактов выбора файлов приложения могут предоставлять другим приложениям файлы или расположение сохранения.

Если вы разрешаете другому приложению вызывать средство выбора файлов для типов файлов, поддерживаемых вашим приложением, проверьте правильность отображения эскизов элементов, добавляемых вашим приложением в подборку средства выбора файлов. Убедитесь также, что файлы (включая контент), выбранные пользователем, правильно возвращаются в приложение, вызвавшее средство выбора файлов.

Если ваше приложение обеспечивает уникальное представление файлов, убедитесь, что файлы правильно добавляются в подборку средства выбора файлов и удаляются из нее.

Когда пользователь переходит от вашего приложения в средстве выбора файлов к другим элементам, то приложение, отображаемое в средстве выбора файлов, зачастую может переводиться в приостановленное состояние, но не может быть завершено. Поэтому вашему приложению не нужно обрабатывать события приостановки и возобновления работы, поскольку это приведет к заметному снижению быстродействия при возвращении пользователя к нему. Вместо этого зарегистрируйте свое приложение для события закрытия средства выбора файлов, чтобы определять, когда ваше приложение закрывается, и обеспечить выполнение всех необходимых операций очистки памяти и места на диске.

Контракт "Поиск"

Контракт "Поиск" обеспечивает приложениям важную возможность предоставлять пользователям информацию, которую они ищут. Если ваше приложение поддерживает поиск, необходимо в первую очередь проверить, что, когда пользователь открывает панель поиска и вводит запрос, ваше приложение обрабатывает этот запрос и отображает результаты. Если вы неправильно реализовали контракт "Поиск", вы увидите сообщение "Поиск в этом приложении невозможен" и любой поиск, выполняемый пользователем, будет по умолчанию приводить в "Приложения".

Если ваше приложение предоставляет поисковые предложения, проверьте, что они правильно отображаются и что отображается значок правильной ширины и высоты. Если ваше приложение поддерживает функцию ввода запроса для поиска, проверьте, что, когда вы открываете приложение и начинаете вводить запрос для поиска, открывается панель поиска и возвращаются ожидаемые результаты.

Контракт "Поиск" поддерживает настройку "подсказки", которая представляет собой пример текста для поиска серого цвета, отображаемый в поле поиска, когда пользователь открывает панель поиска. Если ваше приложение задает "подсказку" в поле поиска, проверьте, что она понятна пользователю и отображается ожидаемым образом, когда вы открываете панель поиска в своем приложении.

Если ваше приложение поддерживает программную настройку текста на панели поиска, проверьте корректность работы этой функции. При закрытой панели поиска выполните в своем приложении действие, приводящее к настройке текста на панели поиска, откройте панель поиска и проверьте, что текст настроен правильно.

Поворот может произойти в любой момент работы вашего приложения, в том числе во время поиска. Обратитесь к разделу "Поворот" (выше) и проверьте, что поиск правильно выполняется при повороте устройства.

Контракт общего доступа

Контракт общего доступа предоставляет пользователям удобный способ передачи контента, например фотографий и веб-ссылок, из одного приложения в другое для совместного использования. Приложения, являющиеся источниками данных, предоставляют контент, а приложения, являющиеся получателями данных, используют его. Ваше приложение может выступать в любой из этих ролей (или в обеих).

Если ваше приложение является источником данных, обратите внимание на то, что разные приложения-получатели по-разному обрабатывают предоставленные им данные в зависимости от своих сценариев. Некоторые из них могут считать определенный контент приоритетным. Например, если вы предоставляете для общего доступа и ссылку, и HTML-фрагмент, некоторые приложения-получатели могут игнорировать HTML и обрабатывать только ссылку или наоборот. Чтобы предоставить пользователю удобные возможности передачи данных для общего доступа из вашего приложения, убедитесь, что контент вашего пакета данных представляет собой различные представления одних и тех же данных, и попробуйте передать его в несколько разных приложений-получателей (в пример приложения-получателя данных, в приложение "Почта", а также в другие приложения-получатели данных, установленные на вашем компьютере) при создании и тестировании вашего приложения.

Пользователи ожидают, что предоставляемый для общего доступа контент является видимым, привязан к текущей странице, представляет собой что-то, что они выделили, или очевиден из контекста приложения. Перемещайтесь по своему приложению, передавайте данные для общего доступа из разных расположений, выделите что-то и предоставьте для общего доступа выделенный контент и убедитесь, что контент, предоставляемый для общего доступа из вашего приложения, соответствует ожиданиям пользователей.

Если ваше приложение является получателем данных, оно будет указано на панели общего доступа. Это более узкое представление, чем весь экран, и пользователь может легко закрыть эту панель (включая ваше приложение), коснувшись точки за ее пределами. Она была создана для предоставления удобного и быстрого доступа к приложениям, являющимся получателями данных. Убедитесь, что ваше приложение работает в этой среде ожидаемым образом. Чем сложнее процедура, которую нужно выполнить пользователю для обмена данными, тем выше риск, что он или она случайно коснется точки за пределами этой панели и потеряет всю выполненную работу. Обратите внимание на элементы управления, например полосы прокрутки слева. Они могут вызвать те же проблемы. Возможно также, что пользователь запустит ваше приложение как получатель данных при первом его использовании. Если ваше приложение требует проверки подлинности или настройки при первом запуске, обеспечьте, чтобы пользователь мог выполнить необходимые операции на панели общего доступа или чтобы ваше приложение выводило понятные сообщения о том, что необходимо сделать перед тем, как предоставить данные вашему приложению.

Если ваше приложение является и источником, и получателем данных, пользователь может предоставлять данные для общего доступа из вашего приложения ему же. Убедитесь, что это имеет смысл для сценариев использования вашего приложения.

Заключение

Windows 8 обеспечивает многообразный, иммерсивный опыт работы, в котором ваши приложения играют главную роль. Кроме взаимодействия с пользователем в своем приложении, вы можете также взаимодействовать с состояниями поворота, масштабирования, различными состояниями просмотра, а также использовать контракты в зависимости от того, какие функции поддерживает ваше приложение и что делает пользователь во время работы вашего приложения. В этой записи блога мы рассмотрели некоторые из таких взаимодействий, которые могут вызывать трудности, и объяснили, как протестировать ваше приложение, чтобы избежать проблем. Надеемся, этот блог поможет вам найти неполадки, отрицательно влияющие на пользовательский интерфейс вашего приложения. Поделитесь с нами своими отзывами по этой теме или расскажите об интересных проблемах, с которыми вы столкнулись.

-- Рик Мужинский (Rick Muszynski), инженер-программист по тестированию, Windows

-- Патрик Ландберг (Patrik Lundberg), инженер-программист по тестированию, Windows

Выражаем отдельную благодарность Тому Уайту (Tom White) и Джейку Сабульски (Jake Sabulsky) за их помощь при создании этой записи.