Эффективные методики автоматизированного тестирования в условиях непрерывной интеграции Сергей Андреев,  JetBrains
О себе (это очень важный слайд)
Программы сами себя не  напишут (с). Проблемы: - где рванёт после коммита? совместимы ли коммиты с жизнью приложения? тестерам постоянно нужна новая жертва как-то это все затягивается....
CI  - введение Непрерывная интеграция  ( Continuous Integration ( CI ) ) –  практика разработки ПО, когда все члены команды интегрируют результаты своей работы  с некоторой частотой , обычно каждый участник интегрирует хотя бы раз в день, что приводит ко множетвенным интеграциям в течение дня. Вы хочите ссылок? Их есть у меня! http://en.wikipedia.org/wiki/Continuous_Integration http://www.martinfowler.com/articles/continuousIntegration.html
CI  с иллюстрациями
В итоге: В итоге: «Безопасность» изменений Работоспособность приложения после изменений Свежий билд для работы ??? Экономия времени
Как же без  Selenium?
Code Coverage
Unit Tests
JMeter Вопрос   залу: На сколько процентов  JMeter  лучше, чем ничего? Ответ: Как минимум в 2 раза больше. Функциональное тестирование  RESTful  интерфейса +   Легко создавать тесты +   Навыков программирования не нужно - Тесты неуклюжие
Внезапно... DSL
Ходят слухи, что  DSL ... http://code.google.com/p/selenium/wiki/GettingStarted Это – не  DSL
DSL Предметно-ориентированный язык программирования  (англ.  domain-specific programming language, domain-specific language, DSL ) — язык программирования, специально разработанный для решения определённого круга задач, в отличие от  языков программирования общего назначения , таких, как Си, или  языков моделирования общего назначения  наподобие UML, PostScript, SQL и др.  http://ru.wikipedia.org/wiki/Предметно-ориентированный_язык_программирования
DSL – JMeter Lang
PolePosition
Пожалуй хватит. Спасибо за внимание! Сергей Андреев,  JetBrains [email_address]   [email_address]

CodeFest 2011. Андреев C. — Эффективные методики автоматизированного тестирования в условиях непрерывной интеграции

  • 1.
    Эффективные методики автоматизированноготестирования в условиях непрерывной интеграции Сергей Андреев, JetBrains
  • 2.
    О себе (этоочень важный слайд)
  • 3.
    Программы сами себяне напишут (с). Проблемы: - где рванёт после коммита? совместимы ли коммиты с жизнью приложения? тестерам постоянно нужна новая жертва как-то это все затягивается....
  • 4.
    CI -введение Непрерывная интеграция ( Continuous Integration ( CI ) ) – практика разработки ПО, когда все члены команды интегрируют результаты своей работы с некоторой частотой , обычно каждый участник интегрирует хотя бы раз в день, что приводит ко множетвенным интеграциям в течение дня. Вы хочите ссылок? Их есть у меня! http://en.wikipedia.org/wiki/Continuous_Integration http://www.martinfowler.com/articles/continuousIntegration.html
  • 5.
    CI силлюстрациями
  • 6.
    В итоге: Витоге: «Безопасность» изменений Работоспособность приложения после изменений Свежий билд для работы ??? Экономия времени
  • 7.
  • 8.
  • 9.
  • 10.
    JMeter Вопрос залу: На сколько процентов JMeter лучше, чем ничего? Ответ: Как минимум в 2 раза больше. Функциональное тестирование RESTful интерфейса + Легко создавать тесты + Навыков программирования не нужно - Тесты неуклюжие
  • 11.
  • 12.
    Ходят слухи, что DSL ... http://code.google.com/p/selenium/wiki/GettingStarted Это – не DSL
  • 13.
    DSL Предметно-ориентированный языкпрограммирования (англ.  domain-specific programming language, domain-specific language, DSL ) — язык программирования, специально разработанный для решения определённого круга задач, в отличие от языков программирования общего назначения , таких, как Си, или языков моделирования общего назначения наподобие UML, PostScript, SQL и др. http://ru.wikipedia.org/wiki/Предметно-ориентированный_язык_программирования
  • 14.
  • 15.
  • 16.
    Пожалуй хватит. Спасибоза внимание! Сергей Андреев, JetBrains [email_address] [email_address]

Editor's Notes

  • #4 Программы сами себя не напишут, особенно хорошие, их всё-таки пишут люди. Инфа - 100% Когда пишущих людей много начинаются проблемы где рванёт после коммита? – Функциональное тестирование совместимы ли коммиты с жизнью приложения? – собирается ли вообще? тестерам постоянно нужна новая жертва – свежий билд как-то это все затягивается....
  • #5 Согласно интернетам впервые об этом вслух заговорили Мартин Фаулер и Кент Бек ещё в прошлом веке. ( Extreme Programming Explained. 1999.) Сам Фаулер описывает свои ощущения так: Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day.
  • #6 Continuous integration процесс состоит из нескольких этапов, некоторые из которых обязательны, другие нет: Срабатывает триггер (Происходит некоторое событие) – коммит, таймер Сервер выбирает подходящего агента (требования к агенту можно задавать) и отправляет ему задание Агент скачивает исходный код и билд-скрипты, происходит сборка, тестирование Результаты и артефакты этой деятельности передаются обратно серверу Сервер сохраняет у себя артефакты (готовые билды, статистику, скриншоты, логи и т.п.) и отправляет уведомления о результатах Добавления: code-analyze : статический анализ кода, code style-guides , вычислени метрик Application deployment – если хочется / или нужно 3) Command from comment – TC and YT integration 4) Pretested commit – TC feature. Кнопка «Сделать прикольно»
  • #8 Selenium RC server Selenium Grid Агент должен запускает у себя собранный билд, Он должен знать где Selenium Grid Hub, отдать имя своего хоста, и желаемый браузер 4) Параметры можно задать через web- интерфейс
  • #9 Class; Method; Blocks: Line 1) Overall 2) By Packages 3) Per each Package 4) Per each Class in Package Для чего нужен – посмотреть куда вы не стреляете вообще.
  • #10 Время сборки Время нахождения в очереди заявки на сборку Соотношение Забитых к пропущенным Как долго жили мертвые тесты Code Coverage
  • #16 Вообще это г. Мухсаранск, но девелопер описАлся. Это трасса специально создана – в ней много конкурентных запросов из оазных тредов Driver – DB Трасса – оперцаии над базой