Студопедия — Билет №38
Студопедия Главная Случайная страница Обратная связь

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

Билет №38






Характеристика восходящего и нисходящего способов отладки.

Тест - совокупность специально подобранных входных данных и соответствующих им выходных данных, используемых для контроля правильности работы программы.

Тестовые результаты лучше получать путем, отличным от реализованного в программе.

Тестирование - испытание программы на множестве тестовых ситуаций с целью обнаружения ошибок.

Подготовка тестирования включает два шага:

- проектирование тестов;

- подготовка программы для тестирования (вставка дополнительных печатей, специальных операторов и т.д.).

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

Содержание теста определяется спецификацией задачи и логикой ее решения. Поэтому разработка тестов должна предшествовать этапу кодирования алгоритма и осуществляться параллельно с проектированием алгоритма.

Иначе говоря, разработка тестов является предусмотренным заранее и запланированным этапом. К моменту завершения проекта на языке проектирования (псевдокод) наборы тестовых данных также должны быть спроектированы. Эти наборы являются одновременно обязательным элементом документации программного продукта.

Способы тестирования:

В основе различных методов тестирования лежат два способа: восходящее и нисходящее тестирование.

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

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

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

- сообщение о том, что она вызвана;

- полученные входные данные;

- выдаваемые выходные данные.

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

Процесс тестирования так же, как и процесс проектирования, продолжается до тех пор, пока не будут раскрыты все абстракции (устранены все заглушки).

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

При проведении тестирования рекомендуется выполнять следующие общие правила.

1. В первую очередь лучше тестировать сегменты, осуществляющие ввод и вывод данных.

2. Рекомендуется одновременно раскрывать те абстракции, которые целесообразно тестировать совместно: ввод-вывод, обработка-вывод, ввод-обработка-вывод и др. В то же время раскрывать такую пару, как ввод-обработка, нецелесообразно, так как потребуются дополнительные инструкции вывода только для целей отладки.

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

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

_____________________________________________________________________________________







Дата добавления: 2015-03-11; просмотров: 459. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Философские школы эпохи эллинизма (неоплатонизм, эпикуреизм, стоицизм, скептицизм). Эпоха эллинизма со времени походов Александра Македонского, в результате которых была образована гигантская империя от Индии на востоке до Греции и Македонии на западе...

Демографияда "Демографиялық жарылыс" дегеніміз не? Демография (грекше демос — халық) — халықтың құрылымын...

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

Менадиона натрия бисульфит (Викасол) Групповая принадлежность •Синтетический аналог витамина K, жирорастворимый, коагулянт...

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

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

Studopedia.info - Студопедия - 2014-2024 год . (0.006 сек.) русская версия | украинская версия