SlideShare ist ein Scribd-Unternehmen logo
1 von 13
Downloaden Sie, um offline zu lesen
@trofmary #sqadays18 1
Keep it calm and functional.
Автотесты для iOS приложений
Мария Трофимова
2
На повестке дня
• iOS UI Testing
– Добавлено в Xcode 7 для iOS 9+
• Фреймворк KIF
– Первый релиз в сентябре 2013
– Текущая версия в сентябре 2015
– > 3 500 ★ на GitHab
@trofmary #sqadays18
3
iOS UI Testing
Достоинства:
• Интеграция в среду разработки и поддержка Apple
• Killer feature – record & play
Недостатки:
• Нет официальной справки
• Нет доступа к runtime-объектам приложения
• Доступна только для iOS 9+
• Требует отдельного типа target
@trofmary #sqadays18
4
iOS UI Testing. Record & play
@trofmary #sqadays18
5
iOS UI Testing. Пример
XCUIApplication *app = [[XCUIApplication alloc] init];
//ввод текста в UITextField
XCUIElement *input1TextField = app.textFields[@"input1"];
[input1TextField tap];
[input1TextField typeText:@"sqadays18"];
//тап по UIButton
[app.buttons[@"button"] tap];
//проверка содержимого UITextField
XCTAssertEqualObjects(app.textFields[@"output"].value, @"
sqadays18");
@trofmary #sqadays18
6
iOS UI Testing.
Атрибуты XCUIElement
• identifier
• frame
• value
• title
• label
• elementType
• enabled
• horizontalSizeClass,
verticalSizeClass
• placeholderValue
• selected
@trofmary #sqadays18
7
KIF
Достоинства:
• Все возможности обычных unit-тестов
• Обращение к элементам как через runtime, так и через accessibility labels
Недостатки:
• Сторонняя библиотека
• Отсутствие record & play
@trofmary #sqadays18
8
KIF. Пример обращения
через UIAccessibility
• Обращение по accessibilityLabel
[tester tapViewWithAccessibilityLabel:buttonName];
• Обращение к элементу CollectionView
[tester tapItemAtIndexPath:
[NSIndexPath indexPathForRow:11
inSection:0
inCollectionViewWithAccessibilityIdentifier:collectionViewName];
@trofmary #sqadays18
9
KIF. Пример обращения
через runtime-объекты
SwipeView *swipeView = (SwipeView*)[tester
waitForViewWithAccessibilityLabel:MAIN_SWIPE_VIEW];
ourSwipeView *ctr;
if ([swipeView.nextResponderisKindOfClass:ourSwipeView.class])
ctr = (ourSwipeView *)swipeView.nextResponder;
[ctr swipeView:swipeView didSelectItemAtIndex:1];
@trofmary #sqadays18
KIF.
Проблемы
с TableView
@trofmary #sqadays18
Некоторые ячейки могут
еще не подгрузиться
11
Заключение
● Автотестам для iOS приложений — ДА!
● Выбор используемой технологии обусловлен
проектом и зрелостью конкретной библиотеки
● В любой непонятной ситуации дружи с
разработчиком☺
@trofmary #sqadays18
12
Дополнительные материалы
● Статья канадского iOS разработчика Greg Heo по
использованию KIF
● Обзор iOS UI Testing
● Неофициальный reference по XCTest
@trofmary #sqadays18
13
Вопросы
Email: maria.ozhogina@surfstudio.ru
Skype: mary_dandelion28
Twitter: trofmary
surfstudio.ru
@trofmary #sqadays18

Weitere ähnliche Inhalte

Was ist angesagt?

Как сейчас тесты в Android пишут, Денис Неклюдов, Google Dev Expert, Москва
 Как сейчас тесты в Android пишут, Денис Неклюдов, Google Dev Expert, Москва  Как сейчас тесты в Android пишут, Денис Неклюдов, Google Dev Expert, Москва
Как сейчас тесты в Android пишут, Денис Неклюдов, Google Dev Expert, Москва it-people
 
Appium confet qa
Appium confet qaAppium confet qa
Appium confet qaISsoft
 
Успешный кейс использования React Native в продакшне, Евгений Федоров (LOOKBUCK)
Успешный кейс использования React Native в продакшне, Евгений Федоров (LOOKBUCK)Успешный кейс использования React Native в продакшне, Евгений Федоров (LOOKBUCK)
Успешный кейс использования React Native в продакшне, Евгений Федоров (LOOKBUCK)Ontico
 
«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел СташевскийDevDay
 
Solit 2014, Appium. Тестируем гибридные мобильные прирложения в стиле webdriv...
Solit 2014, Appium. Тестируем гибридные мобильные прирложения в стиле webdriv...Solit 2014, Appium. Тестируем гибридные мобильные прирложения в стиле webdriv...
Solit 2014, Appium. Тестируем гибридные мобильные прирложения в стиле webdriv...solit
 
Android unit and ui testing
Android unit and ui testingAndroid unit and ui testing
Android unit and ui testingBogdan Aksonenko
 
Автоматическое тестирование мобильных приложений на основе скриншотов
Автоматическое тестирование мобильных приложений на основе скриншотовАвтоматическое тестирование мобильных приложений на основе скриншотов
Автоматическое тестирование мобильных приложений на основе скриншотовSergey Borisov
 
Winium — это как Selenium, только под Windows
Winium — это как Selenium, только под WindowsWinium — это как Selenium, только под Windows
Winium — это как Selenium, только под WindowsSQALab
 
Appium для народа
Appium для народаAppium для народа
Appium для народаSQALab
 
Как screenshot-based средство помогает в автоматизации тестирования iOS прило...
Как screenshot-based средство помогает в автоматизации тестирования iOS прило...Как screenshot-based средство помогает в автоматизации тестирования iOS прило...
Как screenshot-based средство помогает в автоматизации тестирования iOS прило...Alexander Khozya
 
Спецкурс-2015. Занятие 04 (часть 1). Конфигурации, сборка проекта, автоматизи...
Спецкурс-2015. Занятие 04 (часть 1). Конфигурации, сборка проекта, автоматизи...Спецкурс-2015. Занятие 04 (часть 1). Конфигурации, сборка проекта, автоматизи...
Спецкурс-2015. Занятие 04 (часть 1). Конфигурации, сборка проекта, автоматизи...7bits
 
[Expert Fridays] QA MeetUp - Альфия Хайретдинова (Provectus): Плюсы и минусы ...
[Expert Fridays] QA MeetUp - Альфия Хайретдинова (Provectus): Плюсы и минусы ...[Expert Fridays] QA MeetUp - Альфия Хайретдинова (Provectus): Плюсы и минусы ...
[Expert Fridays] QA MeetUp - Альфия Хайретдинова (Provectus): Плюсы и минусы ...Provectus
 
Bdd j behave or cucumber jvm plus appium for efficient cross platform mobile ...
Bdd j behave or cucumber jvm plus appium for efficient cross platform mobile ...Bdd j behave or cucumber jvm plus appium for efficient cross platform mobile ...
Bdd j behave or cucumber jvm plus appium for efficient cross platform mobile ...ISsoft
 
Отладка приложений под iOS
Отладка приложений под iOSОтладка приложений под iOS
Отладка приложений под iOSiOS Dev Course
 
Спецкурс-2015. Занятие 05. Системы контроля версий
Спецкурс-2015. Занятие 05. Системы контроля версийСпецкурс-2015. Занятие 05. Системы контроля версий
Спецкурс-2015. Занятие 05. Системы контроля версий7bits
 
React Native в продакшне
React Native в продакшнеReact Native в продакшне
React Native в продакшнеEugeni Feudorov
 
Тестируем мобильное приложение в суровых реалиях Интернета
Тестируем мобильное приложение в суровых реалиях ИнтернетаТестируем мобильное приложение в суровых реалиях Интернета
Тестируем мобильное приложение в суровых реалиях ИнтернетаSQALab
 
Андрей Стахиевич - Appium Mobile Automation Tool
Андрей Стахиевич - Appium Mobile Automation ToolАндрей Стахиевич - Appium Mobile Automation Tool
Андрей Стахиевич - Appium Mobile Automation ToolQA Club Minsk
 
Как за $5 и несколько вечеров сделать интегрированную новостную платформу
Как за $5 и несколько вечеров сделать интегрированную новостную платформуКак за $5 и несколько вечеров сделать интегрированную новостную платформу
Как за $5 и несколько вечеров сделать интегрированную новостную платформуAndrew Gubskiy
 

Was ist angesagt? (20)

Как сейчас тесты в Android пишут, Денис Неклюдов, Google Dev Expert, Москва
 Как сейчас тесты в Android пишут, Денис Неклюдов, Google Dev Expert, Москва  Как сейчас тесты в Android пишут, Денис Неклюдов, Google Dev Expert, Москва
Как сейчас тесты в Android пишут, Денис Неклюдов, Google Dev Expert, Москва
 
Appium confet qa
Appium confet qaAppium confet qa
Appium confet qa
 
Успешный кейс использования React Native в продакшне, Евгений Федоров (LOOKBUCK)
Успешный кейс использования React Native в продакшне, Евгений Федоров (LOOKBUCK)Успешный кейс использования React Native в продакшне, Евгений Федоров (LOOKBUCK)
Успешный кейс использования React Native в продакшне, Евгений Федоров (LOOKBUCK)
 
«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский
 
Solit 2014, Appium. Тестируем гибридные мобильные прирложения в стиле webdriv...
Solit 2014, Appium. Тестируем гибридные мобильные прирложения в стиле webdriv...Solit 2014, Appium. Тестируем гибридные мобильные прирложения в стиле webdriv...
Solit 2014, Appium. Тестируем гибридные мобильные прирложения в стиле webdriv...
 
Android unit and ui testing
Android unit and ui testingAndroid unit and ui testing
Android unit and ui testing
 
Автоматическое тестирование мобильных приложений на основе скриншотов
Автоматическое тестирование мобильных приложений на основе скриншотовАвтоматическое тестирование мобильных приложений на основе скриншотов
Автоматическое тестирование мобильных приложений на основе скриншотов
 
Winium — это как Selenium, только под Windows
Winium — это как Selenium, только под WindowsWinium — это как Selenium, только под Windows
Winium — это как Selenium, только под Windows
 
UI+unit testing in iOS
UI+unit testing in iOSUI+unit testing in iOS
UI+unit testing in iOS
 
Appium для народа
Appium для народаAppium для народа
Appium для народа
 
Как screenshot-based средство помогает в автоматизации тестирования iOS прило...
Как screenshot-based средство помогает в автоматизации тестирования iOS прило...Как screenshot-based средство помогает в автоматизации тестирования iOS прило...
Как screenshot-based средство помогает в автоматизации тестирования iOS прило...
 
Спецкурс-2015. Занятие 04 (часть 1). Конфигурации, сборка проекта, автоматизи...
Спецкурс-2015. Занятие 04 (часть 1). Конфигурации, сборка проекта, автоматизи...Спецкурс-2015. Занятие 04 (часть 1). Конфигурации, сборка проекта, автоматизи...
Спецкурс-2015. Занятие 04 (часть 1). Конфигурации, сборка проекта, автоматизи...
 
[Expert Fridays] QA MeetUp - Альфия Хайретдинова (Provectus): Плюсы и минусы ...
[Expert Fridays] QA MeetUp - Альфия Хайретдинова (Provectus): Плюсы и минусы ...[Expert Fridays] QA MeetUp - Альфия Хайретдинова (Provectus): Плюсы и минусы ...
[Expert Fridays] QA MeetUp - Альфия Хайретдинова (Provectus): Плюсы и минусы ...
 
Bdd j behave or cucumber jvm plus appium for efficient cross platform mobile ...
Bdd j behave or cucumber jvm plus appium for efficient cross platform mobile ...Bdd j behave or cucumber jvm plus appium for efficient cross platform mobile ...
Bdd j behave or cucumber jvm plus appium for efficient cross platform mobile ...
 
Отладка приложений под iOS
Отладка приложений под iOSОтладка приложений под iOS
Отладка приложений под iOS
 
Спецкурс-2015. Занятие 05. Системы контроля версий
Спецкурс-2015. Занятие 05. Системы контроля версийСпецкурс-2015. Занятие 05. Системы контроля версий
Спецкурс-2015. Занятие 05. Системы контроля версий
 
React Native в продакшне
React Native в продакшнеReact Native в продакшне
React Native в продакшне
 
Тестируем мобильное приложение в суровых реалиях Интернета
Тестируем мобильное приложение в суровых реалиях ИнтернетаТестируем мобильное приложение в суровых реалиях Интернета
Тестируем мобильное приложение в суровых реалиях Интернета
 
Андрей Стахиевич - Appium Mobile Automation Tool
Андрей Стахиевич - Appium Mobile Automation ToolАндрей Стахиевич - Appium Mobile Automation Tool
Андрей Стахиевич - Appium Mobile Automation Tool
 
Как за $5 и несколько вечеров сделать интегрированную новостную платформу
Как за $5 и несколько вечеров сделать интегрированную новостную платформуКак за $5 и несколько вечеров сделать интегрированную новостную платформу
Как за $5 и несколько вечеров сделать интегрированную новостную платформу
 

Ähnlich wie Keep it calm and functional. Автотесты для iOS приложений

UI-тесты в iOS-проекте / Михаил Домрачев (Improve Digital)
UI-тесты в iOS-проекте / Михаил Домрачев (Improve Digital)UI-тесты в iOS-проекте / Михаил Домрачев (Improve Digital)
UI-тесты в iOS-проекте / Михаил Домрачев (Improve Digital)Ontico
 
Один день из жизни iOs разработчика, Александр Сычёв Rambler&Co
Один день из жизни iOs разработчика, Александр Сычёв Rambler&CoОдин день из жизни iOs разработчика, Александр Сычёв Rambler&Co
Один день из жизни iOs разработчика, Александр Сычёв Rambler&CoСбертех | SberTech
 
Feature toggles в процессе подбора, Алексей Ульенков СберТех
Feature toggles в процессе подбора, Алексей Ульенков СберТехFeature toggles в процессе подбора, Алексей Ульенков СберТех
Feature toggles в процессе подбора, Алексей Ульенков СберТехСбертех | SberTech
 
XP.Party (iOS) - testable code & architecture
XP.Party (iOS) - testable code & architectureXP.Party (iOS) - testable code & architecture
XP.Party (iOS) - testable code & architectureAnton Katkov
 
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...Mail.ru Group
 
Жизненный цикл мобильной игры глазами тестировщика‏
Жизненный цикл мобильной игры глазами тестировщика‏Жизненный цикл мобильной игры глазами тестировщика‏
Жизненный цикл мобильной игры глазами тестировщика‏SQALab
 
SWIFT нужен ли он вам?
SWIFT нужен ли он вам?SWIFT нужен ли он вам?
SWIFT нужен ли он вам?Improve Group
 
Интуит. Разработка приложений для iOS. Лекция 3. Views
Интуит. Разработка приложений для iOS. Лекция 3. ViewsИнтуит. Разработка приложений для iOS. Лекция 3. Views
Интуит. Разработка приложений для iOS. Лекция 3. ViewsГлеб Тарасов
 
Преимущества и недостатки языка Swift
Преимущества и недостатки языка SwiftПреимущества и недостатки языка Swift
Преимущества и недостатки языка SwiftAndrey Volobuev
 
End-2-End UI автоматизация в мобильном приложении. Наша реализация
End-2-End UI автоматизация в мобильном приложении. Наша реализацияEnd-2-End UI автоматизация в мобильном приложении. Наша реализация
End-2-End UI автоматизация в мобильном приложении. Наша реализацияSQALab
 
2014.12.06 01 Александр Чернышев — Нафига Козе Баян или нужен ли вам swift, и...
2014.12.06 01 Александр Чернышев — Нафига Козе Баян или нужен ли вам swift, и...2014.12.06 01 Александр Чернышев — Нафига Козе Баян или нужен ли вам swift, и...
2014.12.06 01 Александр Чернышев — Нафига Козе Баян или нужен ли вам swift, и...HappyDev
 
И снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоИ снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоStanfy
 
Введение в разработку для iOS
Введение в разработку для iOSВведение в разработку для iOS
Введение в разработку для iOSMichael Dudarev
 

Ähnlich wie Keep it calm and functional. Автотесты для iOS приложений (13)

UI-тесты в iOS-проекте / Михаил Домрачев (Improve Digital)
UI-тесты в iOS-проекте / Михаил Домрачев (Improve Digital)UI-тесты в iOS-проекте / Михаил Домрачев (Improve Digital)
UI-тесты в iOS-проекте / Михаил Домрачев (Improve Digital)
 
Один день из жизни iOs разработчика, Александр Сычёв Rambler&Co
Один день из жизни iOs разработчика, Александр Сычёв Rambler&CoОдин день из жизни iOs разработчика, Александр Сычёв Rambler&Co
Один день из жизни iOs разработчика, Александр Сычёв Rambler&Co
 
Feature toggles в процессе подбора, Алексей Ульенков СберТех
Feature toggles в процессе подбора, Алексей Ульенков СберТехFeature toggles в процессе подбора, Алексей Ульенков СберТех
Feature toggles в процессе подбора, Алексей Ульенков СберТех
 
XP.Party (iOS) - testable code & architecture
XP.Party (iOS) - testable code & architectureXP.Party (iOS) - testable code & architecture
XP.Party (iOS) - testable code & architecture
 
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
 
Жизненный цикл мобильной игры глазами тестировщика‏
Жизненный цикл мобильной игры глазами тестировщика‏Жизненный цикл мобильной игры глазами тестировщика‏
Жизненный цикл мобильной игры глазами тестировщика‏
 
SWIFT нужен ли он вам?
SWIFT нужен ли он вам?SWIFT нужен ли он вам?
SWIFT нужен ли он вам?
 
Интуит. Разработка приложений для iOS. Лекция 3. Views
Интуит. Разработка приложений для iOS. Лекция 3. ViewsИнтуит. Разработка приложений для iOS. Лекция 3. Views
Интуит. Разработка приложений для iOS. Лекция 3. Views
 
Преимущества и недостатки языка Swift
Преимущества и недостатки языка SwiftПреимущества и недостатки языка Swift
Преимущества и недостатки языка Swift
 
End-2-End UI автоматизация в мобильном приложении. Наша реализация
End-2-End UI автоматизация в мобильном приложении. Наша реализацияEnd-2-End UI автоматизация в мобильном приложении. Наша реализация
End-2-End UI автоматизация в мобильном приложении. Наша реализация
 
2014.12.06 01 Александр Чернышев — Нафига Козе Баян или нужен ли вам swift, и...
2014.12.06 01 Александр Чернышев — Нафига Козе Баян или нужен ли вам swift, и...2014.12.06 01 Александр Чернышев — Нафига Козе Баян или нужен ли вам swift, и...
2014.12.06 01 Александр Чернышев — Нафига Козе Баян или нужен ли вам swift, и...
 
И снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоИ снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел Тайкало
 
Введение в разработку для iOS
Введение в разработку для iOSВведение в разработку для iOS
Введение в разработку для iOS
 

Mehr von SQALab

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировкуSQALab
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаSQALab
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиSQALab
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияSQALab
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...SQALab
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testingSQALab
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженSQALab
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииSQALab
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовSQALab
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовSQALab
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsSQALab
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеSQALab
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииSQALab
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеSQALab
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестированиеSQALab
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"SQALab
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовSQALab
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных системSQALab
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросSQALab
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...SQALab
 

Mehr von SQALab (20)

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировку
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщика
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержки
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testing
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нужен
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихии
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советов
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестов
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIs
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджменте
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестирование
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектов
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных систем
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопрос
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
 

Keep it calm and functional. Автотесты для iOS приложений

  • 1. @trofmary #sqadays18 1 Keep it calm and functional. Автотесты для iOS приложений Мария Трофимова
  • 2. 2 На повестке дня • iOS UI Testing – Добавлено в Xcode 7 для iOS 9+ • Фреймворк KIF – Первый релиз в сентябре 2013 – Текущая версия в сентябре 2015 – > 3 500 ★ на GitHab @trofmary #sqadays18
  • 3. 3 iOS UI Testing Достоинства: • Интеграция в среду разработки и поддержка Apple • Killer feature – record & play Недостатки: • Нет официальной справки • Нет доступа к runtime-объектам приложения • Доступна только для iOS 9+ • Требует отдельного типа target @trofmary #sqadays18
  • 4. 4 iOS UI Testing. Record & play @trofmary #sqadays18
  • 5. 5 iOS UI Testing. Пример XCUIApplication *app = [[XCUIApplication alloc] init]; //ввод текста в UITextField XCUIElement *input1TextField = app.textFields[@"input1"]; [input1TextField tap]; [input1TextField typeText:@"sqadays18"]; //тап по UIButton [app.buttons[@"button"] tap]; //проверка содержимого UITextField XCTAssertEqualObjects(app.textFields[@"output"].value, @" sqadays18"); @trofmary #sqadays18
  • 6. 6 iOS UI Testing. Атрибуты XCUIElement • identifier • frame • value • title • label • elementType • enabled • horizontalSizeClass, verticalSizeClass • placeholderValue • selected @trofmary #sqadays18
  • 7. 7 KIF Достоинства: • Все возможности обычных unit-тестов • Обращение к элементам как через runtime, так и через accessibility labels Недостатки: • Сторонняя библиотека • Отсутствие record & play @trofmary #sqadays18
  • 8. 8 KIF. Пример обращения через UIAccessibility • Обращение по accessibilityLabel [tester tapViewWithAccessibilityLabel:buttonName]; • Обращение к элементу CollectionView [tester tapItemAtIndexPath: [NSIndexPath indexPathForRow:11 inSection:0 inCollectionViewWithAccessibilityIdentifier:collectionViewName]; @trofmary #sqadays18
  • 9. 9 KIF. Пример обращения через runtime-объекты SwipeView *swipeView = (SwipeView*)[tester waitForViewWithAccessibilityLabel:MAIN_SWIPE_VIEW]; ourSwipeView *ctr; if ([swipeView.nextResponderisKindOfClass:ourSwipeView.class]) ctr = (ourSwipeView *)swipeView.nextResponder; [ctr swipeView:swipeView didSelectItemAtIndex:1]; @trofmary #sqadays18
  • 10. KIF. Проблемы с TableView @trofmary #sqadays18 Некоторые ячейки могут еще не подгрузиться
  • 11. 11 Заключение ● Автотестам для iOS приложений — ДА! ● Выбор используемой технологии обусловлен проектом и зрелостью конкретной библиотеки ● В любой непонятной ситуации дружи с разработчиком☺ @trofmary #sqadays18
  • 12. 12 Дополнительные материалы ● Статья канадского iOS разработчика Greg Heo по использованию KIF ● Обзор iOS UI Testing ● Неофициальный reference по XCTest @trofmary #sqadays18