Отладка программы

Ввод программы в компьютер.

Запись алгоритма на выбранном языке программирования

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

Порядок записи программы определяется выбранным языком программирования и алгоритмом решения задачи.

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

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

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

Эти ошибки выявляются и устраняются при компиляции программы.

Во-вторых, необходимо устранить семантические (смысловые) ошибки, которые не обнаруживаются компилятором (например, необходимо записать А+В, а указано А – В).

После устранения синтаксических ошибок машина начинает решать по данной программе. При этом часто происходят следующие ситуации:

1) самый лучший вариант: машина выдает некоторые результаты, которые, как говорят, “не лезут ни в какие ворота”;

2) средний вариант: машина останавливается по аварийной ситуации (переполнение разрядной сетки или деление на нуль);

3) худший вариант: программа зацикливается и машина вообще не выдает никакой информации;

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

Основным инструментом отладки являются:

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

o Тестирование программы как "черного ящика" (стратегия "черного ящика" определяет тестирование с анализом входных данных и результатов работы программы). Критерием исчерпывающего входного тестирования является использование всех возможных наборов входных данных.

o Тестирование программы как "белого ящика" заключается в стратегии управления логикой программы, позволяет использовать ее внутреннюю структуру. Критерием выступает тестирование всех маршрутов и управляющих структур программ.

Разумная и реальная стратегия тестирования - сочетание моделей "черного" и "белого ящиков".
Основными принципами тестирования являются:

o описание предполагаемых значений выходных данных или результатов должно быть необходимой частью тестового набора;

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

o необходимо проверять не только делает ли программа то, для чего она предназначена, но и не делает ли она то, что не должна делать; нельзя планировать тестирование в предположении, что ошибки не будут обнаружены

o вероятность наличия необнаруженных ошибок в части программы пропорциональна числу ошибок, уже обнаруженных в этой части;

o тестирование - процесс творческий.

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

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