
- •1. Жизненный цикл программной системы.
- •2. Классический подход к созданию программных систем.
- •3. Понятия связности модулей и сцепления модулей.
- •4. Структурное программирование.
- •Структурное тестирование программного обеспечения
- •1. Связь процессов тестирования и процессов проектирования.
- •2. Уровни тестирования и виды тестирования.
- •3. Стратегия тестирования.
- •4. Тестирование программного модуля.
- •5. Восходящее и нисходящее тестирование.
- •6. Методы тестирования: модифицированный нисходящий, монолитный, сандвич, модифицированный сандвич.
- •7. Системное тестирование: метод функциональных диаграмм.
- •Объектно-ориентированный подход к разработке по
- •1. Абстрагирование и инкапсуляция
- •2. Модульность программных систем
- •3. Виды иерархий в программных системах.
- •4. Понятие объекта. Состояние, поведение и индивидуальность объекта.
- •5. Отношение между объектами: использование, включение.
- •6. Отношение простого наследования классов.
- •7. Добавление, замещение и уточнение методов класса при наследовании.
- •8. Отношение ассоциации между классами, включая агрегацию.
- •9. Отношение зависимости между классами, отношение реализации.
- •Шаблоны проектирования
- •1. Шаблон «Одиночка» Singleton
- •2. Шаблон «Фабричный метод» Factory Method
- •3. Шаблон «Декоратор» Decorator
- •4. Шаблон «Стратегии» Strategy
- •5. Шаблон «Компоновщик» Composite.
- •6. Шаблон «Наблюдатель» Observer
- •7. Архитектурные шаблоны (парадигмы).
- •Унифицированный процесс разработки по (rup)
- •1. Основные черты. Фазы и основные потоки работ.
- •2. Документ «Видения». Модель и словарь предметной области.
- •3. Функциональные и нефункциональные требования к системе. Варианты использования системы.
- •4. Прецеденты и отношения между вариантами использования (прецедентами).
- •5. Модель анализа и классы анализа.
- •6. Архитектурное представление.
6. Методы тестирования: модифицированный нисходящий, монолитный, сандвич, модифицированный сандвич.
Модифицированный нисходящий метод – отличается от нисходящего метода тем, что каждый модуль тестируется автономно перед включением его в интегрируемую систему, что ведет к повышению надежности тестирования.
Монолитное тестирование – метод большого скачка
Все модули пишутся одновременно.
Все модули собираются вместе (мгновенная сборка)
Производится тестирование сверху вниз.
Недостатки:
1. модули создавались одновременно, следовательно, несогласованность данных и большое количество ошибок, которые очень сложно локализовать;
2. модули тестируются ненадежно (см. тестирование сверху вниз: невозможность выполнить полное тестирование из-за недостаточности данных на нижних уровнях иерархии модулей).
3. для каждого модуля необходимо проектировать драйвер и заглушки на первой стадии проектирования.
4. выявление принципиальных ошибок происходит на нижних этапах проектирования.
Достоинство – распараллеливание труда; высокая точность планирования работы.
Метод сандвича – комбинация нисходящего и восходящего метода.
Проектирование, сборка и тестирование с двух сторон, с верхних и нижних уровней, а затем стыковка этих сторон:
- модули нижних уровней тестируются снизу вверх;
- модули верхних уровней тестируются сверху вниз;
- необходимость определения уровня соединения модулей.
Достоинства: раннее начало интеграции системы, надежное тестирование модулей низкого уровня.
Модифицированный метод сандвича:
- тестирование верхних модулей выполняется модифицированным нисходящим методом
- тестирование модулей нижнего уровня – восходящим тестированием.
Показатели:
время сборки (чем раньше выполнится сборка, тем раньше выявляются ошибки в интерфейсах).
время создания работающего варианта (чем раньше создается рабочий вариант, тем раньше выявляются принципиальные ошибки)
необходимость в драйверах (чем больше драйверов, тем хуже).
необходимость в заглушках (чем больше, тем дольше тестирование).
параллельность в начале работы (чем выше параллельность работы, тем лучше (не во всех случаях)
возможность тестирования отдельных модулей (такая возможность обеспечивает более надежное тестирование)
возможность планирования процессов тестирования (возможность управления проектом более качественно)
Восходящее: 1. рано; 2. поздно; 3. да; 4. нет; 5. средняя; 6. легко; 7. легко.
Нисходящее: 1. рано; 2. рано; 3. нет; 4. да; 5. слабая; 6. трудно; 7.трудно.
Модифицированный нисходящий: 1.рано; 2.рано; 3.да; 4.да; 5.средняя; 6.легко ; 7.трудно.
Монолитный: 1.поздно; 2.поздно; 3.да; 4.да; 5.высокая; 6.легко; 7.легко. (худший)
Сандвича: 1.рано; 2.рано; 3.частично; 4.частично; 5.средняя; 6.средняя; 7.трудно.
Модифицированный сандвича: 1.рано; 2.рано; 3.да; 4.частично; 5.высокая; 6.легко; 7.трудно.
7. Системное тестирование: метод функциональных диаграмм.
Систе́мное тести́рование — это тестирование программного обеспечения, выполняемое на полной, интегрированной системе, с целью проверки соответствия системы исходным требованиям. Системное тестирование относится к методам тестирования чёрного ящика, и, тем самым, не требует знаний о внутреннем устройстве системы.
Основной задачей системного тестирования является проверка как функциональных, так и не функциональных требований к системе в целом.
Функциональное тестирование – это тестирование ПО в целях проверки реализуемости функциональных требований, то есть способности ПО в определённых условиях решать задачи, нужные пользователям.
Внешняя функция – описание того, что функция должна выполнять, в общем смысле слова.
Спецификация внешних функций включает:
описание входных данных (описывается синтаксис и семантика);
описание выходных данных (результатов);
описание преобразования системы (состояние глобальных элементов)
характеристики надежности
требования по эффективности (быстродействию и использованию объема памяти)
Метод функциональных диаграмм (причина-следствие)
Выявляются причины (допустимые значения из классов эквивалентности входных данных) и следствия (ожидаемые отклики системы)
Разрабатывается граф причинно-следственных связей (автоматная модель приложения)
Формируется таблица решений
Столбцы решений образуют тестовые данные (тестовые случаи)
Ситуация-эффект (причина-следствие)
Возможные ограничения на причины:
E – появление a исключает b, появление b исключает a, при этом a и b не могут быть одновременно (только одна величина = 1)
I – либо a, либо b, либо вместе (хотя бы одна величина = 1)
O – либо a, либо b должно быть обязательно.
Алгоритм:
В таблицу ситуаций записывается комбинация ситуаций (причин), которые вызывают этот эффект.
В таблицу эффектов (следствий) записываются те эффекты, которые вызывают эту ситуацию.
Обозначения:
1. для ситуации: S – не имеет место, I – имеет место, X – не существенно
2. для эффектов: A – отсутствует; P – присутствует.