- •Понятие формального языка. Описание синтаксиса языка.
- •Понятия тестирования и отладки. Принципы тестирования.
- •Полнота тестирования. Критерии черного ящика.
- •Критерии белого ящика.
- •Мгт. Ошибкоопасные ситуации при работе с файлами.
- •Ошибкоопасные ситуации при обращении к данным.
- •Ошибкоопасные ситуации при вычислениях.
- •Ошибкоопасные ситуации при передаче управления и вызовах подпрограмм.
- •Безмашинное тестирование.
- •Оценка количества ошибок в программе.
- •Мера доверия к миллсовой модели оценки количества ошибок в программе. Оценка количества необходимых тестов.
- •Отладка. Отладочные операторы.
- •Методы поиска ошибки. Принципы отладки. Анализ обнаруженной ошибки.
- •Отладочные средства авс-Паскаля.
- •Нисходящее программирование. Нисходящее тестирование.
- •Стиль программирования
- •Понятие алгоритма. Свойства алгоритма.
- •Операторы Паскаля
- •Замкнутые подпрограммы.
- •Открытые подпрограммы.
- •Передача параметров.
- •Рекурсия.
- •Рекуррентные вычисления. Вычисления рекурсивные и итеративные. Реализация одного и того же алгоритма рекурсивно и итеративно.
- •Блочная структура.
- •Понятие типа данных. Классификация языков по типизации.
- •Классификация типов данных. Числовые типы.
- •Перечисления. Диапазоны.
- •Массивы.
- •Моделирование массивом последовательностей: стек.
- •Моделирование массивом последовательностей: очереди
- •Моделирование массивом последовательностей: деки
- •Записи. Присоединяющий оператор.
- •Файлы. Виды файлов. Методы доступа. Триада для работы с файлом.
- •Синхронизация. Буферизация. Блокирование.
- •Двоичные файлы в авс-Паскале.
- •Строки Тип string в авс Паскале.
- •Множества.
- •Процедурные типы.
- •1 ) Описание процедурной константы в Паскале:
- •2 ) Не в Паскале:
- •Типовая безопасность. Идентичность типов.
- •Абстракция данных. Модули в Турбо-Паскале и в авс-Паскале.
- •Подходы к созданию универсального языка программирования
- •Запись с вариантами
- •Классы памяти
- •Понятие конечного автомата и мп-автомата
- •Понятие Машины Тьюринга, нормальных алгоритмов Маркова
Мгт. Ошибкоопасные ситуации при работе с файлами.
Минимально грубое тестирование
МГТ представляет собой критерий покрытия решений/условий, усиленный дополнительными требованиями по проверке циклов
Преимущество – строится в виде таблицы - контроль степени выполнения критерия и тесты для проверки именно нужных частей программы
Для каждого условного оператора создаются 2 строки - для ветви «то» и ветви «иначе», если в условном операторе стоит сложное условие, то добавляют по 2 строки на каждое простое условие
Для каждого оператора выбора записывается столько строк, сколько он имеет ветвей, включая ветвь «иначе»
Для каждого цикла с предусловием создаются 3 строки - для нулекратного, однократного и многократного повторения тела цикла, если в цикле с предусловием стоит сложное условие, то добавляют по 2 строки на каждое простое условие
Для каждого цикла с постусловием создаются 3 строки - для нулекратного, однократного и многократного повторения тела цикла, если в цикле с постусловием стоит сложное условие, то добавляют по 2 строки на каждое простое условие
Для каждого цикла со счетчиком создаются 3 строки - для нулекратного, однократного и многократного повторения тела цикла, если в цикле со счетчиком стоит сложное условие, то добавляют по 2 строки на каждое простое условие
Ошибкоопасные ситуации при работе с файлами:
- запись/чтение двоичных файлов (путаница между файлами разного вида), в дисковом файле не сохраняется информация о том, какого типа данные в нем записаны
- создание файлов с данными с помощью текстового редактора, просмотр файлов с данными с помощью текстового редактора (путаница текстовых и двоичных файлов), в текстовом файле хранится последовательность литер, с помощью которых изображаются целые числа, а в типизированном – их внутреннее представление
- запись/чтение нетипизированных файлов (данные могут быть записаны в файл как значения одного типа, а прочитаны как значения другого – еще одна возможность обойти типовый контроль)
- запись в файл (отсутствие явного закрытия файла), возможно, что содержимое последнего заполненного буфера не будет вытолкнуто в файл.
Ошибкоопасные ситуации при обращении к данным.
- неинициализированная переменная, используется до того, как ей было присвоено значение, появление «мусорных» значений
- неверная инициализация (автоматическая)
- выход индекса за границу измерения
- побочный эффект при изменении глобальной переменной при выполнении подпрограммы (требует повышенного внимания, часто не является ошибкой)
- «висячая ссылка» (использование ссылочной переменной), переменная ссылочного типа указывает на область памяти, которая уже возвращена системе, «нехорошо», когда эта область уже перераспределена под другую переменную
- схожие имена переменных (не является ошибкой)
- несколько полей записи с вариантами используется для обращения к одной и той же области памяти при отсутствии контроля за типизацией (само по себе не ошибка, значение типа может быть прочитано или откорректировано как другой тип)
- использование нетипизированного указателя (динамическая переменная, на которую ссылается данный указатель, в разных местах программы может трактоваться как переменная разных типов)
- обращение к одной и той же области памяти из разных модулей (не ошибка, все ли модули рассматривают переменную в одном и том же смысле?)
- использование типизированных констант в Турбо-Паскале (может менять свое значение)
- использование переменных, не имеющих явного описания (неверно введенное имя, какой тип?, какова область действия?)