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