тестирование+интерефейса+пользователя


 * Удобство использования пользовательского интерфейса ( usability )** - показатель его качества, который определяет количество усилий, необходимых для изучения принципов работы с программной системой при помощи данного интерфейса, ее использования, подготовки входных данных и интерпретации выходных. Иначе говоря, удобство использования определяет степень простоты доступа пользователя к функциям системы, предоставляемым через человеко-машинный (пользовательский) интерфейс.


 * На удобство использования пользовательского интерфейса влияют следующие факторы:**
 * **легкость обучения ** - быстро ли человек учится использовать систему;
 * **эффективность обучения ** - быстро ли человек работает после обучения;
 * **запоминаемость обучения ** - легко ли запоминается все, чему человек научился;
 * **ошибки ** - часто ли человек допускает ошибки в работе;
 * **общая удовлетворенность ** - является ли общее впечатление от работы с системой положительным.

Все эти факторы, несмотря на свою неформальность, могут быть измерены. Для таких измерений выбирается группа типичных пользователей системы, и в процессе их работы измеряются показатели их работы с системой (например, количество допущенных ошибок), а также им предлагается высказать собственные впечатления от системы при помощи заполнения опросных листов. Выделяют следующие этапы тестирования удобства использования пользовательского интерфейса 10].
 * 1) **Исследовательское ** - проводится после формулирования требований к системе и разработки прототипа интерфейса. Основная цель на этом этапе - провести высокоуровневое обследование интерфейса и выяснить, позволяет ли он с достаточной степенью эффективности решать задачи пользователя.
 * 2) **Оценочное ** - проводится после разработки низкоуровневых требований и детализированного прототипа пользовательского интерфейса. Оценочное тестирование углубляет исследовательское и имеет ту же цель. На данном этапе уже проводятся количественные измерения характеристик пользовательского интерфейса: измеряются количество обращений к системе помощи по отношению к количеству совершенных операций, количество ошибочных операций, время устранения последствий ошибочных операций и т.п.
 * 3) **Валидационное ** - проводится ближе к этапу завершения разработки. На этом этапе проводится анализ соответствия интерфейса программной системы стандартам, регламентирующим вопросы удобства интерфейса (например ISO 13407 31], ISO 9126 32]), проводится общее тестирование всех компонент пользовательского интерфейса с точки зрения конечного пользователя. Под компонентами интерфейса здесь понимается как его программная реализация, так и система помощи и руководство пользователя. Также на данном этапе проверяется отсутствие дефектов удобства использования интерфейса, выявленных на предыдущих этапах.
 * 4) **Сравнительное ** - данный вид тестирования может проводиться на любом этапе разработки интерфейса. В ходе сравнительного тестирования сравниваются два или более вариантов реализации пользовательского интерфейса.

Как правило, при тестировании удобства использования пользовательского интерфейса используются некоторые эвристические критерии и характеристики, которые заменяют точные оценки в классическом тестировании программных систем. Например, Якоб Нильсен в своей работе 30] выделил 10 эвристических характеристик удобного пользовательского интерфейса, которые с его точки зрения должны проверяться при тестировании удобства использования интерфейса.
 * **Наблюдаемость состояния системы .** Система всегда должна оповещать пользователя о том, что она в данный момент делает, причем через разумные промежутки времени.
 * **Соотнесение с реальным миром .** Терминология, использованная в интерфейсе системы должна соотноситься с пользовательским миром, т.е. это должна быть терминология проблемной области пользователя, а не техническая терминология.
 * **Пользовательское управление и свобода действий .** Пользователи часто выбирают отдельные интерфейсные элементы и используют функции системы по ошибке. В этом случае необходимо предоставлять четко определенный "аварийный выход", при помощи которого можно вернуться к предыдущему нормальному состоянию. К таким "аварийным выходам" относятся, например, функции отката и обратного отката.
 * **Целостность и стандарты .** Для обозначения одних и тех же объектов, ситуаций и действий должны использоваться одинаковые слова во всех частях интерфейса. Более того, терминология сообщений в пользовательском интерфейсе должна учитывать соглашения конкретной платформы.
 * **Помощь пользователям в распознавании, диагностике и устранении ошибок .** Сообщения об ошибках должны быть написаны на естественном языке, а не заменяться кодами ошибок. Сообщения об ошибках должны четко определять суть возникшей проблемы и предлагать ее конструктивное решение.
 * **Предотвращение ошибок .** Продуманный дизайн пользовательского интерфейса, предотвращающий появление ошибок пользователя, всегда лучше хорошо продуманных сообщений об ошибках. При проектировании интерфейса необходимо либо полностью устранить элементы, в которых могут возникать ошибки пользователя, либо проверять ввод пользователя в этих элементах и сообщать ему о потенциально возможном возникновении проблемы.
 * **Распознавание, а не вспоминание .** При создании интерфейса необходимо минимизировать нагрузку на память пользователя, делая объекты, действия и опции ясными, доступными и явно видимыми. Пользователь не должен запоминать информацию при переходе от одного диалогового окна к другому. Во всех необходимых местах должны быть доступны контекстные инструкции по использованию интерфейса.
 * **<span class="xml_em_bold">Гибкость и эффективность использования .** В интерфейсе должны быть предусмотрены горячие клавиши (не обязательные к использованию начинающим пользователем) - они часто значительно ускоряют работу опытного пользователя. Иными словами, система должна предоставлять два способа работы - для новичков и для опытных пользователей. Желательно при этом давать возможность пользователю автоматизировать часто повторяющиеся действия.
 * **<span class="xml_em_bold">Эстетичный и минимально необходимый дизайн .** Окна не должны содержать не относящуюся к делу или редко используемую информацию. Каждый интерфейсный элемент, содержащий бесполезную информацию, играет роль информационного шума и отвлекает пользователя от действительно полезных интерфейсных элементов.
 * **<span class="xml_em_bold">Помощь и документация .** Несмотря на то, что в идеальном случае лучше, когда системой можно пользоваться без документации, таковая все равно необходима - как в виде системы помощи, так и, возможно, в виде печатного руководства. Информация в документации должна быть структурирована таким образом, чтобы пользователь мог легко найти нужный раздел, посвященный решаемой им задаче. Каждый такой ориентированный на конкретную задачу раздел должен помимо общей информации содержать пошаговые руководства по выполнению задачи и не должен быть слишком длинным.

Все эти эвристики могут использоваться при тестировании удобства использования пользовательского интерфейса. Достаточно очевидно, что при тестировании удобства слабо применимы способы автоматизации тестирования при помощи сценариев и подобные методы. Один из наиболее эффективных методов проверки интерфейса на удобство - использование формальной инспекции. Вопросы в бланке инспекции могут быть как общего характера (так, например, можно использовать в качестве вопросов перечисленные выше 10 эвристик), так и вполне конкретными. Например, в работе 33] приводится список контрольных вопросов, которые желательно проверять при тестировании удобства использования web-сайтов. С некоторыми изменениями эти вопросы применимы и для обычных оконных интерфейсов.

Ссылка: 1.http://www.intuit.ru/department/se/verify/24/3.html 2.http://www.e-uni.ee/e-kursused/eucip/arendus_vk/415__.html