Непрерывная интеграция

1,693 views

Published on

Это рассказ Вики Руденко о том, что такое непрерывная интеграция и каково ее влияние на работу тестировщика. В ее выступлении можно будет узнать о самых популярных системах CI, услышать о их преимуществах и недостатках. А в завершении она на реальном примере покажет, как работает данный подход в ее проекте.

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,693
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
28
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Непрерывная интеграция

  1. 1. Введение в непрерывную интеграцию<br />Руденко Виктория<br />Ardas Group<br /> Сообщество Тестировщиков Днепропетровска<br />26/05/2011<br />
  2. 2. Немного о себе<br />2<br />Руденко Виктория<br />Опыт в тестировании – 4 года<br />Должность – QA Lead<br />Отдел QA – 8 человек<br /><ul><li> тестирование
  3. 3. контроль качества на всех этапах жизненного цикла ПО
  4. 4. непрерывная интеграция - с 2009 г. </li></ul>Ardas Group<br />Программное обеспечение, сайты<br />Независимое тестирование<br />Web: http://ardas.dp.ua<br />E-mail: victoria.rudenko@ardas.dp.ua<br />Введение в непрерывную интеграцию<br />
  5. 5. Определение<br />3<br />Непрерывная интеграция (англ. ContinuousIntegration) — это практика разработки программного обеспечения, которая заключается в выполнении частых автоматизированных сборок проекта для скорейшего выявления и решения интеграционных проблем. [Википедия]<br />Введение в непрерывную интеграцию<br />
  6. 6. Проблемы<br />4<br /><ul><li> проблема интеграции
  7. 7. позднее обнаружение дефектов
  8. 8. поддержка и запуск существующих тестов и проверок
  9. 9. рутина
  10. 10. актуальность тестируемой среды</li></ul>Введение в непрерывную интеграцию<br />
  11. 11. Решение<br />5<br />«ContinuousIntegration» — это лекарство от страха. Помогает при программировании. Dr. Zoidberg ©<br />Введение в непрерывную интеграцию<br />
  12. 12. Этапы непрерывной интеграции<br />6<br />Введение в непрерывную интеграцию<br />
  13. 13. Обновление<br />7<br />Интеграционная сборка может осуществляться:<br /><ul><li> по внешнему запросу
  14. 14. по расписанию
  15. 15. по факту обновления репозитория</li></ul>Commit<br />Введение в непрерывную интеграцию<br />
  16. 16. Работа с репозиторием<br />8<br /><ul><li> все данные хранятся в репозитории
  17. 17. частые коммиты
  18. 18. локальная сборка перед коммитом
  19. 19. предкоммитная сборка на интеграционном сервере (TeamCity)
  20. 20. исправление поломанного кода – приоритетная задача
  21. 21. прекращение работы с репозиторием до исправления сборки</li></ul>Введение в непрерывную интеграцию<br />
  22. 22. Сборка<br />9<br /><ul><li> автоматизированная
  23. 23. быстрая:
  24. 24. ресурсы компьютера
  25. 25. разбиение на подмодули
  26. 26. поэтапная
  27. 27. критичные проверки сначала
  28. 28. выделенная машина</li></ul>Введение в непрерывную интеграцию<br />
  29. 29. “Это работает на моей машине!”<br />10<br />Введение в непрерывную интеграцию<br />
  30. 30. Модульное тестирование<br />11<br />Программисты пишут код для тестирования программного кода.<br />QA:Все тесты включены в сборку<br /><ul><li> быстрое обнаружение дефектов
  31. 31. упрощение рефакторинга</li></ul>Введение в непрерывную интеграцию<br />
  32. 32. Инспекция кода<br />12<br /><ul><li> проверка соблюдения стандартов
  33. 33. проведение статического анализа
  34. 34. измерение метрик</li></ul>Метрики:<br /><ul><li> процент покрытия тестами
  35. 35. мера сложности программ
  36. 36. число строк кода</li></ul>Введение в непрерывную интеграцию<br />
  37. 37. Развертывание<br />13<br /><ul><li> автоматизированное
  38. 38. указание версии</li></ul>Введение в непрерывную интеграцию<br />
  39. 39. Приемочное тестирование<br />14<br /><ul><li> функциональные тесты (Selenium, TestComplete, Watir)
  40. 40. тесты на нагрузку (JMeter, LoadRunner)</li></ul>QA<br /><ul><li> запуск по расписанию
  41. 41. реальные условия</li></ul>Введение в непрерывную интеграцию<br />
  42. 42. Архивирование<br />15<br /><ul><li> сохранение архивов
  43. 43. указание версии и даты сборки</li></ul>QA<br /><ul><li> экономия времени
  44. 44. тестирование</li></ul>Введение в непрерывную интеграцию<br />
  45. 45. Генерация отчета<br />16<br />Активное оповещение:<br /><ul><li>email
  46. 46. sms
  47. 47. система мгновенных сообщений</li></ul>Пассивное оповещение:<br /><ul><li> публикация на web
  48. 48. файловый сервер</li></ul>Введение в непрерывную интеграцию<br />
  49. 49. Серверы непрерывной интеграции<br />17<br />CruiseControl — сервер интеграции для Java (бесплатный)<br />http://cruisecontrol.sourceforge.net/<br />CruiseControl.NET — сервер интеграции для .NET (бесплатный) <br />http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET<br />CruiseControl — сервер интеграции для Ruby (бесплатный) <br />http://cruisecontrolrb.thoughtworks.com/<br />Введение в непрерывную интеграцию<br />
  50. 50. Серверы непрерывной интеграции<br />18<br />Hudson — open-source сервер интеграции, создан как альтернатива CruiseControl.<br />http://hudson-ci.org/<br />TeamCity — коммерческий сервер интеграции от компаниииJetBrains для java и .NET (есть бесплатная версия). <br />http://www.jetbrains.com/teamcity/<br />Bamboo — коммерческий сервер интеграции от компаниииAttlassianдля java, .NETи Ruby.<br />http://www.atlassian.com/software/bamboo/<br />Введение в непрерывную интеграцию<br />
  51. 51. Как это у нас<br />19<br /><ul><li>web-приложения на Java
  52. 52. инструменты сборки maven, ant
  53. 53. unit тесты
  54. 54. Selenium тесты
  55. 55. сервер НИ CruiseControl</li></ul>Введение в непрерывную интеграцию<br />
  56. 56. Как это у нас<br />20<br />Сборка после каждого коммита(Быстрая)<br /><ul><li> компиляция
  57. 57. unit тесты
  58. 58. сохранение архивов
  59. 59. email для QA – оповещение о новых архивах
  60. 60. email всем – в случае поломки или исправлении сборки</li></ul>Ночная сборка (Медленная)<br /><ul><li> компиляция
  61. 61. развертывание
  62. 62. Selenium-тесты
  63. 63. еmail с отчетом
  64. 64. сохранение более подробного отчета на файловом сервере</li></ul>Введение в непрерывную интеграцию<br />
  65. 65. CruiseControl<br />21<br />Введение в непрерывную интеграцию<br />
  66. 66. Рекомендации<br />22<br />Martin Fowler “Continuous Integration “ http://www.martinfowler.com/articles/continuousIntegration.html<br />Paul M. Duvall “Continuous Integration: Improving Software Quality and Reducing Risk” http://www.amazon.com/Continuous-Integration-Improving-Software-Reducing/dp/0321336380<br />Введение в непрерывную интеграцию<br />
  67. 67. Преимущества и недостатки НИ<br />23<br />Недостатки:<br /><ul><li> выделенный сервер
  68. 68. время на поддержку</li></ul>Преимущества:<br /><ul><li> снижение рисков
  69. 69. уменьшения количества дефектов
  70. 70. быстрый сигнал о проблемах
  71. 71. избавление от рутины
  72. 72. наличие стабильной версии
  73. 73. контроль состояния проекта</li></ul>Введение в непрерывную интеграцию<br />
  74. 74. Вопросы<br />24<br />Введение в непрерывную интеграцию<br />

×