233
Очевидно, что не существует другого пути выяснить, удовлетворяет ли за-
казчика конечный продукт, как только продемонстрировать его в работе на не-
котором конечном (но "представительном") наборе тестовых вариантов.
Облегчающим обстоятельством в этой ситуации является многоуровневость
или расслоенность SYNTAX-технологии. В самом деле, любое SYNTAX-
приложение представляет собой некоторую композицию конечных и
сплайновых процессоров, на нижнем уровне которой используется типовой
транслитератор. Поэтому тестирование такого приложения распадается на
тестирование его компонент (транслитераторов, конечных и сплайновых
процессоров) и тестирование межкомпонентных связей.
Взаимодействие транслитератора и сканера. Настройка встроенного
транслитератора на реализацию желаемой микролексики производится посред-
ством генерации микролексических классов, специфицируемых в разделе опи-
сания микролексики. Основным источником ошибок спецификации на этом
уровне могло бы быть рассогласование имен микролексических классов, ис-
пользуемых в спецификации микролексики, и обозначений терминалов управ-
ляющей грамматики, описывающей трансляцию, реализуемую сканером. Од-
нако проверка согласованного определения микролексики в разделе
MICROLEXICS и ее использования в разделе SYNTAX, встроенная в техноло-
гический комплекс, исключает такую неприятность. Поэтому на данном
технологическом участке тестирование не требуется.
Взаимодействие сканера и анализатора. Подобная же опасность сущест-
вует при взаимодействии анализатора со сканером, в роли которого использу-
ется не транслитератор, а другой процессор. Здесь контроль за согласованным
определением лексики и ее использованием со стороны технологического ком-
плекса SYNTAX не столь жесткий, поскольку формирование лексем выполняя-
ется семантиками процессора-сканера. При программировании этих семантик
необходимо следить за тем, чтобы были согласованы номера лексических клас-
сов, формируемые этими семантиками, и номера соответствующих лексиче-
ских входов в управляющую таблицу процессора-анализатора. Внешние имена
терминалов в грамматике, специфицирующей сканер, и в грамматике, специи-
фицирующей анализатор, могут быть совершенно различными, лишь бы их
нумерация была согласована, хотя такая разноголосица при проектировании
увеличивает риск появления ошибки. При программировании семантик сканера
рекомендуется заглядывать в словарь лексики анализатора, доступный по ко-
манде Preparation / ShowLexics в подсистеме процессирования, которая выдает
занумерованный список лексических классов, в терминах которых написаны
правила грамматики анализатора. Именно эти номера и должны включаться в
поля LC выходных лексем сканера. Очевидно, что на этом участке SYNTAX-
технологии тестирование было бы полезно. Оно может быть организовано пу-
тем систематической генерации тестовых вариантов по грамматике сканера
(конечного процессора). Очевидно, что эта генерация воспроизводит полно-
стью словарь основных символов языка, дополнив его "представительными"
образцами литералов, идентификаторов и т.п. лексических единиц.