- •Составные части технологии программирования (тп). Отличие тп от методологии программирования и программной инженерии.
- •Технология быстрой разработки приложений (rad). Основные принципы и особенности.
- •Иерархия понятий в технологии программирования.
- •Определение понятия «предметная область». В чем заключается принцип концептуализации предметной области.
- •Особенности современных программных систем как объектов разработки. Проблемы разработки сложных программных систем.
- •Общие принципы разработки сложных программных систем. Признаки сложных программных систем.
- •Показатели качества программных систем.
- •Основные подходы к созданию сложных программных систем (структурный и объектный).
- •Структурный подход к разработке программных систем.
- •2) Объектный подход к разработке программных систем.
- •Основные этапы жц: Требования к по.
- •Основные этапы жц: Проектирование по.
- •Основные этапы жц: Конструирование по.
- •Основные этапы жц: Тестирование по.
- •Основные этапы жц: Сопровождение по.
- •1. Технические вопросы:
- •Жизненный цикл (жц) программных систем: определение, стандарты и проблемы.
- •Основные процессы жизненного цикла по.
- •Модель жизненного цикла по: Каскадная модель разработки по.
- •Модель жизненного цикла по: Спиральная модель разработки по.
- •Другие типы моделей жизненного цикла (V-образная, инкрементная, быстрого прототипирования).
- •Модели организации команд: Административная модель. Модель хаоса. Модель открытой архитектуры.
- •Модель проектной группы msf for Agile Software Development: Основные принципы построения команды.
- •Модель проектной группы msf. Ролевые группы и роли.
Основные этапы жц: Тестирование по.
Это процесс анализа или эксплуатации ПО в целях выявления дефектов (плановая направленная деятельность).
Это процесс проверки готовности программы в статике (просмотр, отладка исходного кода) и в динамике путем ее прогона на конечном наборе тестовых данных, выбранных соответственно образцу из обычно выполняемых действий прикладной области и проверяющих разные пути выполнения программы и сравнение полученных результатов с заранее запланированными в соответствии поведением системы.
Основные концепции тестирования
Дефект или программная ошибка – это изъян в разработке ПО, который вызывает несоответствие ожидаемых результатов его выполнения и полученных результатов.
К ключевым вопросам тестирования относятся:
Критерии обора тестов (адекватности тестов)
правила прекращения тестирования;
Цели тестирования;
Тестирование для идентификации дефектов;
Проблема Оракула (человек должен сформулировать вердикт того, что ошибка найдена; тест пройден или не пройден).
Теоретические и практические ограничения тестирования;
Проблема неосуществимых путей;
Тестируемость – это возможность проведения статистических измерений и предсказания вероятности появления ошибки.
Уровни тестирования:
Модульное тестирование (тестирование отдельных элементов) - проверка отдельных независимых частей ПО);
Интеграционное тестирование (проверка связей и способов взаимодействия модулей),
Системное тестирование – предназначено для проверки функционирования всего ПО в целом на конкретной аппаратной и программной платформе.
Тестирование проводится с определёнными целями.
Рассматривают следующие основные виды тестирования:
Приёмочное тестирование, которое позволяет проверить поведение системы на предмет удовлетворения требованиям заказчика,
Установочное тестирование – позволяет проверить процедуру инсталляции ПО в целевом окружении,
Функциональное тестирование – позволяет проверить правильность реализации функций в требованиях,
Регрессионное тестирование – тестирование ПО после внесения исправлений в него на тех же самых тестах, что и до модификации,
Тестирование эффективности, которое проверяет производительность, пропускную способность, минимальный объём данных и системные ограничения в соответствии со спецификацией,
Стресс-тестирование, которое проверяет поведение системы при максимально допустимой нагрузке (или при её превышении),
Альфа-тестирование (внутреннее тестирование) и Бета-тестирование (внешнее тестирование – взаимодействия с внешней средой),
Конфигурационное тестирование – проверяет структуру и конфигурацию системы на различных наборах данных и на различных вариантах аппаратуры и оборудования,
Сравнительное тестирование – позволяет сравнить текущую и предыдущую версии программы,
Тестирование простоты и удобства использования – насколько легко пользователь может освоить работу с системой. Также возможность выявления того, насколько пользователь застрахован от ошибок системы.
Техники тестирования базируются на конкретных теоретических и практических положениях, а также на знании данных при использовании системы.
Тестирование по методу белого ящика – тестирование проводится при полном знании системы, исходного кода.
Тестирование по методу чёрного ящика – когда система закрыта от тестера, он знает, что должно быть на входе, но не знает о выходе.
Анализ граничных значений и потоков данных – касается разработки информационных систем.
Построение блок-схем программ, алгоритмов и разработка системы тестов для полного покрытия системы этими тестами.
Сбор и анализ структурных характеристик системы – фиксация всех изменений, которые привносятся в систему.
Метрики тестирования применяются для измерения результатов тестирования и при анализе качества теста. К ним относятся:
Размер программы
Количество входящих в структуру компонентов
Количество обнаруженных при выполнении программы ошибок
Метрики применяются для измерения результатов измерений и при анализе качества тестов. Метрики тестирования обеспечивают измерение самого процесса тестирования на основе таксономии (отказа), покрытия границ тестирования, потоков данных и т.д.
Управление тестированием включает в себя:
Планирование процесса тестирования (составление планов, тестов, наборов данных).
Генерация необходимых тестовых сценариев, соответствующих среде выполнения ПО.
Верификация правильности реализации ПО и валидация правильности требования к ПО.
Подготовка отчётов по результатам тестирования на основании собранных данных об отказах и других исключительных ситуациях при исполнении ПО.
