Эффективная архитектура
Мобильной Автоматизации
для проектов разной степени
сложности
(на примере Java + Robotium)
Android приложения
Типы Android приложений:


нативные;



веб-приложения (HTML5);



гибридные.

Компонеты Android при...
Тестируемое Android
Приложение
Гибридное Android приложение,
написаное с помощью:


PhoneGap



Sencha ExtJS
Robotium - тестовый фреймворк c открытым
исходным кодом для написания автоматических
функциональных тестов Android приложе...
Тест кейсы:
Всплывающее сообщение появляется, если даты не заполнены.
№

Действие

Ожидаемый результат

1

Нажать кнопку G...
Robotium тесты без архитектуры
Всплывающее сообщение появляется, если даты не заполнены.

Добавленное сообщение отображает...
Robotium Тесты с паттернами Page
Object and UI Control
Всплывающее сообщение появляется, если даты не заполнены.

Добавлен...
Robotium Тесты с паттернами Page
Object, UI Control, Navigator и Fluent
Interface
Всплывающее сообщение появляется, если д...
Архитектурные решения для
тестирования Android приложений
1. Architecture for small size applications
Base class for all ...
UI Control
Базовый класс для всех простых контролов (текстовых полей,
кнопок и т.д.):

Класс текстового поля:

Класс сложн...
Page Object
Базовый класс для всех окошек Anroid приложения:

Page Object класс Hot List окна приложения:
Navigator
Пример Navigator класса, реализованного на Java для Robotium
автоматических тестов:
Fluent Interface (Flow)
Базовый класс для всех
Flow классов:

Flow класс для Hot List
окна приложения:
Кодогенерация
Кодогенерация — это процесс генерации кода на
основе определенных данных.
Подходы к генерации кода:


генер...
Архитектурные решения для
тестирования Android приложений
1. Architecture for small size applications
Base class for all ...
Эффективная архитектура мобильной автоматизации
Upcoming SlideShare
Loading in...5
×

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

277

Published on

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

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

No notes for slide

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

  1. 1. Эффективная архитектура Мобильной Автоматизации для проектов разной степени сложности (на примере Java + Robotium)
  2. 2. Android приложения Типы Android приложений:  нативные;  веб-приложения (HTML5);  гибридные. Компонеты Android приложений:  Activities;  Services;  Broadcast receivers;  Content providers;
  3. 3. Тестируемое Android Приложение Гибридное Android приложение, написаное с помощью:  PhoneGap  Sencha ExtJS
  4. 4. Robotium - тестовый фреймворк c открытым исходным кодом для написания автоматических функциональных тестов Android приложений. Преимущества Robotium:  мощные тесты, с минимальными знаниями тестируемого приложения;  aвтоматически работает с несколькими Android Activities;  быстрое выполнение тестов;  интегрируется с Maven или Ant для выполнения тестов как часть непрерывной интеграции. Разработчики же Robotium библиотеки говорят "Этот как Selenium, только для Android"
  5. 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. 6. Robotium тесты без архитектуры Всплывающее сообщение появляется, если даты не заполнены. Добавленное сообщение отображается в Hot List.
  7. 7. Robotium Тесты с паттернами Page Object and UI Control Всплывающее сообщение появляется, если даты не заполнены. Добавленное сообщение отображается в Hot List.
  8. 8. Robotium Тесты с паттернами Page Object, UI Control, Navigator и Fluent Interface Всплывающее сообщение появляется, если даты не заполнены. Добавленное сообщение отображается в Hot List.
  9. 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. 10. UI Control Базовый класс для всех простых контролов (текстовых полей, кнопок и т.д.): Класс текстового поля: Класс сложного контрола:
  11. 11. Page Object Базовый класс для всех окошек Anroid приложения: Page Object класс Hot List окна приложения:
  12. 12. Navigator Пример Navigator класса, реализованного на Java для Robotium автоматических тестов:
  13. 13. Fluent Interface (Flow) Базовый класс для всех Flow классов: Flow класс для Hot List окна приложения:
  14. 14. Кодогенерация Кодогенерация — это процесс генерации кода на основе определенных данных. Подходы к генерации кода:  генерация кода на основе более высокоуровневого;  генерация на основе метаданных;  кодогенерация на основе шаблонов. Инструменты для кодогенерации: JET BLU AGE Atom Weaver CGLib JavaGen
  15. 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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×