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
Эффективная архитектура мобильной автоматизации
Ad

Recommended

Dot.net building scalable java script application using react and typescript,...
Dot.net building scalable java script application using react and typescript,...
Sigma Software
 
Тестирование PhoneGap-приложений: специфика + опыт
Тестирование PhoneGap-приложений: специфика + опыт
SQALab
 
Автоматизация тестирования базы на примере PostgreSQL
Автоматизация тестирования базы на примере PostgreSQL
SQALab
 
Тестирование трафика мобильных приложений: кейсы и инструменты
Тестирование трафика мобильных приложений: кейсы и инструменты
Oleg Nikiforov
 
Анализ инструментов автоматизации мобильного тестирования
Анализ инструментов автоматизации мобильного тестирования
SQALab
 
Использование Fiddler для эмуляции различных сетевых условий в автотестах
Использование Fiddler для эмуляции различных сетевых условий в автотестах
SQALab
 
Мобильные браузеры: очевидное-невероятное
Мобильные браузеры: очевидное-невероятное
SQALab
 
Провокации автоматического тестирования
Провокации автоматического тестирования
Igor Lyubin
 
Bugs
Bugs
ISsoft
 
Автоматизация тестирования iOS приложений: от идеи к готовому решению
Автоматизация тестирования iOS приложений: от идеи к готовому решению
SQALab
 
Поиск багов при тестировании переходов с веба в мобильное приложение
Поиск багов при тестировании переходов с веба в мобильное приложение
SQALab
 
Автоматизация функционального тестирования с использованием платформы MS Visu...
Автоматизация функционального тестирования с использованием платформы MS Visu...
Александр Шамрай
 
презетация Visual basic
презетация Visual basic
kseniya_kristina
 
Интеграция Microsoft TFS в корпоративную среду
Интеграция Microsoft TFS в корпоративную среду
Александр Шамрай
 
Appium для народа
Appium для народа
SQALab
 
Алексей Баранцев -- Какое дело тестировщикам до исходного кода?
Алексей Баранцев -- Какое дело тестировщикам до исходного кода?
sqadays8
 
Автоматизация тестирования веб-сервисов посредством SOAP UI
Автоматизация тестирования веб-сервисов посредством SOAP UI
automated-testing.info
 
Автоматизированное тестирование веб приложений
Автоматизированное тестирование веб приложений
Alexander Byndyu
 
Подходы к тестированию андроид приложений
Подходы к тестированию андроид приложений
SQALab
 
Виктор Розаев - Как не сломать обратную совместимость в Public API
Виктор Розаев - Как не сломать обратную совместимость в Public API
MoscowJS
 
Управление качеством проекта разработки ПО в TFS 2008
Управление качеством проекта разработки ПО в TFS 2008
Александр Шамрай
 
Blitz Smart Card Plugin
Blitz Smart Card Plugin
Mikhail Vanin
 
CodeFest 2012. Кузьмин В. — Как выстроить разработку сервиса под несколько мо...
CodeFest 2012. Кузьмин В. — Как выстроить разработку сервиса под несколько мо...
CodeFest
 
Особенности тестирования веб приложение
Особенности тестирования веб приложение
DressTester
 
Victor Kuzmin - How to organize service development for several mobile platforms
Victor Kuzmin - How to organize service development for several mobile platforms
Andrew Mayorov
 
Мониторинг приложений ASP.NET на основе сервиса Application Insights
Мониторинг приложений ASP.NET на основе сервиса Application Insights
CodeFest
 
Эльдар Гусейнов "Эффективная архитектура мобильной автоматизации для проектов...
Эльдар Гусейнов "Эффективная архитектура мобильной автоматизации для проектов...
QA Club Minsk
 
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
DataArt
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработки
IT-Доминанта
 
BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной авто...
BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной авто...
QA Club Minsk
 

More Related Content

What's hot (18)

Bugs
Bugs
ISsoft
 
Автоматизация тестирования iOS приложений: от идеи к готовому решению
Автоматизация тестирования iOS приложений: от идеи к готовому решению
SQALab
 
Поиск багов при тестировании переходов с веба в мобильное приложение
Поиск багов при тестировании переходов с веба в мобильное приложение
SQALab
 
Автоматизация функционального тестирования с использованием платформы MS Visu...
Автоматизация функционального тестирования с использованием платформы MS Visu...
Александр Шамрай
 
презетация Visual basic
презетация Visual basic
kseniya_kristina
 
Интеграция Microsoft TFS в корпоративную среду
Интеграция Microsoft TFS в корпоративную среду
Александр Шамрай
 
Appium для народа
Appium для народа
SQALab
 
Алексей Баранцев -- Какое дело тестировщикам до исходного кода?
Алексей Баранцев -- Какое дело тестировщикам до исходного кода?
sqadays8
 
Автоматизация тестирования веб-сервисов посредством SOAP UI
Автоматизация тестирования веб-сервисов посредством SOAP UI
automated-testing.info
 
Автоматизированное тестирование веб приложений
Автоматизированное тестирование веб приложений
Alexander Byndyu
 
Подходы к тестированию андроид приложений
Подходы к тестированию андроид приложений
SQALab
 
Виктор Розаев - Как не сломать обратную совместимость в Public API
Виктор Розаев - Как не сломать обратную совместимость в Public API
MoscowJS
 
Управление качеством проекта разработки ПО в TFS 2008
Управление качеством проекта разработки ПО в TFS 2008
Александр Шамрай
 
Blitz Smart Card Plugin
Blitz Smart Card Plugin
Mikhail Vanin
 
CodeFest 2012. Кузьмин В. — Как выстроить разработку сервиса под несколько мо...
CodeFest 2012. Кузьмин В. — Как выстроить разработку сервиса под несколько мо...
CodeFest
 
Особенности тестирования веб приложение
Особенности тестирования веб приложение
DressTester
 
Victor Kuzmin - How to organize service development for several mobile platforms
Victor Kuzmin - How to organize service development for several mobile platforms
Andrew Mayorov
 
Мониторинг приложений ASP.NET на основе сервиса Application Insights
Мониторинг приложений ASP.NET на основе сервиса Application Insights
CodeFest
 
Автоматизация тестирования iOS приложений: от идеи к готовому решению
Автоматизация тестирования iOS приложений: от идеи к готовому решению
SQALab
 
Поиск багов при тестировании переходов с веба в мобильное приложение
Поиск багов при тестировании переходов с веба в мобильное приложение
SQALab
 
Автоматизация функционального тестирования с использованием платформы MS Visu...
Автоматизация функционального тестирования с использованием платформы MS Visu...
Александр Шамрай
 
презетация Visual basic
презетация Visual basic
kseniya_kristina
 
Интеграция Microsoft TFS в корпоративную среду
Интеграция Microsoft TFS в корпоративную среду
Александр Шамрай
 
Appium для народа
Appium для народа
SQALab
 
Алексей Баранцев -- Какое дело тестировщикам до исходного кода?
Алексей Баранцев -- Какое дело тестировщикам до исходного кода?
sqadays8
 
Автоматизация тестирования веб-сервисов посредством SOAP UI
Автоматизация тестирования веб-сервисов посредством SOAP UI
automated-testing.info
 
Автоматизированное тестирование веб приложений
Автоматизированное тестирование веб приложений
Alexander Byndyu
 
Подходы к тестированию андроид приложений
Подходы к тестированию андроид приложений
SQALab
 
Виктор Розаев - Как не сломать обратную совместимость в Public API
Виктор Розаев - Как не сломать обратную совместимость в Public API
MoscowJS
 
Управление качеством проекта разработки ПО в TFS 2008
Управление качеством проекта разработки ПО в TFS 2008
Александр Шамрай
 
Blitz Smart Card Plugin
Blitz Smart Card Plugin
Mikhail Vanin
 
CodeFest 2012. Кузьмин В. — Как выстроить разработку сервиса под несколько мо...
CodeFest 2012. Кузьмин В. — Как выстроить разработку сервиса под несколько мо...
CodeFest
 
Особенности тестирования веб приложение
Особенности тестирования веб приложение
DressTester
 
Victor Kuzmin - How to organize service development for several mobile platforms
Victor Kuzmin - How to organize service development for several mobile platforms
Andrew Mayorov
 
Мониторинг приложений ASP.NET на основе сервиса Application Insights
Мониторинг приложений ASP.NET на основе сервиса Application Insights
CodeFest
 

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

Эльдар Гусейнов "Эффективная архитектура мобильной автоматизации для проектов...
Эльдар Гусейнов "Эффективная архитектура мобильной автоматизации для проектов...
QA Club Minsk
 
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
DataArt
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработки
IT-Доминанта
 
BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной авто...
BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной авто...
QA Club Minsk
 
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
 
Solit 2014, Appium. Тестируем гибридные мобильные прирложения в стиле webdriv...
Solit 2014, Appium. Тестируем гибридные мобильные прирложения в стиле webdriv...
solit
 
Создаем масштабируемое корпоративное JavaScript-приложение, Влад Плотник
Создаем масштабируемое корпоративное JavaScript-приложение, Влад Плотник
Sigma Software
 
Appium confet qa
Appium confet qa
ISsoft
 
DUMP-2012 - Мобильные технологии - "Как мы выстраиваем разработку сервиса под...
DUMP-2012 - Мобильные технологии - "Как мы выстраиваем разработку сервиса под...
it-people
 
Владислав Акулич - Monkey Talk - кроссплатформенное средство автоматизации те...
Владислав Акулич - Monkey Talk - кроссплатформенное средство автоматизации те...
COMAQA.BY
 
Автоматизированное тестирование мобильных приложений
Автоматизированное тестирование мобильных приложений
Транслируем.бел
 
Monkey Talk - кросс-платформенное средство автоматизации тестирования мобильн...
Monkey Talk - кросс-платформенное средство автоматизации тестирования мобильн...
SQALab
 
Sqadays 8-barancev
Sqadays 8-barancev
Alexei Lupan
 
Разработка мобильных приложений на HTML5
Разработка мобильных приложений на HTML5
DevDay
 
Desktop app based on node js and html5
Desktop app based on node js and html5
Provectus
 
Microsoft и облако Azure для разработчиков на Android – сервисы для бэкенда, ...
Microsoft и облако Azure для разработчиков на Android – сервисы для бэкенда, ...
Microsoft
 
Appery.io Ukraine_2016
Appery.io Ukraine_2016
Kateryna Tatarovska
 
1С-Битрикс: Управление сайтом Версия .NET
1С-Битрикс: Управление сайтом Версия .NET
Media Gorod
 
Roman Zdebskiy - Client vs. Browser
Roman Zdebskiy - Client vs. Browser
Andrew Mayorov
 
Android Platform - новые мобильные рынки
Android Platform - новые мобильные рынки
Blogcamp Organization Committee
 
Эльдар Гусейнов "Эффективная архитектура мобильной автоматизации для проектов...
Эльдар Гусейнов "Эффективная архитектура мобильной автоматизации для проектов...
QA Club Minsk
 
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
DataArt
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработки
IT-Доминанта
 
BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной авто...
BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной авто...
QA Club Minsk
 
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
 
Solit 2014, Appium. Тестируем гибридные мобильные прирложения в стиле webdriv...
Solit 2014, Appium. Тестируем гибридные мобильные прирложения в стиле webdriv...
solit
 
Создаем масштабируемое корпоративное JavaScript-приложение, Влад Плотник
Создаем масштабируемое корпоративное JavaScript-приложение, Влад Плотник
Sigma Software
 
Appium confet qa
Appium confet qa
ISsoft
 
DUMP-2012 - Мобильные технологии - "Как мы выстраиваем разработку сервиса под...
DUMP-2012 - Мобильные технологии - "Как мы выстраиваем разработку сервиса под...
it-people
 
Владислав Акулич - Monkey Talk - кроссплатформенное средство автоматизации те...
Владислав Акулич - Monkey Talk - кроссплатформенное средство автоматизации те...
COMAQA.BY
 
Автоматизированное тестирование мобильных приложений
Автоматизированное тестирование мобильных приложений
Транслируем.бел
 
Monkey Talk - кросс-платформенное средство автоматизации тестирования мобильн...
Monkey Talk - кросс-платформенное средство автоматизации тестирования мобильн...
SQALab
 
Sqadays 8-barancev
Sqadays 8-barancev
Alexei Lupan
 
Разработка мобильных приложений на HTML5
Разработка мобильных приложений на HTML5
DevDay
 
Desktop app based on node js and html5
Desktop app based on node js and html5
Provectus
 
Microsoft и облако Azure для разработчиков на Android – сервисы для бэкенда, ...
Microsoft и облако Azure для разработчиков на Android – сервисы для бэкенда, ...
Microsoft
 
1С-Битрикс: Управление сайтом Версия .NET
1С-Битрикс: Управление сайтом Версия .NET
Media Gorod
 
Roman Zdebskiy - Client vs. Browser
Roman Zdebskiy - Client vs. Browser
Andrew Mayorov
 
Android Platform - новые мобильные рынки
Android Platform - новые мобильные рынки
Blogcamp Organization Committee
 
Ad

More from ISsoft (20)

Sql инъекции в тестировании
Sql инъекции в тестировании
ISsoft
 
введение в практическую разработку по в Is soft 4-1 and 4-2 clients and commu...
введение в практическую разработку по в Is soft 4-1 and 4-2 clients and commu...
ISsoft
 
Testing of mobile apps
Testing of mobile apps
ISsoft
 
Testing, qa, qc. what the difference
Testing, qa, qc. what the difference
ISsoft
 
Ranorex presentation
Ranorex presentation
ISsoft
 
Bdd and dsl как способ построения коммуникации на проекте
Bdd and dsl как способ построения коммуникации на проекте
ISsoft
 
Тестирование требований
Тестирование требований
ISsoft
 
Тестирование требований
Тестирование требований
ISsoft
 
Sql practise for beginners
Sql practise for beginners
ISsoft
 
Отдел юзабилити
Отдел юзабилити
ISsoft
 
ToDoList
ToDoList
ISsoft
 
ISTQB
ISTQB
ISsoft
 
Prototype presentation
Prototype presentation
ISsoft
 
решение основной проблемы Agile (scrum) проектов в контексте ba
решение основной проблемы Agile (scrum) проектов в контексте ba
ISsoft
 
решение одной из ключевых проблем компетенции Ba специалистов
решение одной из ключевых проблем компетенции Ba специалистов
ISsoft
 
Development of automated tests for ext js based web sites
Development of automated tests for ext js based web sites
ISsoft
 
Bdd or dsl как способ построения коммуникации на проекте
Bdd or dsl как способ построения коммуникации на проекте
ISsoft
 
инфотекс автоматизация тестирования
инфотекс автоматизация тестирования
ISsoft
 
Sikuli script
Sikuli script
ISsoft
 
Планирование тестирования - релизные планы
Планирование тестирования - релизные планы
ISsoft
 
Sql инъекции в тестировании
Sql инъекции в тестировании
ISsoft
 
введение в практическую разработку по в Is soft 4-1 and 4-2 clients and commu...
введение в практическую разработку по в Is soft 4-1 and 4-2 clients and commu...
ISsoft
 
Testing of mobile apps
Testing of mobile apps
ISsoft
 
Testing, qa, qc. what the difference
Testing, qa, qc. what the difference
ISsoft
 
Ranorex presentation
Ranorex presentation
ISsoft
 
Bdd and dsl как способ построения коммуникации на проекте
Bdd and dsl как способ построения коммуникации на проекте
ISsoft
 
Тестирование требований
Тестирование требований
ISsoft
 
Тестирование требований
Тестирование требований
ISsoft
 
Sql practise for beginners
Sql practise for beginners
ISsoft
 
Отдел юзабилити
Отдел юзабилити
ISsoft
 
ToDoList
ToDoList
ISsoft
 
Prototype presentation
Prototype presentation
ISsoft
 
решение основной проблемы Agile (scrum) проектов в контексте ba
решение основной проблемы Agile (scrum) проектов в контексте ba
ISsoft
 
решение одной из ключевых проблем компетенции Ba специалистов
решение одной из ключевых проблем компетенции Ba специалистов
ISsoft
 
Development of automated tests for ext js based web sites
Development of automated tests for ext js based web sites
ISsoft
 
Bdd or dsl как способ построения коммуникации на проекте
Bdd or dsl как способ построения коммуникации на проекте
ISsoft
 
инфотекс автоматизация тестирования
инфотекс автоматизация тестирования
ISsoft
 
Sikuli script
Sikuli script
ISsoft
 
Планирование тестирования - релизные планы
Планирование тестирования - релизные планы
ISsoft
 
Ad

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

  • 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