continuous integration для qa

39
QA Club #29 QA Club #29 10 сентября 2013 Колодяжный Иван 1 Continuous Integration для QA: как, зачем и сколько стоит или в чем сила, брат?

Upload: ivan-kolodyazhny

Post on 19-Jul-2015

79 views

Category:

Technology


0 download

TRANSCRIPT

QA Club #29

QA Club #29

10 сентября 2013

Колодяжный Иван

1

Continuous Integration для QA: как, зачем и сколько стоит или

в чем сила, брат?

QA Club #29

Поздравляю!

• С Днём тестировщика!

2

QA Club #29

Поздравляю!

• С Днём тестировщика!

• Vikkimus, c Днём рождения!

3

QA Club #29

Обо мне

• Я - тестировщик

4* иногда тестирую, иногда пишу тесты

*

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

Чего не будет

• котиков

• много картнок

8

QA Club #29

Начнем

• Ваша роль и обязаности в проекте?

• Технологии?

• Методологии?

9

QA Club #29

Continuous Integration (CI) - это?

10

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

Шаг за шагом...

17

QA Club #29

Шаг за шагом

• Берем исходный код из репозитория

• Сборка приложения (компиляция, запуск модульных тестов, создание дистрибутива и т.д.)

• Развертываем (устанвливаем)

• Запускаем тесты

• Создаем и читем отчеты

• (не)радуемся

18

QA Club #29

Шаг №1

• Берем исходный код из репозитория

19

QA Club #29

Типичные проблемы

• “Берем исходный код из репозитория”

– svn, git, mercurial

– “а этот скрипт лежит вооон у того разработчика”

– Вася, Петя, Женя... не закоммитил код

20

QA Club #29

Шаг №2

• Сборка приложения (компиляция, запуск модульных тестов, создание дистрибутива и т.д.)

21

QA Club #29

Типичные проблемы

• “Сборка приложения (компиляция, создание дистрибутива и т.д.)”

– “код” нерабочий

22

QA Club #29

Шаг №3

• Развертываем (устанвливаем) приложение

23

QA Club #29

Типичные проблемы

• “Развертываем (устанвливаем)”

– железо

– операционые системы

– инсталлятор

24

QA Club #29

Шаг №4

• Запускаем тесты

25

QA Club #29

Типичные проблемы

• “Запускаем тесты”

– а есть ли тесты?

– какие тесты запускать?

– набор test case’ов на все случаи жизни

26

QA Club #29

Шаг №5

• Создаем и читем отчеты

27

QA Club #29

Типичные проблемы

• “Создаем и читем отчеты”

– “я не буду читать эти 12 мегабайтов логов”

– красивые картинки и неработающее ПО

– удалили и забыли

28

QA Club #29

Шаг №6

• (не)радуемся

29

QA Club #29

Типичные проблемы

• “Это неудобно, я не буду этим пользоваться”

30

QA Club #29

Как это обычно бывает:

• Всё просто

• Всё сложно

31

QA Club #29

Всё просто

32

QA Club #29

Всё сложно

33

QA Club #29

Облегчаем себе жизнь

• Jenkins (Hudson)

• TeamCity

• Travis CI

• Cruise Control

• и так далее...

34

QA Club #29

СI/CD (Continuous Integration/Continuous Delivery)

35

QA Club #29

$

36

QA Club #29

Demo

• Jenkins

37

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