Юрий Комаров, QA Engineer & DevOps Evangelist в Umbrella Web, приедет к нам из Таганрога, чтобы поговорить об автоматизации тестирования мобильных приложений и популярных инструментах.
Calabash — это фреймворк для автоматизации функционального тестирования, который, по сути, является драйвером, управляющим работой приложения на девайсе или симуляторе. Cucumber обеспечивает тестовую инфраструктуру (запуск тестов, парсинг сценариев, генерация отчетов). В докладе будет раскрыта вся мощь тыкв и огурцов для написания BDD-тестов для мобильных приложений.
2. Зачем нужно BDD тестирование?
•в связи с ростом функциональности
приложения трудозатраты на
регрессионное тестирование становятся
непомерно велики;
•разнообразие линейки поддерживаемых
устройств и версий ОС.
4. Какой такой Calabash?
Calabash — это фреймворк для
автоматизации функционального
тестирования, который, по сути, является
драйвером, управляющим работой
приложения на девайсе или симуляторе.
5. А причем тут Cucumber?
Cucumber — это написанная на RUBY
библиотека для тестирования, которая
предлагает описывать сценарии
тестирования на естественном языке в
обычном текстовом файле.
6. И в чем же сила огурца?
•нет необходимости логирования при
написании тестов — каждый сценарий по
сути своей является тест-кейсом;
•для описания сценариев используется язык
Gherkin и шаблон Given/When/Then/And,
где ключевое слово Given задает
начальные условия, When —
операцию, Then — конечный результат.
8. Cucumber Features
Feature: FTPSample
Scenario: FTPSample Scenario
Given I wait for "Tap Get to start getting" to appear
When I clear text field number 1
And I press "Get"
Then I wait for "Invalid URL" to appear
Then I wait
Then I touch the get tab
9. Cucumber Step Definitions
Then (/^I touch the (url_get|get|list|put|create_dir) tab$/) do |tab|
wait_for_elements_exist('tabBarButton')
case tab
when 'url_get’
index = 0
…
…
when 'create_dir’
index = 4
end
touch("tabBarButton index:#{index}")
end
10. calabash-ios console
• ids => List all the visible accessibility ids.
• labels => List all the visible accessibility labels.
• text => List all the visible texts.
• marks => List all the visible marks.
• tree => The app's visible view hierarchy.
• flash => Disco effect for views matching <query>
• verbose => Turn debug logging on.
• quiet => Turn debug logging off.
• copy => Copy console commands to clipboard.
• clear => Clear the console.
11. calabash-ios console
[yurikomarov@calabash-sandbox]$ calabash-ios console
calabash-ios 0.20.4> text
[0] UIButtonLabel => Get
[1] UILabel => Tap Get to start getting
[2] UITabBarButtonLabel => Create Dir
[3] UITabBarButtonLabel => Get
[4] UITabBarButtonLabel => List
[5] UITabBarButtonLabel => Put
[6] UITabBarButtonLabel => URL Get
[7] UITextFieldLabel => file URL
12. Xamarin Test Cloud
ПЛЮСЫ:
+ ~2000 девайсов для тестов
+ возможность выбора версии OS
+ просмотр device log
+ командный аккаунт
+ 30 дней триала
МИНУСЫ:
- нужно платить
- очередь на выполнение теста
- конфиденциальность
приложения под вопросом
Архитектурно Calabash состоит из двух частей — клиентской и серверной
Серверная часть представляет собой HTTP-сервер, который встраивается в тестируемое приложение и принимает запросы на выполнение тех или иных действий в приложении, клиентская часть написана на Ruby и реализует API для взаимодействия с сервером.