ТРПО - Лекция 7 (тестирование и отладка).ppt
- Количество слайдов: 26
Тестирование и отладка Михайлова Елена Евгеньевна
Отладка -- процесс локализации и исправления ошибки
Ошибки (1) § из истории ошибок § ошибки в описании задачи § ошибки в выборе алгоритма § ошибки анализа § отсутствие задания начальных значений переменных – неопределенные переменные (способы обработки ОС неопр. переменных) § неверные условия окончания цикла § неправильное указание ветви алгоритма
Ошибки (2) § общего характера § синтаксические ошибки § логические § времени выполнения § неверные данные
Проверять необходимо § тип данных Контроль буквенных полей на отсутствие в них цифр. Контроль цифровых полей на отсутствие в них буквенных данных § область значений переменных Например, проверка параметров функции нахождения наибольшего общего делителя на положительность § длину элементов информации (если она задана) Например, код почтового индекса
Тестирование -- процесс выполнения программы на заранее подготовленном наборе тестов с целью обнаружения ошибок
Каждый тест определяет § свой набор исходных данных и условий для запуска программы § набор ожидаемых результатов работы программы
Тестовый вариант -- другое название теста. Хорошим называют тестовый вариант с высокой вероятностью еще не раскрытой ошибки. Успешным называют тест, который обнаружил до сих пор не раскрытую ошибку.
Два принципа тестирования программы § функциональное тестирование – тестирование «черного ящика» § структурное тестирование – тестирование «белого ящика»
Тестирование «черного ящика» Входы программы X Z Y Выходы программы При таком тестировании игнорируется внутренняя логическая структура программы. Исчерпывающее тестирование, как правило, невозможно.
Тестирование «белого ящика» Входы Выходы программы программы Проверяется корректность построения всех элементов программы и правильность их взаимодействия друг с другом. Исчерпывающее тестирование также затруднительно.
Живучесть программы Robustness – робастность; устойчивость (к нежелательным, но возможным воздействиям); выносливость; живучесть
Живучая программа -- это такая программа, которая продолжает сохранять свою работоспособность, несмотря на w рассеянность операторов подготовки данных w небрежность персонала, ответственного за контроль информации w безграмотные действия операторов ЭВМ
Тесты готовятся на этапе проектирования пример: решение квадратного уравнения
Типы тестовых данных § создаваемые программистом § реальные модифицированные § реальные в полном объеме
Тесты § «нормальные» данные § граничные данные и структуры данных – воспринимаются программой как правильные данные § неправильные данные (защита от дурака)
Этапы тестирования § Проверка в нормальных условиях § Проверка в экстремальных условиях § Проверка в исключительных ситуациях
Тестирование ветвей if (x+y+z)/3=y then writeln(‘числа равны’) else writeln(‘числа не равны’)
Тестирование циклов Типы циклов • Простые циклы • Объединенные циклы • Вложенные циклы • Неструктурированные циклы
Простые циклы Для проверки простых циклов с количеством повторений n может использоваться один из следующих наборов тестов: • прогон всего цикла • только один проход цикла • два прохода цикла • m проходов цикла, где m
Вложенные циклы Вложенный цикл Объемлющий цикл
Тестирование вложенных циклов 1 2 3 шаги тестирования
Шаги тестирования • Выбирается самый внутренний цикл. Для всех остальных циклов устанавливаются минимальные значения параметров. • Для внутреннего цикла проводятся тесты простого цикла – • нормальные условия • экстремальные условия • исключительные ситуации • Переходят в следующий по порядку объемлющий цикл. Выполняют его тестирование. При этом сохраняются минимальные значения для всех внешних циклов и типовые значения для вложенных циклов. • Работа продолжается до тех пор, пока не будут протестированы все циклы.
Объединенные циклы Если каждый из циклов независим от других, то используется техника тестирования простых циклов. При наличии зависимости (например, конечное значение счетчика первого цикла используется как начальное значение счетчика второго цикла) используется методика для вложенных циклов.
Неструктурированные циклы Неструктурированные циклы тестированию не подлежат. Этот тип циклов должен быть переделан с помощью структурированных программных конструкций.
Методы тестирования § сверху вниз § снизу вверх § метод расширяющегося ядра