Методы отладки программного обеспечения.
Отладка программы в любом случае предполагает обдумывание и логическое осмысление всей имеющейся информации об ошибке. Большинство ошибок можно обнаружить по косвенным признакам посредством тщательного анализа текстов программ и результатов тестирования без получения дополнительной информации. При этом используют различные методы:
ручного тестирования;
индукции;
дедукции;
обратного прослеживания.
Метод ручного тестирования
Это – самый простой и естественный способ данной группы. При обнаружении ошибки необходимо выполнить тестируемую программу вручную, используя тестовый набор, при работе с которым была обнаружена ошибка.
Метод очень эффективен, но не применим для больших программ, программ со сложными вычислениями и в тех случаях, когда ошибка связана с неверным представлением программиста о выполнении некоторых операций.
Данный метод часто используют как составную часть других методов отладки.
Метод индукции
Метод основан на тщательном анализе симптомов ошибки, которые могут проявляться как неверные результаты вычислений или как сообщение об ошибке. Если компьютер просто «зависает», то фрагмент проявления ошибки вычисляют, исходя из последних полученных результатов и действий пользователя. Полученную таким образом информацию организуют и тщательно изучают, просматривая соответствующий фрагмент программы. В результате этих действий выдвигают гипотезы об ошибках, каждую из которых проверяют. Если гипотеза верпа, то детализируют информацию об ошибке, иначе – выдвигают другую гипотезу. Последовательность выполнения отладки методом индукции показана на рис. 17.3 в виде схемы алгоритма.
Метод дедукции
По методу дедукции вначале формируют множество причин, которые могли бы вызвать данное проявление ошибки. Затем, анализируя причины, исключают те, которые противоречат имеющимся данным. Если все причины исключены, то следует выполнить дополнительное тестирование исследуемого фрагмента. В противном случае наиболее вероятную гипотезу пытаются доказать. Если гипотеза объясняет полученные признаки ошибки, то ошибка найдена, иначе – проверяют следующую причину
Метод обратного прослеживания
Для небольших программ эффективно применение метода обратного прослеживания. Начинают с точки вывода неправильного результата. Для этой точки строится гипотеза о значениях основных переменных, которые могли бы привести к получению имеющегося результата. Далее, исходя из этой гипотезы, делают предложения о значениях переменных в предыдущей точке. Процесс продолжают, пока не обнаружат причину ошибки.
-
Содержание
- Сущность и актуальность дисциплины «Технологии программирования», основные понятия и определения дисциплины.
- Жизненный цикл программного средства.
- Модели жизненного цикла по.
- Модель с промежуточным контролем
- Спиральная модель
- Спиральная или итерационная схема разработки программного обеспечения
- Изменение жизненного цикла программного обеспечения при использовании case-технологий.
- Качество программного обеспечения.
- Модели качества по
- Метрики качества программного обеспечения.
- Измерение и оценка качества по, стандартный метод оценки значений показателей качества.
- Управление качеством пс.
- Требования стандарта к организации системы качества
- Диалоговые программы, типы диалога, формы диалога.
- Спецификация пс.
- Определение требований к программному средству.
- Спецификация качества программного средства.
- Функциональная спецификация программного средства.
- Методы контроля внешнего описания программного средства.
- Способы записи алгоритмов.
- Представление основных структур алгоритмов.
- Псевдокоды.
- Flow-формы.
- Диаграммы Насси-Шнейдермана.
- Классификация структур данных.
- Файловые структуры, физическая организация файлов.
- Логическая организация файлов.
- Документирование файлов.
- Модульные программы, модули и их свойства.
- Сцепление и связность модулей.
- Нисходящая и восходящая разработка программного обеспечения.
- Программирование «с защитой от ошибок».
- Основные подходы программирования, «стихийное» программирование.
- Основные подходы программирования, структурный подход к программированию.
- Основные подходы программирования, объектный подход к программированию.
- Основные подходы программирования, компонентный подход и case-технологии.
- 36. Процедурное (императивное) программирование
- 37.Функциональное программирование.
- 38. Декларативное программирование
- 39. Объектно-ориентированное программирование
- 40.Объектно-ориентированные языки программирования.
- 41. Спецификация программного обеспечения при структурном подходе.
- 42.Диаграммы переходов состояний.
- 43. Функциональные диаграммы
- 44. Диаграмма потоков данных
- 45. Моделирование управляющих процессов с помощью диаграмм потоков данных
- 46. Структуры данных и диаграммы отношений компонентов данных
- 47. Диаграммы Джексона.
- 48. Скобочные диаграммы Орра
- 49. Сетевая модель данных
- 50. Проектирование программного обеспечения при структурном подходе
- 54. Метод пошаговой детализации для проектирования структуры по
- 55. Структурные карты Констайна.
- 56. Проектирование структур данных
- 57. Представление данных в оперативной памят
- 60. Проектирование программного обеспечения, основанное на декомпозиции данных Методикой Варнье-Орра
- 61. Case-технологии, основанные на структурных методологиях анализа и проектирования
- 63. Определение «вариантов использования»
- 64. Диаграммы вариантов использования
- 65. Построение концептуальной модели предметной области
- 69. Проектирование программного обеспечения при объектном подходе
- 70. Разработка структуры программного обеспечения при объектном подходе
- Определение отношений между объектами.
- Диаграммы последовательностей этапа проектирования.
- Диаграммы кооперации.
- Уточнение отношений классов.
- Интерфейсы в uml.
- Проектирование классов.
- Проектирование методов класса.
- Компоновка программных компонентов.
- Проектирование размещения программных компонентов для распределенных программных систем.
- Методы доказательства правильности программ.
- Метод индуктивных утверждений Флойда.
- Метод Хора доказательства правильности программ.
- Виды контроля качества разрабатываемого программного обеспечения.
- Формирование тестовых наборов, основные подходы.
- Ручной контроль программного обеспечения, методы ручного контроля.
- I. Контроль обращений к данным
- 2. Контроль вычислений
- 3. Контроль передачи управления
- 4. Контроль межмодульных интерфейсов
- Структурное тестирование, критерии формирования тестовых наборов.
- Функциональное тестирование, методы формирования тестовых наборов.
- Тестирование модулей и комплексное тестирование.
- Оценочное тестирование.
- Отладка программного обеспечения.
- Классификация ошибок программного обеспечения.
- Методы отладки программного обеспечения.
- Методы и средства получения дополнительной информации об ошибках.
- Общая методика отладки программного обеспечения.
- Документирование и стандартизация.
- Виды программных документов.
- Основные правила оформления программной документации.
- Основные инженерные подходы к созданию программ.
- Классификация технологических подходов к созданию программ.
- Классификация технологических подходов к созданию программ, подходы со слабой формализацией.
- Классификация технологических подходов к созданию программ, строгие каскадные подходы.
- Классификация технологических подходов к созданию программ, строгие каркасные подходы.
- Классификация технологических подходов к созданию программ, генетические подходы.
- Классификация технологических подходов к созданию программ, подходы на основе формальных преобразований.
- Классификация технологических подходов к созданию программ, ранние подходы быстрой разработки.
- Классификация технологических подходов к созданию программ, адаптивные технологические подходы.
- Классификация технологических подходов к созданию программ, подходы исследовательского программирования.
- Особенности и компоненты case-средств.
- Объектно-ориентированные case-средства анализа и проектирования.
- Структурные case-средства анализа и проектирования.
- Case-средства компании ibm Rational Software, средство визуального моделирования Rational Rose.
- Системы автоматизированного проектирования и их место среди других автоматизированных систем.
- Структура сапр.
- Разновидности сапр.
- Понятие о cals-технологиях.