Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
TRPP_gotovoe.doc
Скачиваний:
4
Добавлен:
11.11.2019
Размер:
769.02 Кб
Скачать

Восходящее тестирование, нисходящее тестирование.

Одним из наиболее объективных методов оценки качества программ является её испытание.

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

Так же путем испытания могут быть получены точные оценки таких параметров как:

  • среднее время решения задачи;

  • максимальный объем необходимый оперативной памяти;

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

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

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

Испытание программы тестами – тестирование – начинается уже в процессе её отладки.

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

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

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

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

Этап тестирования включает три основных элемента:

  1. генерация тестовых примеров контроль процесса тестирования;

  2. анализ выходных и промежуточных результатов программы;

  3. учет вклада каждого тестового примера в процесс тестирования.

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

Третий элемент определяется критерием полноты тестирования, который тесно связан с конкретным способом тестирования.

Тестирование ведется на четырех уровнях:

  1. уровень отдельного программного компонента (модуля);

  2. уровень сопряжений, на котором ищутся ошибки межкомпонентного интерфейса;

  3. уровень внешних функций, на котором ищутся расхождения программных функций и внешних спецификаций программ;

  4. комплексное тестирование, испытание программного комплекса на соответствие исходным целям.

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

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

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

Основные недостатки:

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

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

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

Как же тестировать комплексы, в то время как входящие в них компоненты ещё не проверены и возможно ещё не написаны? Для имитации функций ещё не созданных модулей используются заглушки, которые имитируют работу отсутствующего модуля.

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

Преимущества:

  1. Метод позволяет совместить тестирование модуля, тестирование сопряжений и тестирование входящих функций.

  2. Равномерное распределение работы по тестированию в течение всего периода создания комплекса – это позволяет выявить ошибки в головном модуле на ранней стадии разработки.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]