SlideShare a Scribd company logo
TDD in iOS
Самвел Меджлумян
О чём поговорим
Что есть хорошая архитектура
Что есть TDD
Чем TDD полезен при проектировании
Какие преимущества и недостатки
Демо
Компромисс и ссылки
Признаки хорошей архитектуры
Тестируемость
Низкая стоимость обслуживания
Распределение обязанностей
TDD
Целесообразность
Быть уверенным в том, что код работает
Легко изменять код
Убедиться, что код в правильном месте
Хорошая архитектура + TDD = ❤
Распределение обязанностей – правильное расположение кода
Тестируемость – убеждённость, что код работает
Простота поддержки – легкое изменение кода
Демо
Преимущества
Продумывание интерфейса
Меньше отладки
Меньше ошибок
Уверенность при изменении кода
Снижение стоимости обслуживания в перспективе
Документация тестами
Недостатки
Много времени
Больше кода
Что дальше
• https://medium.com/@ynzc/getting-started-with-tdd-in-
swift-2fab3e07204b#.fcj8gw86x
• https://habrahabr.ru/company/rambler-co/blog/263087
• https://www.andrewcbancroft.com/2014/12/10/dont-write-
legacy-swift/
• http://www.labirint.ru/books/232091/
vk.com/s.mejl

More Related Content

What's hot

Selenium camp 2013
Selenium camp 2013Selenium camp 2013
Selenium camp 2013
ivan816
 
2014.12.06 02 Екатерина Боброва — Тестируем сложные backend-ы
2014.12.06 02 Екатерина Боброва — Тестируем сложные backend-ы2014.12.06 02 Екатерина Боброва — Тестируем сложные backend-ы
2014.12.06 02 Екатерина Боброва — Тестируем сложные backend-ы
HappyDev
 
А. Ахметов "Когда тесты пишут разработчики", DUMP-2014
А. Ахметов "Когда тесты пишут разработчики", DUMP-2014А. Ахметов "Когда тесты пишут разработчики", DUMP-2014
А. Ахметов "Когда тесты пишут разработчики", DUMP-2014it-people
 
Xp days ukraine
Xp days ukraineXp days ukraine
Xp days ukraineivan816
 
IT Brunch - Backendless
IT Brunch - BackendlessIT Brunch - Backendless
IT Brunch - Backendless
backendless
 
Управление клиентом
Управление клиентомУправление клиентом
Управление клиентом
Tachat Igityan
 
WebCamp:Front-end Developers Day. Сергей Селецкий "Как писать код лучше, испо...
WebCamp:Front-end Developers Day. Сергей Селецкий "Как писать код лучше, испо...WebCamp:Front-end Developers Day. Сергей Селецкий "Как писать код лучше, испо...
WebCamp:Front-end Developers Day. Сергей Селецкий "Как писать код лучше, испо...
GeeksLab Odessa
 
Как превратить User Story в историю успеха
Как превратить User Story в историю успехаКак превратить User Story в историю успеха
Как превратить User Story в историю успеха
DataArt
 
PHP micro-frameworks (PHP микрофреймворки)
PHP micro-frameworks (PHP микрофреймворки)PHP micro-frameworks (PHP микрофреймворки)
PHP micro-frameworks (PHP микрофреймворки)
Bohdan Vorona
 
Наш путь от 90 до 6500 тестов / Иван Медведев (СКБ Контур)
Наш путь от 90 до 6500 тестов / Иван Медведев (СКБ Контур)Наш путь от 90 до 6500 тестов / Иван Медведев (СКБ Контур)
Наш путь от 90 до 6500 тестов / Иван Медведев (СКБ Контур)Ontico
 
Менеджмент WordPress проектів або як вибрати потрібний шлях
Менеджмент WordPress проектів або як вибрати потрібний шляхМенеджмент WordPress проектів або як вибрати потрібний шлях
Менеджмент WordPress проектів або як вибрати потрібний шлях
Shtrih Sruleg
 
Павел Шут — БЭМ в lean startup'e
Павел Шут — БЭМ в lean startup'eПавел Шут — БЭМ в lean startup'e
Павел Шут — БЭМ в lean startup'e
Yandex
 
Денис Тучин - Пользовательские истории и критерии приёмки (Agile Kitchen 2017...
Денис Тучин - Пользовательские истории и критерии приёмки (Agile Kitchen 2017...Денис Тучин - Пользовательские истории и критерии приёмки (Agile Kitchen 2017...
Денис Тучин - Пользовательские истории и критерии приёмки (Agile Kitchen 2017...
Denis Tuchin
 
Денис Тучин - Пользовательские истории в Agile-проектах
Денис Тучин - Пользовательские истории в Agile-проектахДенис Тучин - Пользовательские истории в Agile-проектах
Денис Тучин - Пользовательские истории в Agile-проектах
Denis Tuchin
 
Big Boss
Big BossBig Boss
Профессиональное управление распределенными проектами
Профессиональное управление распределенными проектамиПрофессиональное управление распределенными проектами
Профессиональное управление распределенными проектами
Evgeny Savitsky
 
Test Driven Development in ASP.NET MVC 3
Test Driven Development in ASP.NET MVC 3Test Driven Development in ASP.NET MVC 3
Test Driven Development in ASP.NET MVC 3Anton Vidishchev
 
Евгений Джамалов. Agile в условиях мульти-вендорности и распределённых команд.
Евгений Джамалов. Agile в условиях мульти-вендорности и распределённых команд.Евгений Джамалов. Agile в условиях мульти-вендорности и распределённых команд.
Евгений Джамалов. Agile в условиях мульти-вендорности и распределённых команд.
ScrumTrek
 
Советы для успешной автоматизации тестирования веб-приложений
Советы для успешной автоматизации тестирования веб-приложенийСоветы для успешной автоматизации тестирования веб-приложений
Советы для успешной автоматизации тестирования веб-приложенийMairbek Khadikov
 
Php micro frameworks
Php micro frameworksPhp micro frameworks
Php micro frameworks
Sumy PHP User Grpoup
 

What's hot (20)

Selenium camp 2013
Selenium camp 2013Selenium camp 2013
Selenium camp 2013
 
2014.12.06 02 Екатерина Боброва — Тестируем сложные backend-ы
2014.12.06 02 Екатерина Боброва — Тестируем сложные backend-ы2014.12.06 02 Екатерина Боброва — Тестируем сложные backend-ы
2014.12.06 02 Екатерина Боброва — Тестируем сложные backend-ы
 
А. Ахметов "Когда тесты пишут разработчики", DUMP-2014
А. Ахметов "Когда тесты пишут разработчики", DUMP-2014А. Ахметов "Когда тесты пишут разработчики", DUMP-2014
А. Ахметов "Когда тесты пишут разработчики", DUMP-2014
 
Xp days ukraine
Xp days ukraineXp days ukraine
Xp days ukraine
 
IT Brunch - Backendless
IT Brunch - BackendlessIT Brunch - Backendless
IT Brunch - Backendless
 
Управление клиентом
Управление клиентомУправление клиентом
Управление клиентом
 
WebCamp:Front-end Developers Day. Сергей Селецкий "Как писать код лучше, испо...
WebCamp:Front-end Developers Day. Сергей Селецкий "Как писать код лучше, испо...WebCamp:Front-end Developers Day. Сергей Селецкий "Как писать код лучше, испо...
WebCamp:Front-end Developers Day. Сергей Селецкий "Как писать код лучше, испо...
 
Как превратить User Story в историю успеха
Как превратить User Story в историю успехаКак превратить User Story в историю успеха
Как превратить User Story в историю успеха
 
PHP micro-frameworks (PHP микрофреймворки)
PHP micro-frameworks (PHP микрофреймворки)PHP micro-frameworks (PHP микрофреймворки)
PHP micro-frameworks (PHP микрофреймворки)
 
Наш путь от 90 до 6500 тестов / Иван Медведев (СКБ Контур)
Наш путь от 90 до 6500 тестов / Иван Медведев (СКБ Контур)Наш путь от 90 до 6500 тестов / Иван Медведев (СКБ Контур)
Наш путь от 90 до 6500 тестов / Иван Медведев (СКБ Контур)
 
Менеджмент WordPress проектів або як вибрати потрібний шлях
Менеджмент WordPress проектів або як вибрати потрібний шляхМенеджмент WordPress проектів або як вибрати потрібний шлях
Менеджмент WordPress проектів або як вибрати потрібний шлях
 
Павел Шут — БЭМ в lean startup'e
Павел Шут — БЭМ в lean startup'eПавел Шут — БЭМ в lean startup'e
Павел Шут — БЭМ в lean startup'e
 
Денис Тучин - Пользовательские истории и критерии приёмки (Agile Kitchen 2017...
Денис Тучин - Пользовательские истории и критерии приёмки (Agile Kitchen 2017...Денис Тучин - Пользовательские истории и критерии приёмки (Agile Kitchen 2017...
Денис Тучин - Пользовательские истории и критерии приёмки (Agile Kitchen 2017...
 
Денис Тучин - Пользовательские истории в Agile-проектах
Денис Тучин - Пользовательские истории в Agile-проектахДенис Тучин - Пользовательские истории в Agile-проектах
Денис Тучин - Пользовательские истории в Agile-проектах
 
Big Boss
Big BossBig Boss
Big Boss
 
Профессиональное управление распределенными проектами
Профессиональное управление распределенными проектамиПрофессиональное управление распределенными проектами
Профессиональное управление распределенными проектами
 
Test Driven Development in ASP.NET MVC 3
Test Driven Development in ASP.NET MVC 3Test Driven Development in ASP.NET MVC 3
Test Driven Development in ASP.NET MVC 3
 
Евгений Джамалов. Agile в условиях мульти-вендорности и распределённых команд.
Евгений Джамалов. Agile в условиях мульти-вендорности и распределённых команд.Евгений Джамалов. Agile в условиях мульти-вендорности и распределённых команд.
Евгений Джамалов. Agile в условиях мульти-вендорности и распределённых команд.
 
Советы для успешной автоматизации тестирования веб-приложений
Советы для успешной автоматизации тестирования веб-приложенийСоветы для успешной автоматизации тестирования веб-приложений
Советы для успешной автоматизации тестирования веб-приложений
 
Php micro frameworks
Php micro frameworksPhp micro frameworks
Php micro frameworks
 

Viewers also liked

Workflow in app dev companies
Workflow in app dev companiesWorkflow in app dev companies
Workflow in app dev companies
Alex Nilinad
 
Оценка трудоемкости задач
Оценка трудоемкости задачОценка трудоемкости задач
Оценка трудоемкости задач
Zorin Danny
 
Как начать карьеру в удаленной работе
Как начать карьеру в удаленной работеКак начать карьеру в удаленной работе
Как начать карьеру в удаленной работе
Alina Mikhaylova
 
Concurrent Programming in iOS
Concurrent Programming in iOSConcurrent Programming in iOS
Concurrent Programming in iOS
Sam Mejlumyan
 
iOS Dev Moscow: Как получать заказы по рекомендациям
iOS Dev Moscow: Как получать заказы по рекомендациямiOS Dev Moscow: Как получать заказы по рекомендациям
iOS Dev Moscow: Как получать заказы по рекомендациям
Alina Mikhaylova
 
Как пройти собеседование и получить первую работу на Swift
Как пройти собеседование и получить первую работу на SwiftКак пройти собеседование и получить первую работу на Swift
Как пройти собеседование и получить первую работу на Swift
Anton Loginov
 
The MVC Renaissance | Возрождение MVC
The MVC Renaissance | Возрождение MVCThe MVC Renaissance | Возрождение MVC
The MVC Renaissance | Возрождение MVC
Bulat Khabirov
 

Viewers also liked (7)

Workflow in app dev companies
Workflow in app dev companiesWorkflow in app dev companies
Workflow in app dev companies
 
Оценка трудоемкости задач
Оценка трудоемкости задачОценка трудоемкости задач
Оценка трудоемкости задач
 
Как начать карьеру в удаленной работе
Как начать карьеру в удаленной работеКак начать карьеру в удаленной работе
Как начать карьеру в удаленной работе
 
Concurrent Programming in iOS
Concurrent Programming in iOSConcurrent Programming in iOS
Concurrent Programming in iOS
 
iOS Dev Moscow: Как получать заказы по рекомендациям
iOS Dev Moscow: Как получать заказы по рекомендациямiOS Dev Moscow: Как получать заказы по рекомендациям
iOS Dev Moscow: Как получать заказы по рекомендациям
 
Как пройти собеседование и получить первую работу на Swift
Как пройти собеседование и получить первую работу на SwiftКак пройти собеседование и получить первую работу на Swift
Как пройти собеседование и получить первую работу на Swift
 
The MVC Renaissance | Возрождение MVC
The MVC Renaissance | Возрождение MVCThe MVC Renaissance | Возрождение MVC
The MVC Renaissance | Возрождение MVC
 

Similar to Introduction in TDD

SCRUMopen Developer Max Kolodezniy
SCRUMopen Developer Max KolodezniySCRUMopen Developer Max Kolodezniy
SCRUMopen Developer Max Kolodezniy
Alexey Krivitsky
 
Повышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документацииПовышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документации
CEE-SEC(R)
 
Keyword driven testing
Keyword driven testingKeyword driven testing
Keyword driven testing
automated-testing.info
 
DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...
DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...
DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...
DevOps_Fest
 
Код-ревью в Drupal
Код-ревью в DrupalКод-ревью в Drupal
Код-ревью в DrupalShvetsGroup
 
Рефакторинг
РефакторингРефакторинг
Рефакторинг
SmartStepGroup
 
kranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDDkranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDDKrivoy Rog IT Community
 
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...
GoSharp
 
Bdd with java using concordion and selenium ui tests
Bdd with java using concordion and selenium ui testsBdd with java using concordion and selenium ui tests
Bdd with java using concordion and selenium ui testsautomated-testing.info
 
Things To Unlearn In Software Development
Things To Unlearn In Software DevelopmentThings To Unlearn In Software Development
Things To Unlearn In Software Development
Alexey Krivitsky
 
Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Dima Dzuba
 
Microsoft: Миграция как возможность для трансформации ИТ
Microsoft: Миграция как возможность для трансформации ИТMicrosoft: Миграция как возможность для трансформации ИТ
Microsoft: Миграция как возможность для трансформации ИТ
Dell_Russia
 
Software craftsmanship 8
Software craftsmanship 8Software craftsmanship 8
Software craftsmanship 8
Pavel Veinik
 
MSDevCon 2016 DevOps Impact on Architecture
MSDevCon 2016 DevOps Impact on ArchitectureMSDevCon 2016 DevOps Impact on Architecture
MSDevCon 2016 DevOps Impact on Architecture
Sergey Baranov
 
Слайдкаст. Stratoplan Kharkov. Методологический паззл.
Слайдкаст. Stratoplan Kharkov. Методологический паззл.Слайдкаст. Stratoplan Kharkov. Методологический паззл.
Слайдкаст. Stratoplan Kharkov. Методологический паззл.Sergiy Povolyashko
 
Test Driven Development in .NET Applications
Test Driven Development in .NET ApplicationsTest Driven Development in .NET Applications
Test Driven Development in .NET ApplicationsAnton Vidishchev
 
Частное облако для CIO и CxO
Частное облако для CIO и CxOЧастное облако для CIO и CxO
Частное облако для CIO и CxO
Michael Kozloff
 
Developmentmanage3.0
Developmentmanage3.0Developmentmanage3.0
Developmentmanage3.0WRider
 
TDD
TDDTDD
Архитектурные решения при создании облачного сервиса на Asp.Net
Архитектурные решения при создании облачного сервиса на Asp.NetАрхитектурные решения при создании облачного сервиса на Asp.Net
Архитектурные решения при создании облачного сервиса на Asp.Net
GoSharp
 

Similar to Introduction in TDD (20)

SCRUMopen Developer Max Kolodezniy
SCRUMopen Developer Max KolodezniySCRUMopen Developer Max Kolodezniy
SCRUMopen Developer Max Kolodezniy
 
Повышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документацииПовышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документации
 
Keyword driven testing
Keyword driven testingKeyword driven testing
Keyword driven testing
 
DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...
DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...
DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...
 
Код-ревью в Drupal
Код-ревью в DrupalКод-ревью в Drupal
Код-ревью в Drupal
 
Рефакторинг
РефакторингРефакторинг
Рефакторинг
 
kranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDDkranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDD
 
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...
 
Bdd with java using concordion and selenium ui tests
Bdd with java using concordion and selenium ui testsBdd with java using concordion and selenium ui tests
Bdd with java using concordion and selenium ui tests
 
Things To Unlearn In Software Development
Things To Unlearn In Software DevelopmentThings To Unlearn In Software Development
Things To Unlearn In Software Development
 
Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4
 
Microsoft: Миграция как возможность для трансформации ИТ
Microsoft: Миграция как возможность для трансформации ИТMicrosoft: Миграция как возможность для трансформации ИТ
Microsoft: Миграция как возможность для трансформации ИТ
 
Software craftsmanship 8
Software craftsmanship 8Software craftsmanship 8
Software craftsmanship 8
 
MSDevCon 2016 DevOps Impact on Architecture
MSDevCon 2016 DevOps Impact on ArchitectureMSDevCon 2016 DevOps Impact on Architecture
MSDevCon 2016 DevOps Impact on Architecture
 
Слайдкаст. Stratoplan Kharkov. Методологический паззл.
Слайдкаст. Stratoplan Kharkov. Методологический паззл.Слайдкаст. Stratoplan Kharkov. Методологический паззл.
Слайдкаст. Stratoplan Kharkov. Методологический паззл.
 
Test Driven Development in .NET Applications
Test Driven Development in .NET ApplicationsTest Driven Development in .NET Applications
Test Driven Development in .NET Applications
 
Частное облако для CIO и CxO
Частное облако для CIO и CxOЧастное облако для CIO и CxO
Частное облако для CIO и CxO
 
Developmentmanage3.0
Developmentmanage3.0Developmentmanage3.0
Developmentmanage3.0
 
TDD
TDDTDD
TDD
 
Архитектурные решения при создании облачного сервиса на Asp.Net
Архитектурные решения при создании облачного сервиса на Asp.NetАрхитектурные решения при создании облачного сервиса на Asp.Net
Архитектурные решения при создании облачного сервиса на Asp.Net
 

Introduction in TDD