Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
otvety_prikl.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
900 Кб
Скачать
☆

5.5. Методы тестирования

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

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

Чтобы построить разумную стратегию тестирования надо ра­зумно сочетать оба этих подхода и пользоваться математическими доказательствами.

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

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

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

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

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

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

5.6. Аксиомы тестирования

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

  1. хорошим считается тот тест, в котором высока вероятность обнаружения ошибок;

  2. тестирование собственной программы существенно ослож­няется психологическими причинами;

  3. необходимой частью тестов считается описание выходных результатов;

  4. нужно готовить тесты как для правильных, так, и для непра­вильных данных; ,

  1. нельзя тестировать «с лету», наскоком;

  2. необходимо тщательно изучать результаты каждого теста;

  1. по мере обнаружения все большего числа ошибок в про­грамме, возрастает вероятность обнаружения в ней еще большего числа ошибок;

  2. тестирование программ должны осуществлять самые лучшие и опытные программисты;

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

  1. нельзя изменять программу только с целью облегчить про­цесс ее тестирования;

  2. чем раньше спроектирован тест, тем выше вероятность вы­явления ошибок. Лучше всего готовить тесты еще на этапе проек­тирования системы;

  3. процесс тестирования должен быть документирован и пол­ностью управляем, хаотичность недопустима;

  4. необходимы повторяемость и завершенность тестов;

  5. следует избегать добавления новых тестов уже в процессе тестирования.

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