Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Отладка и тестирование многомодульной программы






Сказанное в предыдущем подразделе относится к тестированию простой одномодульной программы или отдельного модуля. Но отладка и тестирование многомодуль­ной программы гораздо сложнее. Для этого нужна автономная отладка (и тестирование) модулей, проверка их сопряжения, интеграция их в программу и комплексная проверка программы. Все это можно делать разными методами.

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

При монолитном методе (" метод большого скачка") каждый модуль вначале прохо­дит автономную отладку и тестирование изолированно от других модулей. Для авто­номного тестирования каждого модуля нужен драйвер, который обеспечивает модуль входными данными и обрабатывает выходные.

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

Только после того, как все модули прошли автономную отладку, они собира­ются в программу, которая дальше отлаживается целиком (отсюда определения " монолитный" и " большой скачок").

В методах пошаговой отладки модули тестируются не изолированно, а постепенно добавляются к набору уже проверенных. Отладку можно начинать снизу или сверху.

Восходящая отладка (" снизу вверх") начинается с терминальных модулей, т.е. не вызывающих другие модули. Для проверки нетерминальных модулей используются уже отлаженные. Для каждого модуля, кроме всей программы, нужен драйвер; за­глушки не нужны.

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

Рассмотрим некоторые показатели, связанные с отладкой и тестированием. Наи­более важны следующие.

§ Чем скорее появляется работающий вариант программы, тем раньше выявляются возможные ошибки проектирования и тем дешевле обойдется их исправление.

§ Чем раньше модули начинают собираться вместе, тем быстрее находятся ошиб­ки в межмодульных сопряжениях (в основном, несоответствия между аргумен­тами в вызовах и параметрами).

§ Возможность проверить любой путь вычислений в модуле (тестируя его как " белый ящик") значительно повышает качество тестирования.

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

При монолитной отладке работающий вариант программы появляется только при сборке всех модулей после их автономного тестирования, т.е. поздно. Однако авто­номное тестирование позволяет проверить любой путь вычислений в модулях. Здесь нужны и драйверы, и заглушки. При коллективной работе автономная отладка прово­дится с высокой степенью параллелизма и легко управляется. Таким образом, данный метод имеет больше недостатков, чем достоинств.

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

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

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

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






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.