--- slideOptions: transition: slide --- 2.3. Жизненный цикл разработки ПО. Гибкие методологии разработки ПО ==== --- # План занятия 1. SDLC — жизненный цикл разработки ПО 2. Стадии разработки 3. Фазы разработки 4. Методологии разработки ПО 5. STLC — жизненный цикл тестирования ПО 6. Стадии тестирования 7. Жизненный цикл дефекта 8. Как вписать STLC в SDLC и не умереть --- # Вспоминаем прошлые занятия - Методы и виды тестирования ПО - Основы клиент-серверного взаимодействия - Техники тест дизайна - Подготовка тестовых сценариев - Инструменты тестирования ПО --- # SDLC - жизненный цикл разработки ПО ![](https://i.imgur.com/H8mIFqg.png) --- # Стадии разработки - Анализ требований к проекту - Проектирование - Реализация (дизайн и кодирование) - Тестирование и интеграция - Внедрение и поддержка --- # Анализ требований к проекту - Анализ требований к проекту - Подготовка к дальнейшей работе - Документирование и анализ - Выявление и разрешение противоречий --- # Проектирование - Выбор технологий - Загрузка команды, бюджетное планировние - Разработка проектоного решения --- # Реализация - Разработка back-end - Разработка front-end - Unit-тесты - Развертка кода в программной среде --- # Тестирование и интеграция - Поиск и документирование дефектов - Ретест дефектов после исправлений - Написание/актуализация тестов --- # Внедрение и поддержка - Релиз для конечных пользователей - Работа саппорта --- # Фазы разработки - **Последовательные фазы**: - сначала собираем и разрабатываем требования, - потом проектируем модели, - затем реализуем их, - перед передачей заказчику тестируем и исправляем ошибки. - **Параллельные фазы**: пока разработчики реализуют требования к текущей версии, аналитики собирают и разрабатывают требования к новой версии. Одновременно над продуктом может работать несколько команд, каждая из которых разрабатывает свою фичу от начала и до конца. - **Смешанные фазы**: участники команды могут не выделять отдельные фазы, а за счет коммуникационных практик выполнить сразу сбор, разработку требований и проектирование будущей функциональности. Фазы разработки могут охватывать как целый продукт (водопадная модель), так и минимальную полезную функциональность (Scrum). --- # Методологии разработки ПО - Waterfall - V-model - Agile - Спиральная модель - Инкрементная модель --- # Waterfall ![](https://i.imgur.com/PYA8WdD.png) --- # V-model ![](https://i.imgur.com/3dhHM7B.png) --- # Спиральная модель ![](https://i.imgur.com/iAfAym6.png) 1. Сбор требований и планирование 2. Планирование на основе изменений 3. Анализ риска на основе начальных требований 4. Анализ риска на основе изменений 5. Переход к готовой система 6. -8. Версии системы 9. Оценка заказчиком --- # Инкрементная модель ![](https://i.imgur.com/Z8pgULi.png) --- # Agile ![](https://i.imgur.com/Wv5fKcQ.jpg) --- # Agile Популярные Agile-методы: * XP - Экстремальное программирование * DSDM - Dynamic Systems Development Method, методика разработки программного обеспечения, основанная на концепции быстрой разработки приложений (RAD) * Scrum * FDD - Feature driven development * TDD - Test-driven development * BDD - Behavior-driven development * Lean software development --- # От чего зависит выбор модели разработки ![](https://i.imgur.com/72W4Ee7.png) --- # STLC — жизненный цикл тестирования ПО ![](https://i.imgur.com/K7znpYP.png) --- # Стадии тестирования - **Работа с требованиями**: тестирование на соответствие бизнес-целям, полноту охвата, уместность использования, целостность и непротиворечивость. - **Планирование тестирования**: определение требований к тестам, оценка рисков, выбор стратегии тестирования, создание расписания тестирования, разработка Плана тестирования. - **Разработка тестов**: определение и описание тестовых случаев, обзор и оценка тестового покрытия, создание и подготовка наборов данных. - **Установка тестового окружения**: подготовка тестовой среды, подтверждение правильности сборки. - **Проведение тестов**: выполнение тестов, их оценка, проверка результатов, запись ошибок. - **Завершение цикла тестирования**: проверка выполнения критериев завершения и успешности тестирования. --- # Жизненный цикл дефекта ![](https://i.imgur.com/tQKYs54.png) --- # Жизненный цикл дефекта ![](https://i.imgur.com/tWNcyrd.png) --- # Как вписать STLC в SDLC и не умереть Полный цикл тестирования обычно совпадает с итерацией разработки или соответствует ее определенной части. Подход к проверке работоспособности программного продукта похож на оценку продукта от конечного пользователя, поэтому стоит привлекать специалиста к работе на самом раннем этапе — в ходе сбора и анализа требований. Идеально, когда обсуждение компонентов системы проходит с участием разработчика, пользователя и QA-аналитика. --- # Домашнее задание ---