34
XP FUN Сергей Калинец @skalinets

Xp fun

Embed Size (px)

DESCRIPTION

Слайды с моего доклада на XP days 2013

Citation preview

Page 1: Xp fun

XP FUN Сергей Калинец@skalinets

Page 2: Xp fun

ОБО МНЕ

.NET разработчик

Архитектор в Universal Mind

Тренер по XP практикам

Page 3: Xp fun

О ЧЕМ БУДЕМ ГОВОРИТЬ

Развлечения разработчиков

XP практики

Функциональщина

Page 4: Xp fun
Page 5: Xp fun

ДОБАВЛЯЕМ FUNCTIONAL…

Page 6: Xp fun
Page 7: Xp fun

АВТОМАТИЗАЦИЯ СБОРКИ

Fake (F# Make)

Page 8: Xp fun

ЗАДАЧИ

Сборка

Запуск тестов

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

Создание артефактов

Настройка окружения

Page 9: Xp fun

ДАЖЕ ЕСЛИ ЕСТЬ РЕЛИЗ ИНЖЕНЕР…

Page 10: Xp fun

РЕЛИЗ ИНЖЕНЕРА МОЖЕТНЕ БЫТЬ НА МЕСТЕ

Page 11: Xp fun

ЗАДАЧИ МОГУТ БЫТЬЛОКАЛЬНЫМИ

Page 12: Xp fun

ЭТО МОЖЕТЬ БЫТЬ ИНТЕРЕСНЫМ

Page 13: Xp fun

АВТОМАТИЗАЦИЯ СБОРКИ: ТЕКУЩЕЕ ПОЛОЖЕНИЕ

XML

ant

maven

nant

msbuild

tfs

#AKE

nmake

rake

jake

psake

fake

Page 14: Xp fun

ЧЕМ ПЛОХ XML

Многобуков

Сложно разрешать конфликты версий сценария

Сложно реализовать что-то неподдерживаемое изначально

Проблемы с императивными конструкциями (вроде циклов)

Page 15: Xp fun

ПОЧЕМУ FAKE

Удобный синтаксис

Поддержка всех основных операций

Деплоймент из коробки

Все возможности .NET

Page 16: Xp fun

ОПРЕДЕЛЕНИЕ ШАГОВ И ЗАВИСИМОСТЕЙ

Page 17: Xp fun

РАБОТА С ФАЙЛАМИ

Page 18: Xp fun

ЗАПУСК ТЕСТОВ

Page 19: Xp fun

FAKE.DEPLOY

Локальное и удалённое развертывание приложений

Использует Nuget, как единицу развертывания

HTTP / REST API

Page 20: Xp fun

АВТОМАТИЗИРУЕМ ВЕБ ТЕСТИРОВАНИЕ

canopy

Page 21: Xp fun

ЗАЧЕМ?

Выполняемые спецификации

Однозначное определение критериев готовности

Сценарии понятны и бизнесу и разработчикам

Экономия времени на воспроизведении и проверке

Page 22: Xp fun

ЛОНДОНСКАЯ ШКОЛА TDD

1. Спецификация

2. Выполняемый скрипт проверки спецификации

3. Модульные тесты на реализацию

Page 23: Xp fun

ЗАЧЕМ CANOPY?

Опять же – полный набор возможностей F# и .NET

Синтаксис, понятный не только автоматизаторам, но и бизнесу и пользователям

Page 24: Xp fun

ТЕСТКЕЙС

Open url http://lefthandedgoat.github.io/canopy/demo/amir.html

Enter “Minnie” as First Name

Select Female Gender

Click “Continue”

Verify that First Name is “Minnie”

Page 25: Xp fun

ТЕСТКЕЙС НА CANOPY

Page 26: Xp fun

И ОПЯТЬ ОБЫЧНЫЙ ТЕКСТ

Open url http://lefthandedgoat.github.io/canopy/demo/amir.html

Enter “Minnie” as First Name

Select Female Gender

Click “Continue”

Verify that First Name is “Minnie”

Page 27: Xp fun

КЛЮЧЕВЫЕ ВОЗМОЖНОСТИ CANOPY

Page 28: Xp fun

ЗАПУСК НЕСКОЛЬКИХ БРАУЗЕРОВ

start firefox

let mainBrowser = browser

start chrome

let secondBrowser = browser

switchTo mainBrowser

Page 29: Xp fun

КЛИКИ МЫШКОЙ

click "#login"

click "Login"

click (element "#login")

Page 30: Xp fun

ЗАПОЛНЕНИЕ ЗНАЧЕНИЙ

"#firstName" << "Alex"

"First Name" << "Alex"

clear "First Name"

Page 31: Xp fun

ПРОВЕРКА

"#firstName" == "Alex"

"#firstName" != "Tom"

".todoItem" *= "Buy milk“ // хотя бы один элемент равен

".todoItem" *!= "Buy milk“

"#lastName" =~ "Gr[ae]y" // regexp

displayed "#errorMessage"

Page 32: Xp fun

REPORTERS

Console, Teamcity, HTML, Coverage

open configuration

open reporters

reporter <- new LiveHtmlReporter() :> IReporter

Page 33: Xp fun

ПОДВЕДЕНИЕ ИТОГОВ

Всегда есть что улучшить на наших проектах

Это заняние можно и нужно сделать интересным

Нужно пробовать новые подходы и языки

Page 34: Xp fun

СПАСИБО! @skalinets