Тестирование-книга. Ю. Н. Артеменко Научный редактор
Скачать 6.27 Mb.
|
Меню Меню должны быть простыми и логичными. Следует избегать длинных меню, подменю неопределенного назначения, в которых пользователю трудно отыскать нужную команду, непонятных пиктограмм и названий. Без тщательного планирования длинные многоуровневые меню становятся на стоящей катастрофой. Чересчур сложная иерархия меню Программисты, создающие многоуровневые меню, обычно следуют правилу, по которому ни в одном меню не должно быть более семи эле ментов. Однако это правило годится скорее для новичков, чем для профес сионалов. Опытный пользователь предпочтет сэкономить время на открытии вложенных меню, длинные же списки команд его ничуть не смущают. Главное, чтобы меню было тщательно спланировано. Интересные соображения по данному вопросу можно найти в работах таких авторов, как Пейеп и Роуск-Хостранд (Раар & Roske-Hostrand, 1986) и Мак-Грегор, Ли и Лэм (MacGregor, Lee & Lam 1986). Неадекватные правила переходов по меню Даже в меню среднего уровня вложенности у пользователя в любой момент должна быть возможность вернуться в предыдущее меню, перейти на самый верхний уровень и выйти из программы. Даже если в меню сот ни элементов, следует предусмотреть специальные комбинации клавиш для их быстрого выбора. Слишком много путей к одному и тому же месту Если одни и те же команды присутствуют во множестве меню, програм ма явно требует реорганизации. Не то чтобы команду никогда нельзя было помещать в нескольких меню — в некоторых случаях это очень удобно, — но существуют определенные пределы. Если создается ощущение, что в программе можно откуда угодно попасть куда угодно, ее внутренняя струк тура может быть очень запутанной, а значит, и надежность должна вызвать у тестировщика большие сомнения. Невозможность перехода между определенными состояниями Некоторые программы после выполнения пользователем определенных действий не позволяют ему выйти из того режима, в котором он оказался, 4 7 2 Часть III: Управление проектами и группами иначе, как перезапустив программу. Как правило, в таком ограничении нет объективной необходимости. Связанные команды расположены в различных меню В сложном меню правильно сгруппировать команды не так-то просто. Конструктор может не подумать о связи между двумя элементами и поме стить их в разные меню. Составляя отчет о такой ошибке, поясните, как связаны эти элементы, и предложите, в какое меню их лучше всего поме стить. Несвязанные команды объединены в одном меню Некоторые команды оказываются где попало просто потому, что кто-то поленился подумать, к какой группе их лучше всего отнести, и, может быть, реорганизовать все меню или добавить к нему еще один элемент самого верхнего уровня. Командные строки Вводить названия команд сложнее, чем выбирать их из меню. Однако при большом количестве команд и опций опытные пользователи могут предпочесть интерфейс командной строки. Для решения некоторых задач меню-ориентированный интерфейс оказывается слишком громоздким. В этом случае важно, чтобы набор команд был составлен так, чтобы их на звания легко запоминались и вероятность ошибок была сведена к миниму му. Учет регистра символов Если при распознавании команд программа учитывает регистр симво лов, как правило, это неудобно и ведет к ошибкам. Перестановка параметров Наиболее распространенным примером является порядок указания ис точника и приемника данных. Например, команда COPY FILE1 FILE2 может означать копирование файла FILE1 в FILE2, а может и наоборот. Сам по себе порядок параметров не имеет значения (люди легко запомнят любой вариант), но для всех команд он должен быть одинаковым. Кроме того, приложения должны следовать правилам, установленным в операци онной системе. Не распознаются полные имена команд Сами по себе сокращения — вещь хорошая, но у пользователя всегда должна быть возможность ввести и полное имя команды, например, delete, а не del. Полные имена запоминаются лучше, чем сокращения, особенно если единого правила для образования сокращений не существует. Приложение: Распространенные программные ошибки 4 7 3 Не допускаются сокращения У пользователя должна быть возможность ввести, например, del вмес то delete. Хотя такая возможность имеется не во всех системах, без сомне ния, она очень удобна. Сложная команда в одной строке Некоторые программы требуют ввода чрезвычайно сложных команд. (Во всех ли случаях, когда А, В и С истинны, a D — ложно, истинно X?) Пользо ватель, которому приходится вводить в одной командой сложные логические операторы, делает много ошибок. Для подобных случаев гораздо лучше под ходят формы ввода, последовательные запросы и запросы по образцу. Отсутствие возможности пакетного ввода У пользователя должна быть возможность подготовить список команд в текстовом редакторе, а затем предложить его программе для выполнения, как если бы все эти команды были последовательно введены с клавиатуры. Отсутствие возможности редактирования команд У пользователя должна быть возможность редактирования того, что он вводит, как минимум с помощью клавиши тель попытался выполнить неправильную команду, программа должна со общить об этом, а затем предоставить возможность отредактировать введенную строку и повторить попытку. Нестандартное использование клавиатуры Если компьютер поставляется со стандартной клавиатурой, за клавиша ми которой традиционно закреплены определенные команды, программа должна придерживаться этих соглашений. Невозможность использования клавиш управления курсором, функциональных клавиш и клавиш редактирования Все эти клавиши должны работать, даже если у части пользователей программы их на клавиатуре нет. Нестандартное использование клавиш управления курсором и редактирования Эти клавиши должны работать так, как привыкли пользователи тех компьютеров, для которых предназначена данная программа. Нестандартное использование функциональных клавиш Если в большинстве программ клавиша Справка, не следует связывать ее с командой Удалить-файл-и-выйти. 4 7 4 Часть III: Управление проектами и группами Принятие недопустимого ввода Программа должна игнорировать символы, логически недопустимые во вводимых пользователем данных, например, буквы при вводе числовых значений. Она не должна принимать недопустимые символы и отображать их на экране. Сообщения об ошибке в подобных ситуациях тоже излишни. Отсутствие индикаторов состояния клавиатуры У пользователя должна быть возможность в любой момент мгновенно определить состояние клавиатуры (нажата ли клавиша Отсутствие реакции на управляющие клавиши У пользователя должна быть возможность прервать текущую операцию. Кроме того, программа должна распознавать стандартные системные кла виши, например, , на которые быстро реагируют другие приложения. Пропущенные команды В этом разделе описываются отсутствующие в некоторых программах необходимые команды и функции. Переходы между состояниями Большинство программ осуществляет переходы из одних состояний в другие. После запуска программа находится в одном состоянии. В ответ на выбор пользователем какой-либо команды меню она изменяет свое состо яние. Обычно программисты достаточно хорошо тестируют код, чтобы пользователь мог достичь любого желаемого состояния программы. Одна ко они не всегда предусматривают для пользователя возможность изменить свой выбор. Невозможно выйти, ничего не сделав У пользователя должна быть возможность сообщить программе, что последний выбор сделан им по ошибке и он желает вернуться к предыду щему состоянию. Невозможно выйти из подпрограммы У пользователя должна быть возможность прервать выполнение про граммой текущего задания и вернуть данные к исходному состоянию. Например, это относится к редактированию или сортировке данных — пользователь может решить отказаться от внесенных изменений и оставить файл таким, каким он был перед началом текущей операции. Приложение: Распространенные программные ошибки 4 7 5 Невозможно прервать выполнение команды У пользователя должна быть возможность прервать выполнение про граммой текущей команды. Иногда ему необходимо вернуться к начальной точке и внести некоторые коррективы или же выбрать другую команду. Невозможность приостановить работу программы Существуют программы, ограничивающие время работы пользователя с определенными данными, например, время их ввода. Когда время истекает, программа изменяет свое состояние. Она может отобразить справочную информацию, принять значение по умолчанию или даже завершить свою работу. Хотя эти ограничения обычно обоснованны и полезны, бывает, что пользователь вынужден прервать работу. В этом случае у него должна быть возможность сообщить программе о необходимости сделать перерыв и через некоторое время продолжить работу с того же места. Предотвращение неприятностей В жизни случается все — и системные сбои, и ошибки пользователей. Программы должны сводить их последствия к минимуму. Отсутствие возможности резервного копирования У пользователя должна быть возможность создать резервную копию данных. Во многих случаях программа должна создавать такую копию автоматически (как только пользователь меняет данные), чтобы в случае любых проблем пользователь легко мог к ней вернуться. Отсутствие команды отмены Команда Отменить обычно используется для отмены последних изме нений или последней выполненной команды, а иногда и группы команд. Ограниченной версией этой команды является команда Отменить удаление, восстанавливающая только что удаленные данные. В определенных типах программ обе эти команды могут быть крайне необходимы. Отсутствие запросов на подтверждение команд Если данная пользователем команда удаляет достаточно большое коли чество информации, отменяет значительный объем выполненной работы или производит иные разрушительные действия, программа обязательно должна запрашивать у пользователя подтверждение его намерений. Отсутствие возможности периодического сохранения данных Если пользователь вводит большое количество данных, программа дол жна уметь сохранять их через определенные интервалы времени. Это гаран тирует, что при любом сбое большая часть введенной информации будет 4 7 6 Часть III: Управление проектами и группами сохранена. Данная функция может включаться и отключаться по желанию пользователя. Обработка ошибок пользователем Приобретая опыт работы с программой, пользователь выясняет, что часто делает ошибки определенного рода. Программа должна по возмож ности предоставлять ему инструментарий для исправления таких ошибок и встраивания собственных проверочных средств (или условий). Не предусмотрены пользовательские условия проверки вводимых данных Если пользователь сам определяет форму или таблицу для ввода дан ных, у него должна быть и возможность указать, какие данные допустимы в каждом поле. Например, ввод в определенное поле может быть ограни чен только числовыми значениями. Остальные данные программа должна игнорировать или отвергать. Сложно исправить допущенную ошибку Исправление допущенной ошибки не должно вызывать затруднений. Пользователь не должен перезапускать программу только для того, чтобы добраться до окна, в котором он вводил данные, и исправить их. Если на экране отображена форма ввода, то необходимо, чтобы пользователь мог легко вернуться к любому ее полю, если список — изменить любой его элемент, не затрагивая остальные. Не предусмотрена возможность записи комментариев У пользователя должна быть возможность вместе со сделанной работой сохранить и некоторые заметки. Такая функция необходима и в системах разработки, которыми пользуются программисты, и в обычных прикладных программах, служащих для ввода и анализа информации. Отсутствуют средства отображения связей между переменными Если программа предоставляет пользователю возможность работы с рядом связанных между собой переменных, ему необходимы средства ви зуального анализа этих связей. Разное Неадекватные средства защиты То, какая защита необходима программе и ее данным, зависит от ее назначения и требований рынка. В многопользовательских системах обыч но требуется возможность защиты данных от доступа других пользователей и даже системных администраторов. Эта защита может предусматривать Приложение: Распространенные программные ошибки 4 7 7 невозможность прочесть информацию или же просто невозможность ее изменить или удалить. Вопросы защиты подробно освещает в своей рабо те Бейзер (Beizer, 1984). Избыточная защита Средства защиты программы должны быть как можно более ненавязчи выми. Если вы работаете дома за собственным компьютером, не подклю ченным ни к какой информационной сети, программа не должна заставлять вас без конца вводить пароль. Невозможно спрятать меню Многие программы отображают на экране меню и панели инструмен тов. Как правило, все или основные команды меню и панелей доступны через определенные сочетания клавиш. Поэтому опытному пользователю удобнее убрать с экрана эти элементы, чтобы освободить место для основ ной работы (например, для ввода и редактирования текста). Отсутствие поддержки стандартных функций операционной системы Если, например, в ОС используется система каталогов, программа дол жна позволять хранить данные в любых внешних каталогах. Если в ОС определены символы подстановки (такие, как "*", заменяющий любую группу символов), программа должна их распознавать. Отсутствие поддержки длинных имен файлов Когда-то, когда памяти компьютеров едва хватало для основной рабо ты, а компиляторы были еще довольно неуклюжими, длина имен файлов ограничивалась шестью или восемью символами. Однако времена эти давно позади. Осмысленные названия файлов являются важным средством доку ментирования, и они обязательно должны поддерживаться приложениями. Негибкость программ Некоторые программы являются очень гибкими. Любой их аспект ни чего не стоит изменить. Порядок выполнения различных заданий полно стью определяется пользователем. Однако не все программы могут похвастаться такой настраиваемостью. Их разработчики не учли, что у пользователей могут быть разные вкусы и потребности. Из всего комплекса предоставляемых программой функций пользователь часто хочет отобрать определенный набор, который всегда должен быть под рукой, а остальные убрать подальше, чтобы не мешали. Впрочем, негибкость программы — не всегда недостаток. Последовательную систему с фиксированным набором возможностей легче изучить. К тому же настройка программы, функции которой зависят одна от другой, может быть делом достаточно сложным. 4 7 8 Часть III: Управление проектами и группами Настраиваемый интерфейс Программа должна предоставлять простые и удобные средства настрой ки тех элементов интерфейса, от конфигурации которых зависит удобство и эффективность работы пользователя. Невозможность отключить звук Многие программы используют в качестве сообщения об ошибке зву ковые сигналы или же "озвучивают" клавиатуру, сопровождая каждое при косновение к ней громким щелчком. В одних случаях это удобно, в других же может раздражать пользователя, а в ситуации, когда в комнате работа ет несколько человек, вообще недопустимо. Отсутствие переключателя учета регистра Если система способна различать строчные и прописные символы, эта возможность не должна быть жестко закреплена — лучше предоставить пользователю право выбора. Несовместимость с аппаратным обеспечением Программа не должна быть жестко привязана к конкретным типам аппаратного обеспечения. Если пользователь модернизирует свой компью тер, программа должна эффективно использовать его новые возможности. Игнорирование инициализации устройств, выполненной извне Если, например, программа перед печатью посылает на принтер раз и навсегда определенные управляющие коды, это ошибка проектирования. У пользователя должна быть возможность воспользоваться теми средствами настройки, которые предоставляет само устройство или операционная си стема (например, выбрать один из собственных шрифтов принтера с помо щью переключателя на его передней панели). Не предусмотрено отключение функции автоматического сохранения Некоторые программы защищают пользователя от потери информации в случае сбоя, периодически сохраняя вносимые им изменения. Эта исклю чительно полезная возможность ценна только тогда, когда ее можно по желанию отключать. Пользователь не всегда хочет сохранить данные, иног да такое сохранение может принести вред, а не пользу. Невозможность замедлить (ускорить) прокрутку текста Если на экране автоматически прокручивается текст или сменяются кадры, скорость этого процесса должна быть настраиваемой. Приложение: Распространенные программные ошибки 4 7 9 Отсутствие возможности повторить последнее действие или выяснить, каким оно было Пользователю может потребоваться возможность повторить последнюю команду, проанализировать ее или скорректировать. Невозможно выполнить только что настроенную команду Если программа позволяет пользователю выполнять настройку опреде ленных компонентов, изменения должны вступать в действие немедленно. Если же перезапуск программы совершенно необходим, следует сообщать об этом пользователю. Он не должен гадать, почему не выполняется только что настроенная команда. |