- •Препроцессор. Директивы препроцессора.
- •Описание, определение и вызов функций. Параметры по умолчанию. Встроенные функции.
- •Особенности работы с указателями разных типов в языке с.
- •Модели памяти. Функции работы с динамической памятью.
- •Шаблоны функций. Перегружаемые функции.
- •Организация ввода-вывода.
- •Разработка надежного программного обеспечения. Обработка исключительных ситуаций.
- •13. Особенности программирования для ос Windows.
- •14. Библиотека динамической компоновки. Области применения. Разработка и использование dll-библиотек.
- •15. Объектно-ориентированное программирование. Классы. Определение спецификации доступа.
- •16. Объектно-ориентированное программирование. Полиморфизм.
- •17. Ооп. Наследование. Области видимости для классов.
- •18. Ооп. Классы. Дружественные функции.
- •19. Понятие компоненты. Типы компонент. Свойства. Контейнерные компоненты.
- •20. Организация процесса конструирования по. Типы по. Стратегии конструирования.
- •21. Понятие жизненного цикла. Модели жизненного цикла.
- •22. Особенности процесса синтеза программных систем.
- •23. Разработка структуры программы. Модульное программирование. Критерии оценки программ.
- •24. Проектирование программ. Методы нисходящего и восходящего проектирования.
- •27. Классические методы анализа проектирования. Метод Джексона.
- •28. Структурные методы проектирования. Sadt.
- •29. Структурные методы проектирования программных систем. Использование dfd и er диаграмм.
- •30. Case-системы. Классификация.
- •31. Методы контроля и тестирования по. Статический и динамический контроль. Функциональное тестирование.
- •32. Методы контроля и тестирования по. Структурное тестирование. Многомодульное тестирование.
- •33. Разработка интерфейса пользователя. Структуры диалога. Критерии выбора структуры диалога.
- •34. Разработка интерфейса пользователя. Описание диалога. Использование сетей переходов для представления структуры диалога. Правила свёртки сети переходов.
- •40. Критерии оценки качества по. Документирование и оценка качества в соответствии с iso 9000.
- •41. Основные понятия сом-технологии.
32. Методы контроля и тестирования по. Структурное тестирование. Многомодульное тестирование.
При построение тестов выделяют два подхода:
1) функциональное тестирование – ПО рассматривается как «черный ящик». Для проверки работоспособности на вход должен подаваться весь набор возможных параметров
2) структурное тестирование – базируется на анализе логики ПО. Используется такой набор входных данных, который позволит пройти по всем ветвям графа состояний вычислительного процесса.
Среди методов структурного проектирования выделяют:
1) метод покрытия операторов. Предполагается выполнения каждого оператора хотя бы 1 раз;
2) метод покрытия решений. Предполагается проверка каждого оператора ветвления хотя бы 1 раз;
3) метод покрытия условий. Предполагается, что при наличии сложных условий каждое из них должно быть выполнено хотя бы 1 раз;
4) метод покрытие решений и условий. Каждый оператор ветвления должен быть выполнен хотя бы 1 раз и каждое условие в операторе должно выполнятся хотя бы 1 раз.
Даже при проведении полного тестирования в ПО возможны ошибки т.к.
ПО может не соответствовать своей внешней спецификации, что приведет к наличию неучтенных путей в графе управления;
могут оказаться ошибки, появление которых связано с конкретными данными для обработки.
Особое внимание следует уделять тестированию многомодульных программных комплексов. Его проводят в 4 этапа:
1) тестирование отдельных модулей;
2) совместное тестирование модулей;
3) тестирование функций программного комплекса в целом (поиск различия между функциями модуля и спецификацией);
4) тестирование комплекса в целом (поиск несоответствия между разрабатываемым ПО и целью проекта)
Тестирование многомодульного ПО может выполняться в монолитном или пошаговом режимах. При монолитном тестировании сначала каждый модуль проверяется отдельно, а затем комплекс тестируется в целом. При этом для вызова каждого модуля требуется написание модуля драйвера, моделирующего вызов тестируемого модуля, а также описание набора модулей-заглушек, эмулирующих работу других систем. Основным преимуществом монолитного режима является возможность параллельного выполнения тестов, что приводит к экономии времени.
При пошаговом тестировании каждый модуль подключается к готовой ранее оттестированной части. В этом случае требуются только драйверы или заглушки. Преимущества режима – уменьшение трудоемкости обнаружения ошибок на более ранних стадиях; локализация ошибок в интерфейсной части более проста.
Пошаговое тестирование может выполняться как нисходящее или восходящее.
1) Нисходящее тестирование начинается с основного модуля программы, а выбор следующего подключаемого модуля происходит из числа модулей, вызываемых уже протестированными.
Проблемы:
создание «интеллектуальных» заглушек;
обычно ввод тестов осуществляется через модули ввода, которые на первоначальном этапе не протестированы. Поэтому модули ввода/вывода и критические для программы модули подключаются к тестированию на самых ранних стадиях.
Достоинства нисходящего тестирования:
уже на ранних стадиях тестирования можно получить работоспособный вариант программы;
быстро выявляются ошибки, связанные с организацией взаимодействия с пользователем.
2) При восходящем тестировании проверка программы начинается с терминальных модулей.
Преимущества:
отсутствует проблема выбора следующего подключаемого модуля. Каждый раз выбирается модуль, вызывающий только что протестированный.
тестирование ведется последовательно. Каждый более крупный модуль проверяется только после проверки предыдущего.
Недостаток – невозможность быстрого получения работающего варианта.
