Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Эффективная архитектура
Мобильной Автоматизации
для проектов разной степени
сложности
(на примере Java + Robotium)
Android приложения
Типы Android приложений:


нативные;



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



гибридные.

Компонеты Android приложений:


Activities;



Services;



Broadcast receivers;



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

PhoneGap



Sencha ExtJS
Robotium - тестовый фреймворк c открытым
исходным кодом для написания автоматических
функциональных тестов Android приложений.
Преимущества Robotium:


мощные тесты, с минимальными знаниями тестируемого приложения;



aвтоматически работает с несколькими Android Activities;



быстрое выполнение тестов;



интегрируется с Maven или Ant для выполнения тестов как часть
непрерывной интеграции.

Разработчики же Robotium библиотеки говорят "Этот как
Selenium, только для Android"
Тест кейсы:
Всплывающее сообщение появляется, если даты не заполнены.
№

Действие

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

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
Robotium тесты без архитектуры
Всплывающее сообщение появляется, если даты не заполнены.

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

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

Добавленное сообщение отображается в Hot List.
Архитектурные решения для
тестирования 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
UI Control
Базовый класс для всех простых контролов (текстовых полей,
кнопок и т.д.):

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

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

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

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

генерация кода на основе более высокоуровневого;



генерация на основе метаданных;



кодогенерация на основе шаблонов.
Инструменты для кодогенерации:
JET
BLU AGE
Atom Weaver
CGLib
JavaGen
Архитектурные решения для
тестирования 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
Эффективная архитектура мобильной автоматизации

More Related Content

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

  • 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