Раздел 4
Автор:
Евгений Новиков
Email:
xevgnov@gmail.com
Инженерия программного
обеспечения
Автор:
Евгений Новиков
Email:
xevgnov@gmail.com
Материалы для изучения
Agile
https://www.youtube.com/watch?v=loVd5MTCBWI
Scrum
http://www.pmoffice.by/blog/agile/agile-approach.html
Автор:
Евгений Новиков
Email:
xevgnov@gmail.com
Software engineering
Программная инженерия
- дисциплина, включающая все аспекты создания программного
обеспечения (от начальной стадии до момента использования)
- описывает модели, методы, средства производства программного
обеспечения и управления проектами
- это системный подход, обеспечение качества и эффективности
производства программного обеспечения
Автор:
Евгений Новиков
Email:
xevgnov@gmail.com
Software engineering
Что разрабатывать?
Как разрабатывать?
Кто заказчик?
Кто исполнитель?
Автор:
Евгений Новиков
Email:
xevgnov@gmail.com
Software engineering
Что нужно знать в первую очередь?
Автор:
Евгений Новиков
Email:
xevgnov@gmail.com
Для чего эта область знаний необходима QA
инженеру?
● Представление о том как разрабатывается приложение:
- этапы разработки (стадии проекта)
- участники
- артефакты
● Понимание своей роли в проекте
● Знание методологий управления разработкой программного обеспечения
Автор:
Евгений Новиков
Email:
xevgnov@gmail.com
Application development life cycle
Жизненный цикл программного обеспечения (ЖЦПО)
описывается моделью, включающей:
стадии (фазы цикла), например: кодирование
результат каждой стадии, например: исходный код, готовый для
тестирования
роли, задействованные на каждом из этапов, например разработчик
программного обеспечения
Автор:
Евгений Новиков
Email:
xevgnov@gmail.com
Стадии жизненного цикла программного обеспечения
Development
Design Testing
Planning Maintenance
Автор:
Евгений Новиков
Email:
Next iteration xevgnov@gmail.com
Initiation Disposal
Жизненный цикл программного обеспечения
Develop Mainten
Initiation Planning Analysis Design Testing Delivery Disposal
ment ance
Архитектура и
Планирование Тестирование Поддержка
дизайн Автор:
Евгений Новиков
Email:
xevgnov@gmail.com
Жизненный цикл программного обеспечения
Develop Mainten
Initiation Planning Analysis Design Testing Delivery Disposal
ment ance
Старт проекта
- идея проекта
- определение содержания проекта
- определение и формализация отношений заказчика и
исполнителя (устав) Автор:
- выбор методологии управления проектом Евгений Новиков
Email:
xevgnov@gmail.com
Жизненный цикл программного обеспечения
Develop Mainten
Initiation Planning Analysis Design Testing Delivery Disposal
ment ance
Develop Mainten
Initiation Planning Analysis Design Testing Delivery Disposal
ment ance
Develop Mainten
Initiation Planning Analysis Design Testing Delivery Disposal
ment ance
Develop Mainten
Initiation Planning Analysis Design Testing Delivery Disposal
ment ance
Develop Mainten
Initiation Planning Analysis Design Testing Delivery Disposal
ment ance
Результаты фазы:
протестированный продукт
Develop Mainten
Initiation Planning Analysis Design Testing Delivery Disposal
ment ance
Develop Mainten
Initiation Planning Analysis Design Testing Delivery Disposal
ment ance
Develop Mainten
Initiation Planning Analysis Design Testing Delivery Disposal
ment ance
Воспроизведен
Участие в Ревью ие багов
Тестирование Тестиров Тестирование, Приемочное
планировании документации: пользователей,
прототипа, ание на отчеты о тестирование тестирование
- эстимации, дефекты сбор ранних тестировании, при релизе исправленных
экспертные документации, информации, этапах,
сбор баг репорты новой версии багов и
оценки тест дизайн тест
информации, программы регрессионное
дизайн тестирование
планирование
тестирования и
Автор:
тест дизайн Евгений Новиков
Email:
xevgnov@gmail.com
QA engineer VS Software tester
Формальное различие между тестировщиком и QA инженером:
Автор:
Евгений Новиков
Email:
xevgnov@gmail.com
Модели жизненного цикла программного
обеспечения
● водопадная (каскадная) - последовательная или линейная модель
разработки ПО
Автор:
Евгений Новиков
Email:
xevgnov@gmail.com
Линейная разработка
1. Анализ требований программного продукта
- Этапы следуют линейно, друг за
2. Проектирование
другом
- Весь процесс планируется
вначале, каждый этап имеет свой
3. Кодирование промежуточный результат и
финальной стадией является
релиз готового продукта
4. Тестирование и отладка
5. Эксплуатация и Автор:
Евгений Новиков
сопровождение. Email:
xevgnov@gmail.com
Старт проекта Циклическая разработка
программного продукта
1. Анализ требований - разработка программного продукта
происходит циклически, каждый
цикл включает несколько этапов
2. Проектирование - между этапами есть обратная
связь
- этапы могут не идти
3. Кодирование
последовательно во времени, а
накладываются друг на друга
4. Тестирование и отладка - требования к продукту реализуют
в серии последовательных
релизов до тех пор, пока Автор:
5. Релиз приложение не будет готово Евгений Новиков
Email:
xevgnov@gmail.com
Методологии разработки программного
обеспечения
● Waterfall
● RUP (Rational Unified Process)
● MSF (Microsoft Solutions Framework)
● Agile (Scrum, Kanban, XP, etc.)
Автор:
Евгений Новиков
Email:
xevgnov@gmail.com
Waterfall - водопадная модель жизненного цикла
программного обеспечения
синонимы: каскадная, последовательная модель
Преимущества
Недостатки
1) итеративная разработка
2) динамически формирующиеся требование
3) самоорганизующиеся команды (обычно небольшие)
4) постоянное взаимодействие команды с представителями заказчика
Существуют различные гибкие методологии, но все они придерживаются единого свода ценностей и
принципов - Agile Manifesto (Agile манифест)
- Scrum
- Kanban
- XP
- Lean
Автор:
Евгений Новиков
Email:
xevgnov@gmail.com
Scrum
Особенности:
Автор:
Евгений Новиков
Email:
xevgnov@gmail.com
Scrum
Процессы (ритуалы): Артефакты:
● Sprint Planning Роли:
● Product Backlog
Meeting ● Team
● Sprint Backlog
● Daily Meeting ● Product Owner
● Sprint Goal
● Sprint Review & ● Scrum Master
● Sprint Burndown
demo
Chart
● Retrospective
Автор:
Евгений Новиков
Email:
xevgnov@gmail.com
Ответьте на следующие вопросы:
Задание 2 4)
преимущества и недостатки?
Автор:
Евгений Новиков
Email:
xevgnov@gmail.com