Тестирование

Точки останова программы

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

Вопросы:

3. Для чего используют точки останова?

4. Раскрыть понятие трассировка программы.

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

Правила тестирования:

- должна быть испытана каждая "ветвь" программы;

- очередной тест должен контролировать то, что еще не было проверено на предыдущих тестах;

- первый тест должен быть максимально прост;

- возникающие затруднения следует четко разделять и устранять строго поочередно;

- количество проходов цикла должно быть временно уменьшено для сокращения объема вычислений;

- тесты должны быть целенаправленными и систематизированными;

- усложнение тестовых данных должно быть постепенное.

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

1. Проверка нормальных условий. Тестирование на основе данных, характерных для реальных условий функционирования программы.

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

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

Таким образом, тестирование устанавливает факт наличия ошибки. Отладка объясняет его причину.

Ошибки, которые могут быть допущены человеком при написании программы можно разделить на три вида: (1) синтаксические ошибки - вызов команды, не входящей в систему команд конкретного языка программирования, обычно их обнаруживает компилятор или интерпретатор данного языка программирования; (2) семантические ошибки - вызов команды в ситуации, когда эта команда не может быть исполнена, эти ошибки приводят к отказу компилятора или интерпретатора работать; (3) логические ошибки - ЭВМ выполнила программу, но цель, поставленная человеком, не достигнута. Эти ошибки не фиксируются ни ЭВМ, ни компилятором или интерпретатором, важно понимать, что "безотказное" выполнение программы еще не означает его правильность.

Контроль правильности написанной программы состоит, как правило, из трех этапов:

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

2. Проверка. При проверке программы необходимо постараться мысленно восстановить вычислительный процесс, определяемый программой, и сравнить его с требуемым процессом.

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

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

Вопросы:

1. Для чего используется тестирование?

2. какие виды тестирования бывают?