continuous integration для qa
TRANSCRIPT
QA Club #29
QA Club #29
10 сентября 2013
Колодяжный Иван
1
Continuous Integration для QA: как, зачем и сколько стоит или
в чем сила, брат?
QA Club #29
О чем поговорим?• Что это такое и с чем его едят?
• От возникновения CI и до наших дней
• Обзор ПО, которое облегчает нам жизнь (TeamCity, Jenkins, TFS, cron, etc)
• Опыт внедрения CI на проектах от “hello world” до разработки крупных систем
• Пример использования Jenkins на примерре “классического” веб-приложения
• СI/CD (Continuous Integration/Continuous Delivery) –новое или хорошо забытое старое? Что это такое и почему нам это (не) нужно?
5
QA Club #29
О чем поговорим?
• Доклад построен на реальном опыте. Все совпадения с реальными проектами считаются случайностями. При подготовке доклада ни один билд не пострадал ;)
6
QA Club #29
А также:
• Ответы на вопросы:
• - Нужно протестировать свежую фичу из репозитория?
• - Какая версия приложения у нас на вооот этом сервере?
• - Как настроить и запустить автоматическое тестирование нужной версии?
• - Как CI(/CD) позволяет добиться улучшения качества ПО?
• - А был ли мальчик? :)7
QA Club #29
Continuous Integration (CI) - это:
• инженерная практика разработки ПО
• Jenkins, TeamCity, TFS, и т.д
• непрерывный процесс
11
QA Club #29
Шел 1999-й год...
• Kent Beck и Martin Fowler написали книгу “Extreme Programming Explained”
12
QA Club #29
До этого...
• 1960-й: NASA пробовали писать ПО используя парадигму “test first”
• Создание bash, cron, bat-скрипты, windows scheduler и т.д.
• и еще работа руками..
13
QA Club #29
Коротко о главном
• Частая автоматическая сборка ПО для быстрого(раннего) выявления проблем
14
QA Club #29
Кто должен работать?• Билд инжинер (Build engineer)
• QA
• Разработчики
• Тестировщики
• Руководитель проекта
• Заказчик
• Вся команда!
15
QA Club #29
Терминология
• Билд
• Ревизия
• Модульные тесты
• Приемочные тесты
• Развертывание
• Серверы: dev, testing, staging, production
16
QA Club #29
Шаг за шагом
• Берем исходный код из репозитория
• Сборка приложения (компиляция, запуск модульных тестов, создание дистрибутива и т.д.)
• Развертываем (устанвливаем)
• Запускаем тесты
• Создаем и читем отчеты
• (не)радуемся
18
QA Club #29
Типичные проблемы
• “Берем исходный код из репозитория”
– svn, git, mercurial
– “а этот скрипт лежит вооон у того разработчика”
– Вася, Петя, Женя... не закоммитил код
20
QA Club #29
Шаг №2
• Сборка приложения (компиляция, запуск модульных тестов, создание дистрибутива и т.д.)
21
QA Club #29
Типичные проблемы
• “Сборка приложения (компиляция, создание дистрибутива и т.д.)”
– “код” нерабочий
22
QA Club #29
Типичные проблемы
• “Развертываем (устанвливаем)”
– железо
– операционые системы
– инсталлятор
24
QA Club #29
Типичные проблемы
• “Запускаем тесты”
– а есть ли тесты?
– какие тесты запускать?
– набор test case’ов на все случаи жизни
26
QA Club #29
Типичные проблемы
• “Создаем и читем отчеты”
– “я не буду читать эти 12 мегабайтов логов”
– красивые картинки и неработающее ПО
– удалили и забыли
28
QA Club #29
Облегчаем себе жизнь
• Jenkins (Hudson)
• TeamCity
• Travis CI
• Cruise Control
• и так далее...
34
QA Club #29
Ссылки по теме
• http://www.extremeprogramming.org/rules.html
• http://en.wikipedia.org/wiki/Continuous_integration
• http://www.martinfowler.com/articles/continuousIntegration.html
• http://en.wikipedia.org/wiki/Extreme_Programming
• http://en.wikipedia.org/wiki/Continuous_delivery
• http://blog.e0ne.info/
• http://google.com
• :)
38
QA Club #29
Спасибо. Вопросы?
Skype: e0ne-user
Blog: http://blog.e0ne.info/E-mail: [email protected]: @e0ne