Top Banner
QA Club #29 QA Club #29 10 сентября 2013 Колодяжный Иван 1 Continuous Integration для QA: как, зачем и сколько стоит или в чем сила, брат?
39
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Continuous Integration для QA

QA Club #29

QA Club #29

10 сентября 2013

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

1

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

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

Page 2: Continuous Integration для QA

QA Club #29

Поздравляю!

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

2

Page 3: Continuous Integration для QA

QA Club #29

Поздравляю!

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

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

3

Page 4: Continuous Integration для QA

QA Club #29

Обо мне

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

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

*

Page 5: Continuous Integration для QA

QA Club #29

О чем поговорим?• Что это такое и с чем его едят?

• От возникновения CI и до наших дней

• Обзор ПО, которое облегчает нам жизнь (TeamCity, Jenkins, TFS, cron, etc)

• Опыт внедрения CI на проектах от “hello world” до разработки крупных систем

• Пример использования Jenkins на примерре “классического” веб-приложения

• СI/CD (Continuous Integration/Continuous Delivery) –новое или хорошо забытое старое? Что это такое и почему нам это (не) нужно?

5

Page 6: Continuous Integration для QA

QA Club #29

О чем поговорим?

• Доклад построен на реальном опыте. Все совпадения с реальными проектами считаются случайностями. При подготовке доклада ни один билд не пострадал ;)

6

Page 7: Continuous Integration для QA

QA Club #29

А также:

• Ответы на вопросы:

• - Нужно протестировать свежую фичу из репозитория?

• - Какая версия приложения у нас на вооот этом сервере?

• - Как настроить и запустить автоматическое тестирование нужной версии?

• - Как CI(/CD) позволяет добиться улучшения качества ПО?

• - А был ли мальчик? :)7

Page 8: Continuous Integration для QA

QA Club #29

Чего не будет

• котиков

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

8

Page 9: Continuous Integration для QA

QA Club #29

Начнем

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

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

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

9

Page 10: Continuous Integration для QA

QA Club #29

Continuous Integration (CI) - это?

10

Page 11: Continuous Integration для QA

QA Club #29

Continuous Integration (CI) - это:

• инженерная практика разработки ПО

• Jenkins, TeamCity, TFS, и т.д

• непрерывный процесс

11

Page 12: Continuous Integration для QA

QA Club #29

Шел 1999-й год...

• Kent Beck и Martin Fowler написали книгу “Extreme Programming Explained”

12

Page 13: Continuous Integration для QA

QA Club #29

До этого...

• 1960-й: NASA пробовали писать ПО используя парадигму “test first”

• Создание bash, cron, bat-скрипты, windows scheduler и т.д.

• и еще работа руками..

13

Page 14: Continuous Integration для QA

QA Club #29

Коротко о главном

• Частая автоматическая сборка ПО для быстрого(раннего) выявления проблем

14

Page 15: Continuous Integration для QA

QA Club #29

Кто должен работать?• Билд инжинер (Build engineer)

• QA

• Разработчики

• Тестировщики

• Руководитель проекта

• Заказчик

• Вся команда!

15

Page 16: Continuous Integration для QA

QA Club #29

Терминология

• Билд

• Ревизия

• Модульные тесты

• Приемочные тесты

• Развертывание

• Серверы: dev, testing, staging, production

16

Page 17: Continuous Integration для QA

QA Club #29

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

17

Page 18: Continuous Integration для QA

QA Club #29

Шаг за шагом

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

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

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

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

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

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

18

Page 19: Continuous Integration для QA

QA Club #29

Шаг №1

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

19

Page 20: Continuous Integration для QA

QA Club #29

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

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

– svn, git, mercurial

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

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

20

Page 21: Continuous Integration для QA

QA Club #29

Шаг №2

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

21

Page 22: Continuous Integration для QA

QA Club #29

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

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

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

22

Page 23: Continuous Integration для QA

QA Club #29

Шаг №3

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

23

Page 24: Continuous Integration для QA

QA Club #29

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

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

– железо

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

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

24

Page 25: Continuous Integration для QA

QA Club #29

Шаг №4

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

25

Page 26: Continuous Integration для QA

QA Club #29

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

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

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

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

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

26

Page 27: Continuous Integration для QA

QA Club #29

Шаг №5

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

27

Page 28: Continuous Integration для QA

QA Club #29

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

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

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

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

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

28

Page 29: Continuous Integration для QA

QA Club #29

Шаг №6

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

29

Page 30: Continuous Integration для QA

QA Club #29

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

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

30

Page 31: Continuous Integration для QA

QA Club #29

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

• Всё просто

• Всё сложно

31

Page 32: Continuous Integration для QA

QA Club #29

Всё просто

32

Page 33: Continuous Integration для QA

QA Club #29

Всё сложно

33

Page 34: Continuous Integration для QA

QA Club #29

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

• Jenkins (Hudson)

• TeamCity

• Travis CI

• Cruise Control

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

34

Page 35: Continuous Integration для QA

QA Club #29

СI/CD (Continuous Integration/Continuous Delivery)

35

Page 36: Continuous Integration для QA

QA Club #29

$

36

Page 37: Continuous Integration для QA

QA Club #29

Demo

• Jenkins

37

Page 38: Continuous Integration для QA

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

Page 39: Continuous Integration для QA

QA Club #29

Спасибо. Вопросы?

Skype: e0ne-user

Blog: http://blog.e0ne.info/E-mail: [email protected]: @e0ne