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 окна приложения:
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