Your SlideShare is downloading. ×
Эффективная архитектура мобильной автоматизации
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Эффективная архитектура мобильной автоматизации

222
views

Published on


0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
222
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
4
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Эффективная архитектура Мобильной Автоматизации для проектов разной степени сложности (на примере Java + Robotium)
  • 2. Android приложения Типы Android приложений:  нативные;  веб-приложения (HTML5);  гибридные. Компонеты Android приложений:  Activities;  Services;  Broadcast receivers;  Content providers;
  • 3. Тестируемое Android Приложение Гибридное Android приложение, написаное с помощью:  PhoneGap  Sencha ExtJS
  • 4. Robotium - тестовый фреймворк c открытым исходным кодом для написания автоматических функциональных тестов Android приложений. Преимущества Robotium:  мощные тесты, с минимальными знаниями тестируемого приложения;  aвтоматически работает с несколькими Android Activities;  быстрое выполнение тестов;  интегрируется с Maven или Ant для выполнения тестов как часть непрерывной интеграции. Разработчики же Robotium библиотеки говорят "Этот как Selenium, только для Android"
  • 5. Тест кейсы: Всплывающее сообщение появляется, если даты не заполнены. № Действие Ожидаемый результат 1 Нажать кнопку GO Откроется Set Up окошко приложения 2 Нажать кнопку Next Появится всплывающее окошко с сообщением: "Please enter a valid due date and birth date to continue". 3 Нажать кнопку ОК на всплывающем окне Откроется Set Up окошко приложения Добавленное сообщение отображается в Hot List. № Действие Ожидаемый результат 1 Нажать кнопку Hot List Откроется Hot List окошко приложения 2 Нажать кнопку Add new Hot List Item кнопку Появится текствое поле и две кнопки Close и Done 3 Ввести текст в текствое поле 4 Нажать кнопку Done Новая запись добавилась в Hot List
  • 6. Robotium тесты без архитектуры Всплывающее сообщение появляется, если даты не заполнены. Добавленное сообщение отображается в Hot List.
  • 7. Robotium Тесты с паттернами Page Object and UI Control Всплывающее сообщение появляется, если даты не заполнены. Добавленное сообщение отображается в Hot List.
  • 8. Robotium Тесты с паттернами Page Object, UI Control, Navigator и Fluent Interface Всплывающее сообщение появляется, если даты не заполнены. Добавленное сообщение отображается в Hot List.
  • 9. Архитектурные решения для тестирования Android приложений 1. Architecture for small size applications Base class for all tests UI Control Design Pattern for Automation PageObject Design Pattern for Automation (dynamic, not static) 2. Architecture for medium size applications Flow Design Pattern for Automation (Page Object and Flow are two separate entities) Develop specific internal Java based DSL (Domain Specific Language), the simplest one for now 3. Architecture for huge applications Sophisticated Navigator Design Pattern for Automation Page Objects meta info based code-generation Flows stubs meta info based code-generation Full internal Java based DSL 4. Fully integrated environment approach Custom integration with Test Management Systems Custom integration Continues Integration Systems Custom TestRunner Custom summarized reports
  • 10. UI Control Базовый класс для всех простых контролов (текстовых полей, кнопок и т.д.): Класс текстового поля: Класс сложного контрола:
  • 11. Page Object Базовый класс для всех окошек Anroid приложения: Page Object класс Hot List окна приложения:
  • 12. Navigator Пример Navigator класса, реализованного на Java для Robotium автоматических тестов:
  • 13. Fluent Interface (Flow) Базовый класс для всех Flow классов: Flow класс для Hot List окна приложения:
  • 14. Кодогенерация Кодогенерация — это процесс генерации кода на основе определенных данных. Подходы к генерации кода:  генерация кода на основе более высокоуровневого;  генерация на основе метаданных;  кодогенерация на основе шаблонов. Инструменты для кодогенерации: JET BLU AGE Atom Weaver CGLib JavaGen
  • 15. Архитектурные решения для тестирования Android приложений 1. Architecture for small size applications Base class for all tests UI Control Design Pattern for Automation PageObject Design Pattern for Automation (dynamic, not static) 2. Architecture for medium size applications Flow Design Pattern for Automation (Page Object and Flow are two separate entities) Develop specific internal Java based DSL (Domain Specific Language), the simplest one for now 3. Architecture for huge applications Sophisticated Navigator Design Pattern for Automation Page Objects meta info based code-generation Flows stubs meta info based code-generation Full internal Java based DSL 4. Fully integrated environment approach Custom integration with Test Management Systems Custom integration Continues Integration Systems Custom TestRunner Custom summarized reports