Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тестирование программного обеспечения. Фундамен...docx
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
936 Кб
Скачать
☆

Глава 12: Планирование и документация 323

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

В первых трех строках таблицы перечислены вопросы, ответы на кото­рые определяют решение программы.

• Отложена ли проблема программистом? (Если да, в поле Код резо­люции должно стоять 3.)

• Ввел ли тестировщик значение Да в поле Считать отложенным?

• Была ли резолюция наложена в июле?

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

Любую таблицу решений легко можно превратить в дерево. Многим людям даже легче представить эту информацию в виде дерева, а не в виде таблицы. На рис. 12.15 показано дерево решений, эквивалентное таблице на рис. 12.14. Если вам понадобятся дополнительные примеры таблиц и деревьев принятия решений, их приводят в своей книге Гейн и Сарсон (Gane & Sarson, 1979).

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

ЕСЛИ

Код резолюции = 3 Считать отложенным = Да Резолюция наложена в июле

ДДДДНННН Д Д Н Н Д Д Н Н Д Н Д Н Д Н Д Н

ТО

Включить в отчет за июль Включить в общий отчет

Д н Д Н Д Н Н Н

д д д д д д н н

РИСУНОК 12.14. Таблица решений

324 Часть II: Приемы и технологии тестирования

РИСУНОК 12.15. Дерево решений

Глава 12: Планирование и документация 325

Таблица клавиатурных комбинаций

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

Если пользовательский интерфейс программы не согласован, т.е., на­пример, нажатие клавиши <Р1> в разных местах программы приводит к разным результатам, таблица клавиатурных комбинаций как нельзя лучше позволит выявить все такие несоответствия. Иногда источником подобных вещей является сам проект (или его отсутствие), в других случаях это могут быть просто ошибки кодирования. Заполняя таблицу и тестируя по ней программу, вы наверняка обнаружите некоторые недокументированные аспекты ее поведения. Это могут быть наполовину реализованные идеи, от которых программист отказался, но забыл убрать из программы соответ­ствующий блок (ой, сломалось!), отладочные фрагменты кода, странные сообщения, экзотические ролики или функции, реализацию которых руко­водство отменило, но кто-то все равно их запрограммировал, никому ни­чего об этом не сказав.

Каждая строка в таблице посвящена одной клавише (А, а, Б, б, *, & и т.д.) или комбинации клавиш (<Ак+А>, <С1г1+5ЫГН-Р1> и т.п.). В табли­цу включаются и так называемые немые клавиши неанглийских раскладок.

В первом столбце таблицы перечисляются клавиатурные комбинации. Остальные столбцы связаны со всеми возможными состояниями програм­мы, ее диалоговыми окнами и формами ввода данных. Например, если нажать на клавишу <А> в форме ввода данных, программа отобразит бук­ву А в текущем поле. Поэтому в строке таблицы, соответствующей клави­ше <А> в колонке, относящейся к этой форме ввода, следует поставить букву А. Теперь предположим, что в диалоговом окне сообщения об ошиб­ке пользователь для продолжения работы должен нажать клавишу <Еп1ег>. Все другие нажатия клавиш этим окном игнорируются. В столбце, соответствую­щем этому окну, против клавиши <А> должно стоять Игнорируется.

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