Тестирование – процесс проверки правильности модели.
Каждому программисту известно, сколько времени и сил уходит на отладку и тестирование программ. На этот этап приходится около 50% общей стоимости разработки мультимедийного программного обеспечения.
Но не каждый из разработчиков программных средств может верно определить цель тестирования. Нередко можно услышать, что тестирование - это процесс выполнения программы с целью обнаружения в ней ошибок. Но эта цель недостижима: ни какое самое тщательное тестирование не дает гарантии, что программа не содержит ошибок.
Основные принципы организации тестирования:
· необходимой частью каждого теста должно являться описание ожидаемых результатов работы программы, чтобы можно было быстро выяснить наличие или отсутствие ошибки в ней;
· следует по возможности избегать тестирования программы ее автором, т.к. кроме объективной сложности тестирования для программистов здесь присутствует и тот фактор, что обнаружение недостатков в своей деятельности противоречит человеческой психологии (однако отладка программы эффективнее всего выполняется именно автором программы);
· по тем же соображениям организация - разработчик мультимедийного программного обеспечения не должна «единолично» его тестировать (должны существовать организации, специализирующиеся на тестировании программных средств);
· должны являться правилом доскональное изучение результатов каждого теста, чтобы не пропустить малозаметную на поверхностный взгляд ошибку в программе;
· необходимо тщательно подбирать тест не только для правильных (предусмотренных) входных данных, но и для неправильных (непредусмотренных);
· при анализе результатов каждого теста необходимо проверять, не делает ли программа того, что она не должна делать;
Человеко-машинный интерфейс обеспечивает связь между пользователем и компьютером - он позволяет достигать поставленных целей, успешно находить решение поставленной задачи.
Имеется ряд стилей взаимодействий, которые делятся на два основных вида. Первый – это использование интерфейса языка команд - ввод команд текстовыми средствами; и второй – это непосредственное манипулирование. Таким образом, имеется ряд способов, которыми пользователь мог бы связываться с компьютером:
· языки команд - пользователь управляет системой, вводя соответствующие команды в тестовом режиме;
· вопрос и ответ - диалог, где компьютер задает вопросы, а пользователь отвечает ему (или наоборот);
· формы - пользователь заполняет формы или поля диалога, вводя данные в необходимые поля;
· меню - пользователь обеспечен рядом опций и управляет системой, выбирая необходимые пункты;
· прямое манипулирование - пользователь управляет объектами на экране посредством устройства манипулирования, типа мыши. Другой термин, используемый для прямого интерфейса манипулирования - Графический Интерфейс Пользователя.
Обычно используются комбинированные стили взаимодействия из приведенных выше.
Например, в графическом интерфейсе операционной системы Windows используется прямое манипулирование, а также меню, диалоговые элементы, формы и язык команд. Цель создания эргономичного интерфейса состоит в том, чтобы отобразить информацию настолько эффективно насколько это возможно для человеческого восприятия и структурировать отображение на дисплее таким образом, чтобы привлечь внимание к наиболее важным единицам информации. Основная же цель состоит в том, чтобы минимизировать общую информацию на экране и представить только то, что является необходимым для пользователя.
Основные принципы создания интерфейса:
Формы – основной элемент интерфейса. Назначение форм – удобный ввод и просмотр данных, состояния, сообщений мультимедийной системы.
Основные принципы проектирования форм:
· Форма проектируется для более удобного, более понятного и скорейшего достижения решения поставленной задачи.
· Размещение информационных единиц на пространстве формы должно соответствовать логике ее будущего использования: это зависит от необходимой последовательности доступа к информационным единицам, частотой их использования, а также от относительной важности элементов.
· Важно использовать незаполненное пространство, чтобы создать равновесие и симметрию среди информационных элементов формы, для фиксации внимания пользователя в нужном направлении.
· Логические группы элементов необходимо отделять пробелами, строками, цветовыми или другими визуальными средствами.
· Взаимозависимые или связанные элементы должны отображаться в одной форме.
Дизайн заголовков и полей:
· Для отдельных полей заголовок должен быть выровнен по левому краю; для полей списков, заголовок должен быть выше и левее по отношению к основному полю, числовые поля выравниваются по правому полю.
· Длинные колоночные поля или длинные столбцы информационных единиц с одиночными полями необходимо объединять в группы пять элементов, разделяемых пустой строкой - это помогает пользователю мысленно обрабатывать информацию по выделенным группам.
· В формах с большим количеством информации необходимо использовать названия разделов, которые однозначно свидетельствуют о характере принадлежащей им информации.
· Необходимо четко разделить отображение заголовков и непосредственно полей ввода, поскольку такая путаница может вызвать дискомфорт у пользователя.
· Заголовки должны быть краткими, знакомыми и содержательными.
· Поля, необязательные для заполнения, либо не имеющие особой важности должны отличаться визуально (цветом или другими эффектами) от полей важных и обязательных для заполнения.
Навигация обеспечивает пользователю способность перемещаться между различными экранами, информационными единицами и подпрограммами в мультимедийной системе.
font-style:italic'>Общие принципы проектирования.
Существует ряд навигационных средств и приемов, которые помогают пользователю ориентироваться в системе. Они включают: использование заголовков страниц для каждого экрана; использование номеров страниц; номеров строк и столбцов; отображение текущего имени файла вверху экрана. Тип системы навигации зависит от принятого стиля интерфейса. Для интерфейсов языка команд очень мало способов обеспечения полноценной навигации. В интерфейсах с меню можно использовать иерархически-структурированное меню. Для выхода из подменю нужно применять не сложные действия. Диалоговые интерфейсы сами по себе защищают пользователя от ошибочных действий.
font-style:italic'>Проектирование сообщений.
Сообщения необходимы для направления пользователя в нужную сторону, подсказок и предупреждений для выполнения необходимых действий. Они также включают подтверждения действий со стороны пользователя и подтверждения, что задачи были выполнены системой успешно либо по каким-то причинам не выполнены. Сообщения могут быть обеспечены в форме диалога, экранных заставок и т.п.
Сообщения могут предложить пользователю:
· выбрать из предложенных альтернатив некую опцию или набор опций;
· ввести некоторую информацию;
· выбрать опцию из набора опций, которые могут изменяться в зависимости от текущего контекста;
· подтвердите фрагмент введенной информации перед продолжением ввода.
Сообщения могут быть помещены в модальные диалоговые окна, которые вынуждают пользователя ответить на вопрос прежде, чем может быть предпринято любое другое действие, потому что все другие средства управления заморожены. Это может быть полезно, когда система должна вынудить пользователя принять решение перед продолжением работы. Немодальные диалоговые окна позволяют работать с другими элементами интерфейса, в то время, как само окно может игнорироваться.
font-style:italic'>Выделение элементов интерфейса яркостью.
Для привлечения внимания к каким-либо элементам интерфейса можно воспользоваться выделением этих элементов большей яркостью на фоне других – более темных. Однако, не стоит переусердствовать с этим методом, поскольку большое количество ярких элементов может вызвать дискомфорт у пользователя. Таким образом, можно достичь обратного эффекта – перегрузки интерфейса. Применять этот метод нужно только при необходимости. Существует несколько способов выделения яркостью:
· движение (мигание или изменение позиции). Очень эффективный метод, поскольку глаз имеет специальный детектор для движущихся элементов;
· яркость. Не очень эффективный метод, так как люди могут обнаружить всего лишь несколько уровней яркости;
· цвет - использование цвета может быть чрезвычайно эффективно;
· форма (символ, шрифт, форма символа). Используется для того, чтобы отличить различные категории данных;
· использование различных алфавитов (шрифтов) в различных формах;
· размер (текста, символов).
Обычно применяют увеличение выделенного объекта в 1.5 раза;
· оттенение (различная текстура объектов). Эффективный метод для привлечения внимания к какой-либо части экрана;
· окружение (подчеркивание, рамки, инвертированное изображение). Очень эффективный метод если не переусердствовать;
font-style:italic'>
font-style:italic'>Использование цвета при проектировании эргономичного интерфейса.
Цвет может улучшить интерфейс пользователя, но для многих систем использование цвета практически не влияет на эффективность работы пользователя. Основное назначение цвета - в создании интерфейсов, более интересных для пользователей. Однако, имеются случаи, где цвет может помочь проектировщику интерфейса пользователя. Это наиболее эффективно когда цвет используется для:
· группировки информации;
· выделения различий между информацией;
· выделения простых сообщений (ошибки, состояния и т.д.)
Цвет – мощный визуальный инструмент, его необходимо использовать очень осторожно, чтобы не вызвать дискомфорта у пользователя ошибочными цветовыми комбинациями.
Приведем некоторые принципы использования цвета, которыми нужно руководствоваться при проектировании эргономичного интерфейса:
· необходимо ограничить число цветов до 4 на экране и до 7 для последовательности экранов; для неактивных элементов нужно использовать бледные цвета;
· необходимо использовать цвета согласно представлениям пользователя, например, для картографа зеленый - лес, желтый - пустыня, синий - вода. Для химика, красный -горячий, синий – холодный;
· для отображения состояния: красный = опасность/стоп, зеленый = нормально/продолжение работы, желтый = предостережение;
· для привлечения внимания наиболее эффективны белый, желтый и красный цвета;
· для упорядочения данных можно использовать спектр 7 цветов (радуга);
· для разделения данных необходимо выбрать цвета из различных частей спектра (красный / зеленый, синий / желтый, любой цвет / белый);
· для группировки данных, объединения и подобия нужно использовать цвета, которые являются соседями в спектре (оранжевые / желтые, синие / фиолетовые);
Важно отметить, что около 9% людей не различают цвета, (обычно красно - зеленые сочетания). Однако, эти люди могут отличать черно-белые оттенки, поэтому проектировщики мультимедийных систем должны проверять, не нарушает ли восприятие пользователей этой категории использование различных цветов в интерфейсах программных продуктов.
font-style:italic'>Непротиворечивость и стандартизация.
Данные на экране следует располагать таким образом, чтобы пользователь знал, где найти и где ожидать вывода необходимой информации:
· информация, на которую следует немедленно обратить внимание, должна всегда отображаться в видном месте, чтобы захватить внимание пользователя (например предупреждающие сообщения и сообщения об ошибках);
· информация, которая необходима не очень часто (например средства справки) не должна отображаться, но должна быть доступна, когда потребуется. Например, иконка Справки или соответствующая опция меню должна быть доступна на каждом экране;
· менее срочная или менее необходимая информация не должна все время находится перед пользователем, но должна быть доступна, когда понадобится;
· отчеты и ссылки должны быть сгруппированы.
font-style:italic'>Тексты и диалоги.
Приведем некоторые принципы, которыми необходимо руководствоваться при создании текстовых диалогов и отображений:
· текст в нижнем регистре читается приблизительно на 13% быстрее, чем текст, который напечатан полностью в верхнем регистре;
· символы верхнего регистра наиболее эффективны для информации, которая должна привлечь внимание. НЕ ИСПОЛЬЗУЙТЕ ВЕРХНИЙ РЕГИСТР, ЕСЛИ ВЫ НЕ ХОТИТЕ ВЫДЕЛЯТЬ КАКУЮ-ЛИБО ИНФОРМАЦИЮ;
· выровненный по правому краю текст труднее читать, чем равномерно распределенный текст с невыровненным правым полем;
· оптимальный интервал между строками равен или немного больше, чем высота символов.
Кнопки используются, чтобы выбрать опцию или вызвать событие (например, запуск подпрограммы).
Переключатели подобны кнопкам выбора, в которых пользователь выбирает значение из фиксированного списка, но в данном случае, пользователь может выбрать более чем одно значение из списка.
Слайдеры – обычно это элемент «полоса прокрутки», они могут быть помещены или в горизонтальную или вертикальную линейку на экране.
Метки и текстовые блоки используются для текстовой информации. Различие между ними - текстовые поля, позволяют пользователю вводить текстовые данные в поля, в то время как метки - поля нередактируемые, используемые только для отображения текста, типа подсказок, команд пользователя и т.д.
Списки - специализированные средства управления, которые отображают раскрывающиеся списки значений (часто с присоединенными слайдерами, чтобы перемещаться вверх или вниз по списку) и позволяют пользователю выбирать значение из списка, или вводить другое значение в присоединенное текстовое поле. Списки – удобный и компактный элемент интерфейса, который занимает минимум места на экране и в то же время несет большую информационную нагрузку.
font-style:italic'>Изображения (Иконки).
В интерфейсе непосредственного манипулирования, пользователи выполняют действия непосредственно на видимых объектах. Этими объектами могут быть кнопки, метки, меню или изображения (иконки).
Все иконки можно классифицировать согласно тому, насколько точно они отображают несущую функцию:
· иконки подобия - иконки похожи на объекты, которые они отображают (типа ножниц, чтобы отобразить операцию «вырезки»);
· иконки по образцу – представляют пример типа объекта (например иконкой, показывающей линию, чтобы представить средство рисования);
Системы такого рода не позволяют как-то обрабатывать или редактировать само аналоговое изображение. Для того, чтобы это стало возможным, его необходимо оцифровать и ввести в память компьютера. Для этого служат так называемые платы захвата (capture board, frame grabbers). Оцифровка аналоговых сигналов порождает огромные массивы данных. Так, кадр стандарта NTSC (525 строк), преобразованный платой типа Truevision, превращается в компьютерное изображение с разрешением 512x482 пиксель. Если каждая точка представлена 8 битами, то для хранения всей картинки требуется около 250 Кбайт памяти, причем падает качество изображения, так как обеспечивается только 256 различных цветов. Считается, что для адекватной передачи исходного изображения требуется 16 млн. оттенков, поэтому используется 24-битовый формат хранения цветной картинки, а необходимый размер памяти возрастает. Оцифрованный кадр может затем быть изменен, отредактирован обычным графическим редактором, могут быть убраны или добавлены детали, изменены цвета, масштабы, добавлены спецэффекты, типа мозаики, инверсии и т.д.
Естественно, интерактивная экранная обработка возможна лишь в пределах разрешения, обеспечиваемого данным конкретным видеоадаптером. Обработанные кадры могут быть записаны на диск в каком–либо графическом формате и затем использоваться в качестве реалистического неподвижного фона для компьютерной анимации. Возможна также покадровая обработка исходного изображения и вывод обратно на видеопленку для создания псевдореалистического мультфильма.
Запись последовательности кадров в цифровом виде требует от компьютера больших объемов внешней памяти: частота кадров в американском ТВ–стандарте NTSC — 30 кадров/с (PAL, SECAM — 25 кадров/с), так что для запоминания одной секунды полноцветного полноэкранного видео требуется 20–30 Мбайт, а оптический диск емкостью 600 Мбайт вместит менее полминуты изображения. Но последовательность кадров недостаточно только запомнить, ее надо еще вывести на экран в соответствующем темпе. Подобной скоростью передачи информации — около 30 Мбайт/с — не обладает ни одно из существующих внешних запоминающих устройств. Чтобы выводить на экран компьютера оцифрованное видео, приходится идти на уменьшение объема передаваемых данных, (вывод уменьшенного изображения в небольшом окне, снижение частоты кадровой развертки до 10–15 кадров/с, уменьшение числа бит/пиксель), что, в свою очередь приводит к ухудшению качества изображения.
Более радикально обе проблемы — памяти и пропускной способности — решаются с помощью методов сжатия/развертки данных, которые позволяют сжимать информацию перед записью на внешнее устройство, а затем считывать и разворачивать в реальном режиме времени при выводе на экран. Так, для движущихся видеоизображений существующие адаптивные разностные алгоритмы могут сжимать данные с коэффициентом порядка 100:1— 160:1, что позволяет разместить на CD–ROM около часа полноценного озвученного видео. Работа этих алгоритмов основана на том, что обычно последующий кадр отличается от предыдущего лишь некоторыми деталями, поэтому, взяв какой–то кадр за базовый, для следующих можно хранить только относительные изменения.
При значительных изменениях кадра, например, при монтажной склейке, наезде или панорамировании камеры, автоматически выбирается новый базовый кадр. Для статических изображений коэффициент сжатия, естественно, ниже — порядка 20–30:1. Для аудиоданных применяют свои методы компрессии.
В настоящее время целый ряд фирм активно ведет разработку алгоритмов сжатия видеоинформации, стремясь достичь коэффициента сжатия порядка 200:1 и выше. В основе наиболее эффективных алгоритмов лежат различные адаптивные варианты: DCT (Discrete Cosine Transform, дискретное косинус–преобразование), DPCM (Differential Pulse Code Modulation, разностная импульсно–кодовая модуляция), а также фрактальные методы. Алгоритмы реализуются аппаратно — в виде специальных микросхем, или “firmware” — записанной в ПЗУ программы, либо чисто программно.
При использовании специальных видеоадаптеров (видеобластеров) мультимедиа–ПК становятся центром бытовой видеосистемы, конкурирующей с самым совершенным телевизором.
Новейшие видеоадаптеры имеют средства связи с источниками телевизионных сигналов и встроенные системы захвата кадра (компрессии/декомпрессии видеосигналов) в реальном масштабе времени, т.е. практически мгновенно. Видеоадаптеры имеют быструю видеопамять от 2 до 64 Мбайт и специальные графические ускорители процессоры. Это позволяет получать до 30–50 кадров в секунду и обеспечить вывод подвижных полноэкранных изображений.