Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lec_saod2014.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
604.16 Кб
Скачать

Заключение

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

  1. Постановка задачи понимается неправильно. Порой это выясняется только при сдаче учебной программы. Часто студентами предъявляются претензии о некорректной или недостаточно полной формулировке задачи. Следует иметь в виду, что реальные задания на создание программного обеспечения как правило неполны, неточны и противоречивы. Достаточная ясность возможна только при тесном контакте с заказчиком. При обучении в роли такого заказчика выступает преподаватель.

  2. Алгоритмическая проработка задачи проводится поверхностно. В результате при тестировании выявляются принципиальные ошибки.

  3. Отсутствует проектирование структуры программы. В итоге с трудом просматривается логическая схема программы, неоправданно употребляются операторы безусловной передачи управления (goto), встречаются дублирующие друг друга фрагменты текста, затруднены тестирование и модификация программы.

  4. Текст программы сложен для восприятия и проверки. Для повышения “удобочитаемости” программы рекомендуется [7,8]:

    • применять осмысленные имена переменных;

    • резко ограничивать использование одних и тех же идентификаторов для различных целей;

    • вставлять подробные комментарии, поясняющие назначение и функционирование программных фрагментов;

    • применять отступы в тексте программы, выделяющие группы операторов и показывающие вложенность программных единиц.

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

Более точное определение: “Тестирование – это процесс выполнения программы с целью нахождения ошибок” [7, 8]. Следуя данному определению, цель тестирования – заставить программу сбиться, “сломать” программу.

Обычно тестирование и отладка требуют большей трудоемкости, чем разработка программы. Рекомендуется придерживаться следующих правил тестирования [7, 8].

  1. Выбор теста должен преследовать цель обнаружения ошибки, а не демонстрации правильности работы программы.

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

  3. Необходимая часть всякого теста – описание ожидаемых результатов. Желательно прогнозировать результаты до выполнения теста.

  4. Тесты должны охватывать как правильные, так и неправильные данные.

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]