(выбрать метод и выполнить тестирование)
Эти методы основываются на анализе кода и документации программы.
Проверка за столом
Этот метод наиболее традиционен, но при этом совершенно необходим, хотя такая проверка не вызывает восторга и ее иногда стараются избежать.
Термин «проверка за столом» характеризует неавтоматизированную деятельность, к которой наиболее часто относят:
- анализ текста программы на наличие ошибок;
- выполнение программы вручную («сухую прокрутку»).
Коллективная проверка (контроль программы, сквозной просмотр)
Это процесс, при котором бригада программистов тщательно просматривает программу или ее часть в порядке инспекции. Программа проверяется с разных точек зрения с целью поиска ошибок, ускользнувших при менее широком подходе.
Коллективную проверку лучше проводить после исключения синтаксических ошибок программы и, возможно, после предварительного тестирования. Предпочтительно, чтобы коллектив проверяющих включал трех-четырех разработчиков (не руководство!), заинтересованных в качестве разрабатываемой программы (например, проверяющие разрабатывали бы программу, взаимодействующую с проверяемой).
|
|
Последовательность действий по проверке вырабатывается самими участниками.
Структурный анализ
Это автоматизированный анализ текста программы с помощью специальных программ – структурных анализаторов. Примеры обнаруживаемых с их помощью ошибок:
- переменные не описаны или описаны неправильно;
(привести свои примеры)
- переменные используются прежде, чем им было присвоено значение, или присвоенное значение никогда не используется;
- используются недопустимые языковые формы;
- неправильное вложение конструкций;
- несоответствие формального и фактического параметров процедур;
- невыполнимые условия; потенциально бесконечные циклы и др.
Как самостоятельное средство поиска ошибок такого рода программы широкого распространения не получили, однако большинство перечисленных функций включено в современные компиляторы.
Доказательство корректности (верификация)
Это процесс, имеющий целью показать с помощью математического аппарата соответствие проекта и программы предъявляемым к ним требованиям. Программа разбивается на логические сегменты, определяются входные и выходные утверждения для каждого сегмента и доказывается, что если все входные утверждения при работе программы истинны, то и все выходные утверждения также будут истинны. Входное утверждение описывает характеристики входных данных сегмента, а выходное утверждение – характеристики результатов.
Аппарат и процедуры верификации подробно описаны, например, в ранее упоминавшейся книге Р. Лингера и др.
Реально метод может быть применен только для доказательства правильности небольших структурированных программ и представляет скорее теоретический интерес.
1.6
1.7