Статические методы устранения ошибок

(выбрать метод и выполнить тестирование)

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

Проверка за столом

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

Термин «проверка за столом» характеризует неавтоматизированную деятельность, к которой наиболее часто относят:

- анализ текста программы на наличие ошибок;

- выполнение программы вручную («сухую прокрутку»).

Коллективная проверка (контроль программы, сквозной просмотр)

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

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

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

Структурный анализ

Это автоматизированный анализ текста программы с помощью специальных программ – структурных анализаторов. Примеры обнаруживаемых с их помощью ошибок:

- переменные не описаны или описаны неправильно;

(привести свои примеры)

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

- используются недопустимые языковые формы;

- неправильное вложение конструкций;

- несоответствие формального и фактического параметров процедур;

- невыполнимые условия; потенциально бесконечные циклы и др.

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

Доказательство корректности (верификация)

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

Аппарат и процедуры верификации подробно описаны, например, в ранее упоминавшейся книге Р. Лингера и др.

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

1.6

1.7


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: