SlideShare a Scribd company logo
1 of 14
Download to read offline
Автоматизированное
тестирование iOS
приложений
(TDD)
Пешков Анатолий
"Buy Me a Pie"
TDD
Разработка через тестирование (англ. test-driven
development, TDD)
Автоматизированное
тестирование
● Модульное тестирование (Unit Testing)
○ OCUnit (встроен в Xcode)
○ GHUnit
○ Cedar
○ Kiwi
○ ...
● Тестирование интерфейса
○ Calabash-iOS
○ Frank
Модульное тестирование (Unit
testing)
Цель модульного тестирования —
изолировать отдельные части программы и показать,
что по отдельности эти части работоспособны.
Плюшки:
1. Поощрение изменений
2. Упрощение интеграции
3. Документирование кода
4. Отделение интерфейса от реализации
Заводим тесты в Xcode
Заводим тесты в Xcode
Запуск тестов в Xcode
OCUnit vs Kiwi
Реальный пример
Нюанс
Виды unit-тестов в Xcode:
● Application Unit Tests
Тесты знают о приложении, запускаются после приложения в его
окружении
● Logic Unit Tests
Тесты знают только о тех файлах (классах), которые мы сами им
укажем. Запускаются вне окружения приложения - изолированно
Заводим Logic Tests
Заводим Logic Tests
Тестирование интерфейса
Calabash-iOS и Frank
Позволят делать такое:
When I fill in "Title" with "FuuBar"
And I touch "Save" button
Then I should see alert view titled "Saved
successully"
The End
Зеленых вам тестов

More Related Content

What's hot

Introduction into Test Driven Development
Introduction into Test Driven DevelopmentIntroduction into Test Driven Development
Introduction into Test Driven DevelopmentIvan Dyachenko
 
Роман Петров - юнит-тестирование мобильных приложений на примере платформы iOS
Роман Петров - юнит-тестирование мобильных приложений на примере платформы iOSРоман Петров - юнит-тестирование мобильных приложений на примере платформы iOS
Роман Петров - юнит-тестирование мобильных приложений на примере платформы iOSProvectus
 
Стратегия тестирования крупного проекта в условиях Agile разработки v2
Стратегия тестирования крупного проекта в условиях Agile разработки v2Стратегия тестирования крупного проекта в условиях Agile разработки v2
Стратегия тестирования крупного проекта в условиях Agile разработки v2Magneta AI
 
2012-01-05 02 Юлия Миттова. Автоматизированное тестирование под Android
2012-01-05 02 Юлия Миттова. Автоматизированное тестирование под Android2012-01-05 02 Юлия Миттова. Автоматизированное тестирование под Android
2012-01-05 02 Юлия Миттова. Автоматизированное тестирование под AndroidОмские ИТ-субботники
 
Модульное тестирование и TDD в .NET
Модульное тестирование и TDD в .NETМодульное тестирование и TDD в .NET
Модульное тестирование и TDD в .NETAlexander Byndyu
 
юнит тестирование Fork
юнит тестирование Forkюнит тестирование Fork
юнит тестирование ForkSergey Oreshkov
 
Тестируй как PRO, или учим тесты быть умнее шпаргалка
Тестируй как PRO, или учим тесты быть умнее шпаргалкаТестируй как PRO, или учим тесты быть умнее шпаргалка
Тестируй как PRO, или учим тесты быть умнее шпаргалкаssuser2062cc
 
Зачем авто-тесты нам нужны?
Зачем авто-тесты нам нужны?Зачем авто-тесты нам нужны?
Зачем авто-тесты нам нужны?Vitebsk Miniq
 
Automated tests ci
Automated tests ci Automated tests ci
Automated tests ci COMAQA.BY
 
XP.Party (iOS) - unit tests frameworks overview
XP.Party (iOS) - unit tests frameworks overviewXP.Party (iOS) - unit tests frameworks overview
XP.Party (iOS) - unit tests frameworks overviewAnton Katkov
 
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовНепрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовCOMAQA.BY
 
Robot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатораRobot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатораSQALab
 
Держим дизайн системы под контролем, используя изолированное юнит-тестировани...
Держим дизайн системы под контролем, используя изолированное юнит-тестировани...Держим дизайн системы под контролем, используя изолированное юнит-тестировани...
Держим дизайн системы под контролем, используя изолированное юнит-тестировани...Ontico
 
Инструменты автоматизации тестирования мобильных приложений. Сравнительный ан...
Инструменты автоматизации тестирования мобильных приложений. Сравнительный ан...Инструменты автоматизации тестирования мобильных приложений. Сравнительный ан...
Инструменты автоматизации тестирования мобильных приложений. Сравнительный ан...ISsoft
 
управление сборками и развертыванием веб приложений
управление сборками и развертыванием веб приложенийуправление сборками и развертыванием веб приложений
управление сборками и развертыванием веб приложенийSergii Shmarkatiuk
 
Что такое Robot Framework?
Что такое Robot Framework?Что такое Robot Framework?
Что такое Robot Framework?Mykhailo Poliarush
 

What's hot (19)

Introduction into Test Driven Development
Introduction into Test Driven DevelopmentIntroduction into Test Driven Development
Introduction into Test Driven Development
 
Роман Петров - юнит-тестирование мобильных приложений на примере платформы iOS
Роман Петров - юнит-тестирование мобильных приложений на примере платформы iOSРоман Петров - юнит-тестирование мобильных приложений на примере платформы iOS
Роман Петров - юнит-тестирование мобильных приложений на примере платформы iOS
 
Стратегия тестирования крупного проекта в условиях Agile разработки v2
Стратегия тестирования крупного проекта в условиях Agile разработки v2Стратегия тестирования крупного проекта в условиях Agile разработки v2
Стратегия тестирования крупного проекта в условиях Agile разработки v2
 
2012-01-05 02 Юлия Миттова. Автоматизированное тестирование под Android
2012-01-05 02 Юлия Миттова. Автоматизированное тестирование под Android2012-01-05 02 Юлия Миттова. Автоматизированное тестирование под Android
2012-01-05 02 Юлия Миттова. Автоматизированное тестирование под Android
 
Модульное тестирование и TDD в .NET
Модульное тестирование и TDD в .NETМодульное тестирование и TDD в .NET
Модульное тестирование и TDD в .NET
 
юнит тестирование Fork
юнит тестирование Forkюнит тестирование Fork
юнит тестирование Fork
 
Dotnet
DotnetDotnet
Dotnet
 
Тестируй как PRO, или учим тесты быть умнее шпаргалка
Тестируй как PRO, или учим тесты быть умнее шпаргалкаТестируй как PRO, или учим тесты быть умнее шпаргалка
Тестируй как PRO, или учим тесты быть умнее шпаргалка
 
Зачем авто-тесты нам нужны?
Зачем авто-тесты нам нужны?Зачем авто-тесты нам нужны?
Зачем авто-тесты нам нужны?
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
Automated tests ci
Automated tests ci Automated tests ci
Automated tests ci
 
XP.Party (iOS) - unit tests frameworks overview
XP.Party (iOS) - unit tests frameworks overviewXP.Party (iOS) - unit tests frameworks overview
XP.Party (iOS) - unit tests frameworks overview
 
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовНепрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
 
Robot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатораRobot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатора
 
Держим дизайн системы под контролем, используя изолированное юнит-тестировани...
Держим дизайн системы под контролем, используя изолированное юнит-тестировани...Держим дизайн системы под контролем, используя изолированное юнит-тестировани...
Держим дизайн системы под контролем, используя изолированное юнит-тестировани...
 
Solid code via tdd
Solid code via tddSolid code via tdd
Solid code via tdd
 
Инструменты автоматизации тестирования мобильных приложений. Сравнительный ан...
Инструменты автоматизации тестирования мобильных приложений. Сравнительный ан...Инструменты автоматизации тестирования мобильных приложений. Сравнительный ан...
Инструменты автоматизации тестирования мобильных приложений. Сравнительный ан...
 
управление сборками и развертыванием веб приложений
управление сборками и развертыванием веб приложенийуправление сборками и развертыванием веб приложений
управление сборками и развертыванием веб приложений
 
Что такое Robot Framework?
Что такое Robot Framework?Что такое Robot Framework?
Что такое Robot Framework?
 

Viewers also liked

Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Yandex
 
JUnit 5 - The Next Generation of JUnit - Ted's Tool Time
JUnit 5 - The Next Generation of JUnit - Ted's Tool TimeJUnit 5 - The Next Generation of JUnit - Ted's Tool Time
JUnit 5 - The Next Generation of JUnit - Ted's Tool TimeTed Vinke
 
Donate Life
Donate LifeDonate Life
Donate Lifezmss45
 
CIMA Stakeholder Presentation for Rui
CIMA Stakeholder Presentation for RuiCIMA Stakeholder Presentation for Rui
CIMA Stakeholder Presentation for Ruijakecassels
 
聞こえないって、どんなこと?
聞こえないって、どんなこと?聞こえないって、どんなこと?
聞こえないって、どんなこと?Junko Kijima
 
Korte presentatie Henry's Photodesign.
Korte presentatie Henry's Photodesign.Korte presentatie Henry's Photodesign.
Korte presentatie Henry's Photodesign.vhbfoto
 
雲・証拠・道
雲・証拠・道雲・証拠・道
雲・証拠・道Junko Kijima
 
"Мультиполотенце или Kaspaikka"
"Мультиполотенце или Kaspaikka""Мультиполотенце или Kaspaikka"
"Мультиполотенце или Kaspaikka"rychkova
 
Geovon TECH621 Presentation
Geovon TECH621 PresentationGeovon TECH621 Presentation
Geovon TECH621 PresentationGeovon
 
Vhb Demo
Vhb DemoVhb Demo
Vhb Demovhbfoto
 
Professional Project
Professional ProjectProfessional Project
Professional Projectzmss45
 
Themed projects final
Themed projects   finalThemed projects   final
Themed projects finalTapan Gupta
 
Loyalty program
Loyalty program   Loyalty program
Loyalty program Tapan Gupta
 
Labour law practices at iocl
Labour law practices at ioclLabour law practices at iocl
Labour law practices at iocllibrastrikers
 
Move out of your comfort zone worksheets
Move out of your comfort zone worksheetsMove out of your comfort zone worksheets
Move out of your comfort zone worksheetsDWCNetwork
 

Viewers also liked (17)

Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"
 
JUnit 5 - The Next Generation of JUnit - Ted's Tool Time
JUnit 5 - The Next Generation of JUnit - Ted's Tool TimeJUnit 5 - The Next Generation of JUnit - Ted's Tool Time
JUnit 5 - The Next Generation of JUnit - Ted's Tool Time
 
Donate Life
Donate LifeDonate Life
Donate Life
 
CIMA Stakeholder Presentation for Rui
CIMA Stakeholder Presentation for RuiCIMA Stakeholder Presentation for Rui
CIMA Stakeholder Presentation for Rui
 
聞こえないって、どんなこと?
聞こえないって、どんなこと?聞こえないって、どんなこと?
聞こえないって、どんなこと?
 
Korte presentatie Henry's Photodesign.
Korte presentatie Henry's Photodesign.Korte presentatie Henry's Photodesign.
Korte presentatie Henry's Photodesign.
 
雲・証拠・道
雲・証拠・道雲・証拠・道
雲・証拠・道
 
"Мультиполотенце или Kaspaikka"
"Мультиполотенце или Kaspaikka""Мультиполотенце или Kaspaikka"
"Мультиполотенце или Kaspaikka"
 
Geovon TECH621 Presentation
Geovon TECH621 PresentationGeovon TECH621 Presentation
Geovon TECH621 Presentation
 
Vhb Demo
Vhb DemoVhb Demo
Vhb Demo
 
Professional Project
Professional ProjectProfessional Project
Professional Project
 
Themed projects final
Themed projects   finalThemed projects   final
Themed projects final
 
Loyalty program
Loyalty program   Loyalty program
Loyalty program
 
Labour law practices at iocl
Labour law practices at ioclLabour law practices at iocl
Labour law practices at iocl
 
Artropodes
ArtropodesArtropodes
Artropodes
 
Move out of your comfort zone worksheets
Move out of your comfort zone worksheetsMove out of your comfort zone worksheets
Move out of your comfort zone worksheets
 
Introduction to Florist Shop
Introduction to Florist ShopIntroduction to Florist Shop
Introduction to Florist Shop
 

Similar to Ttd in xcode

Unit testing and TDD
Unit testing and TDDUnit testing and TDD
Unit testing and TDDIosif Itkin
 
SECON'2017, Мухаметов Андрей, XCTest. UI и Unit тестирование для iOS.
SECON'2017, Мухаметов Андрей, XCTest. UI и Unit тестирование для iOS.SECON'2017, Мухаметов Андрей, XCTest. UI и Unit тестирование для iOS.
SECON'2017, Мухаметов Андрей, XCTest. UI и Unit тестирование для iOS.SECON
 
Тестирование ПО
Тестирование ПОТестирование ПО
Тестирование ПОseleznev_stas
 
Unity: "Очевидное-невероятное” или хитрости разработки на Unity Android
Unity: "Очевидное-невероятное” или хитрости разработки на Unity AndroidUnity: "Очевидное-невероятное” или хитрости разработки на Unity Android
Unity: "Очевидное-невероятное” или хитрости разработки на Unity AndroidDevGAMM Conference
 
Monkey Talk - кросс-платформенное средство автоматизации тестирования мобильн...
Monkey Talk - кросс-платформенное средство автоматизации тестирования мобильн...Monkey Talk - кросс-платформенное средство автоматизации тестирования мобильн...
Monkey Talk - кросс-платформенное средство автоматизации тестирования мобильн...SQALab
 
Владислав Акулич - Monkey Talk - кроссплатформенное средство автоматизации те...
Владислав Акулич - Monkey Talk - кроссплатформенное средство автоматизации те...Владислав Акулич - Monkey Talk - кроссплатформенное средство автоматизации те...
Владислав Акулич - Monkey Talk - кроссплатформенное средство автоматизации те...COMAQA.BY
 
[JAM 1.2] Testing in Android (Dzmitry Ivashnev)
[JAM 1.2] Testing in Android (Dzmitry Ivashnev)[JAM 1.2] Testing in Android (Dzmitry Ivashnev)
[JAM 1.2] Testing in Android (Dzmitry Ivashnev)Evgeny Kaziak
 
Антон Семенченко, Никита Беликов "Инструменты автоматизации тестирования моби...
Антон Семенченко, Никита Беликов "Инструменты автоматизации тестирования моби...Антон Семенченко, Никита Беликов "Инструменты автоматизации тестирования моби...
Антон Семенченко, Никита Беликов "Инструменты автоматизации тестирования моби...QA Club Minsk
 
Test driven development in net
Test driven development in netTest driven development in net
Test driven development in netAlex Tumanoff
 
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестированияCodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестированияCodeFest
 
Mobile automation with Appium
Mobile automation with AppiumMobile automation with Appium
Mobile automation with AppiumOksanaBisyuk
 
Успешный кейс использования React Native в продакшне, Евгений Федоров (LOOKBUCK)
Успешный кейс использования React Native в продакшне, Евгений Федоров (LOOKBUCK)Успешный кейс использования React Native в продакшне, Евгений Федоров (LOOKBUCK)
Успешный кейс использования React Native в продакшне, Евгений Федоров (LOOKBUCK)Ontico
 
QA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестирования
QA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестированияQA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестирования
QA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестированияQAFest
 
Benefits of unit-testing and inversion of controll
Benefits of unit-testing and inversion of controllBenefits of unit-testing and inversion of controll
Benefits of unit-testing and inversion of controllMykyta Hopkalo
 
Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Yandex
 
XP.Party (iOS) - testable code & architecture
XP.Party (iOS) - testable code & architectureXP.Party (iOS) - testable code & architecture
XP.Party (iOS) - testable code & architectureAnton Katkov
 
Tech Talks @NSU: Проходим тест Джоэла
Tech Talks @NSU: Проходим тест ДжоэлаTech Talks @NSU: Проходим тест Джоэла
Tech Talks @NSU: Проходим тест ДжоэлаTech Talks @NSU
 

Similar to Ttd in xcode (20)

Unit testing and TDD
Unit testing and TDDUnit testing and TDD
Unit testing and TDD
 
DevOps guide for awesome quality assurance
DevOps guide for awesome quality assuranceDevOps guide for awesome quality assurance
DevOps guide for awesome quality assurance
 
SECON'2017, Мухаметов Андрей, XCTest. UI и Unit тестирование для iOS.
SECON'2017, Мухаметов Андрей, XCTest. UI и Unit тестирование для iOS.SECON'2017, Мухаметов Андрей, XCTest. UI и Unit тестирование для iOS.
SECON'2017, Мухаметов Андрей, XCTest. UI и Unit тестирование для iOS.
 
Тестирование ПО
Тестирование ПОТестирование ПО
Тестирование ПО
 
Unity: "Очевидное-невероятное” или хитрости разработки на Unity Android
Unity: "Очевидное-невероятное” или хитрости разработки на Unity AndroidUnity: "Очевидное-невероятное” или хитрости разработки на Unity Android
Unity: "Очевидное-невероятное” или хитрости разработки на Unity Android
 
Monkey Talk - кросс-платформенное средство автоматизации тестирования мобильн...
Monkey Talk - кросс-платформенное средство автоматизации тестирования мобильн...Monkey Talk - кросс-платформенное средство автоматизации тестирования мобильн...
Monkey Talk - кросс-платформенное средство автоматизации тестирования мобильн...
 
Владислав Акулич - Monkey Talk - кроссплатформенное средство автоматизации те...
Владислав Акулич - Monkey Talk - кроссплатформенное средство автоматизации те...Владислав Акулич - Monkey Talk - кроссплатформенное средство автоматизации те...
Владислав Акулич - Monkey Talk - кроссплатформенное средство автоматизации те...
 
It meetup cd
It meetup cdIt meetup cd
It meetup cd
 
[JAM 1.2] Testing in Android (Dzmitry Ivashnev)
[JAM 1.2] Testing in Android (Dzmitry Ivashnev)[JAM 1.2] Testing in Android (Dzmitry Ivashnev)
[JAM 1.2] Testing in Android (Dzmitry Ivashnev)
 
Антон Семенченко, Никита Беликов "Инструменты автоматизации тестирования моби...
Антон Семенченко, Никита Беликов "Инструменты автоматизации тестирования моби...Антон Семенченко, Никита Беликов "Инструменты автоматизации тестирования моби...
Антон Семенченко, Никита Беликов "Инструменты автоматизации тестирования моби...
 
Test driven development in net
Test driven development in netTest driven development in net
Test driven development in net
 
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестированияCodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
 
Mobile automation with Appium
Mobile automation with AppiumMobile automation with Appium
Mobile automation with Appium
 
Успешный кейс использования React Native в продакшне, Евгений Федоров (LOOKBUCK)
Успешный кейс использования React Native в продакшне, Евгений Федоров (LOOKBUCK)Успешный кейс использования React Native в продакшне, Евгений Федоров (LOOKBUCK)
Успешный кейс использования React Native в продакшне, Евгений Федоров (LOOKBUCK)
 
QA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестирования
QA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестированияQA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестирования
QA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестирования
 
Benefits of unit-testing and inversion of controll
Benefits of unit-testing and inversion of controllBenefits of unit-testing and inversion of controll
Benefits of unit-testing and inversion of controll
 
Genome
GenomeGenome
Genome
 
Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»
 
XP.Party (iOS) - testable code & architecture
XP.Party (iOS) - testable code & architectureXP.Party (iOS) - testable code & architecture
XP.Party (iOS) - testable code & architecture
 
Tech Talks @NSU: Проходим тест Джоэла
Tech Talks @NSU: Проходим тест ДжоэлаTech Talks @NSU: Проходим тест Джоэла
Tech Talks @NSU: Проходим тест Джоэла
 

Ttd in xcode