6.2. Принципы и виды отладки пс
Успех отладки предопределяет рациональная организация тестирования. При отладке ПС отыскиваются и устраняются те ошибки, наличие которых установлено посредством тестирования. Тестирование не доказывает правильность средства, оно демонстрирует наличие в нем ошибки. Нельзя гарантировать, что в результате тестирования ПС на ограниченном наборе тестов, будут установлены все ошибки. В связи с этим возникают две задачи. Первая – подготовить такой набор тестов, чтобы обнаружить по возможности большее число ошибок. Однако чем дольше продолжается процесс тестирования (и отладки в целом), тем больше стоимость ПС. Отсюда вторая задача: определить момент окончания отладки ПС или отдельной его компоненты. Признаком окончания отладки является полнота охвата тестами ситуаций, возникающих при выполнении программ, и относительно редкое проявление ошибок на конечном отрезке тестирования. Последнее определяется согласно требуемой степени надежности ПС.
Д ля подготовки оптимального набора тестов необходимо заранее его планировать и использовать рациональную стратегию его проектирования. Проектирование тестов начинается сразу после завершения этапа внешнего описания ПС. Возможны разные подходы к выработке стратегий проектирования, которые размещаются между двумя крайними подходами (рис. 14). Левый крайний подход заключается в том, что тесты проектируются только на основе изучения спецификаций средства (внешнего описания, описания архитектуры и спецификаций модулей). Строение модулей не учитывается, они рассматриваются как черные ящики. Такой подход требует полного перебора всех наборов входных данных, так как в противном случае некоторые участки программ могут оказаться не задействованными при пропуске неполного набора тестов, вследствие чего содержащиеся в них ошибки не будут обнаружены. Однако тестирование программного средства полным множеством наборов входных данных практически неосуществимо. Правый крайний подход заключается в том, что тесты проектируются на основе изучения текстов программ с целью тестирования путей их выполнения. Если принять во внимание наличие в программах циклов с переменным числом повторений, то различных путей выполнения программ может оказаться чрезвычайно много, так что их полное тестирование также будет практически неосуществимо.
Рациональная стратегия проектирования тестов располагается между этими крайними подходами, но ближе к ее левому краю. Она включает проектирование значительной части тестов по спецификациям, а остальной - по текстам программ. При этом стратегия проектирования по спецификациям базируется на принципах: 1) на каждую используемую функцию или возможность хотя бы один тест, 2) на каждую область и на каждую границу изменения какой-либо входной величины хотя бы один тест, 3) на каждую особую ситуацию, указанную в спецификациях, хотя бы один тест.
В то время как стратегия проектирования по текстам программ базируется на принципе: каждая команда каждой программы должна проработать хотя бы на одном тесте.
Рациональную стратегию проектирования тестов можно конкретизировать на основании следующего принципа: для каждого программного документа, включая тексты программ, должны проектироваться свои тесты с целью выявления в нем ошибок.
Различают два основных вида отладки ПС: автономную и комплексную. Автономная отладка означает последовательное раздельное тестирование различных частей программ, с поиском и исправлением фиксируемых ошибок. Фактически отладка включает раздельную отладку программных модулей и их сопряжений. Комплексная отладка означает тестирование ПС в целом с поиском и исправлением фиксируемых при тестировании ошибок во всех документах, включая тексты программ. К таким документам относятся: определение требований к ПС, его спецификация качества, функциональная спецификация, описание архитектуры и тексты программ.
- Введение в программирование и основы алгоритмизации
- 1.2. Понятие "правильной" программы
- 1.3. Надежность программного средства
- 1.4. Технология программирования как разработка надежных пс
- 1.5. Информатизация общества
- Тема 2 источники ошибок в программных средствах
- 2.1. Интеллектуальные возможности человека
- 2.2. Неправильный перевод как причина ошибок в пс
- 2.3. Модель перевода
- На каждом из этих шагов человек может совершить ошибку разной природы.
- 2.4. Основные пути борьбы с ошибками
- Тема 3 общие принципы разработки программных средств
- 3.1. Специфика разработки пс
- 3.2. Жизненный цикл пс
- 3.3. Понятие качества пс
- 3.4. Внешнего описания и его роль в обеспечении качества пс
- 3.5. Обеспечение надежности – основной мотив разработки пс
- 3.5. Борьба со сложностью систем и обеспечение точности перевода
- Тема 4 разработка структуры программы. Модульное и объектно-ориентированное программирование
- 4.1. Цель модульного программирования
- 4.2. Основные характеристики программного модуля
- 4.3. Методы разработки структуры программы
- 4.4. Объектно-ориентированное программирование
- 4.5. События и событийная модель
- Тема 5 Алгоритмизация и разработка программного модуля
- 5.1. Определение алгоритма
- Алгоритмизация - техника составления алгоритмов и программ для решения задач на эвм.
- 5.2. Изобразительные средства описания алгоритмов
- 5.3. Блок-схемы алгоритмов. Графические символы
- 5.4. Порядок разработки программного модуля
- 5.5. Структурное программирование
- 5.6. Пошаговая детализация и понятие о псевдокоде
- Тема 6 тестирование и отладка программного средства
- 6.1. Основные понятия
- 6.2. Принципы и виды отладки пс
- 6.3. Заповеди отладки пс
- 6.4. Автономная отладка пс
- Тема 7 Методы разработки алгоритмов
- 7.1. Метод частных целей
- 7.2. Метод подъема
- 7.3. Программирование с отходом назад
- Тема 8 Алгоритмы сортировки
- 8.1. Сортировка. Основные понятия
- 8.2. Пузырьковая сортировка
- 8.3. Сортировка с помощью дерева
- 8.4. Пирамидальная сортировка
- 8.5. Быстрая сортировка
- Тема 9 Алгоритмы поиска и перебора
- 9.1. Поиск. Основные понятия
- 9.2. Бинарный поиск
- 9.3. Поиск в сети
- Тема 10 Событийно-управляемое программирование на языке Visual Basic
- 10.1. Историческая справка
- 10.2. Основы Visual Basic
- Среда Windows: окна, события, сообщения
- Интерактивная разработка
- Интегрированная среда разработки
- 10.3. Формы и элементы управления
- Разработка и установка свойств формы
- События и методы формы
- Кнопки управления как основа выполнения действий
- 10.4. Элементы управления пользователя
- Флажки и переключатели
- Другие стандартные элементы управления
- 10.5. Фокус. Последовательность переходов. Меню Фокус
- Основы меню
- Контекстные меню
- Редактор меню
- Подсказки пользователю с помощью диалога
- Тема 11 Управление проектами
- 11.1. Работа с проектом и его структура
- 11.2. Работа с несколькими проектами
- 11.4. Установка параметров проекта
- 11.5. Дополнения и мастера
- Тема 12 Управляющие конструкции
- 12.1. Конструкции принятия решения (ветвление)
- 12.2. Циклы
- 12.3. Работа со структурами управления и досрочный выход из них
- Тема 13 Структура приложения. Техника написания кода
- 13.1. Структура приложения
- 13.2. Как работает событийное приложение
- 13.3. До начала кодирования
- 13.4. Техника написания кода
- 13.5. Автоматизация написания программы