automation from the trenches

44
AUTOMATION FROM THE TRENCHES BY GLEB RYBALKO

Upload: globallogic-ukraine

Post on 14-Jan-2015

539 views

Category:

Technology


5 download

DESCRIPTION

Glib Rybalko, GlobalLogic’s Test Lead, consultant and trainer was among 26 known Ukrainian and international experts who took a word on IT Weekend Ukraine 2013. Glib discussed features of automated software testing, benefits and feasibility of using this approach on various projects. During his speech, Glib pointed all necessary steps of automated testing implementation and gave homework for those who were interested in this field and wanted to implement it in their projects.

TRANSCRIPT

Page 1: Automation from the trenches

AUTOMATION FROM THE TRENCHESBY GLEB RYBALKO

Page 2: Automation from the trenches

СоОрганизатор конференцийStratoplan World. Kharkov Edition

QA Conf 1.0: Management& Process

QA Conf 1.1: Automation&Tools

СоВедущий подкаста «Тестирование: Backstage»

www.QAConsulting.ru

Page 3: Automation from the trenches

О ЧЕМ ПОГОВОРИМ:

1.Цели, Инструменты, Процесс

2.Архитектура

3.Паттерны проектирования

4.Continuous Integration

5.Логирование результатов

6.Здравый смысл

Page 4: Automation from the trenches

ЗАЧЕМ ВАМ НУЖНА АВТОМАТИЗАЦИЯ

Page 5: Automation from the trenches

ЗАЧЕМ ВАМ НУЖНА АВТОМАТИЗАЦИЯ

1. Это модно\есть в Google\Facebook\Microsoft…?

2. Босс сказал, что нужна ?

3. Прочитал о автоматизации в интернете\услышал доклад и решил попробовать ?

Page 6: Automation from the trenches

ЗАЧЕМ ВАМ НУЖНА АВТОМАТИЗАЦИЯ

Page 7: Automation from the trenches

ЗАЧЕМ ВАМ НУЖНА АВТОМАТИЗАЦИЯ

1. Тестов стало очень много. Не успеваем делать регрессию

2. Нет уверенности в том, что сборки ПО приходят пригодные для тестирования

3. Клиент продолжает добавлять тестовые конфигурации, не успеваем проходить тесты на всех.

4. Нужно протестировать нагрузку на приложение

5. Нужно провести тестирование надежности

Page 8: Automation from the trenches

ДОМАШНЕЕ ЗАДАНИЕ

Напишите 3-5 причин почему автоматизация будет полезна или

бесполезна на вашем проекте

Page 9: Automation from the trenches

КАКИХ ЦЕЛЕЙ ОНА ПОМОЖЕТ ДОСТИГНУТЬ

Page 10: Automation from the trenches

КАКИХ ЦЕЛЕЙ ОНА ПОМОЖЕТ ДОСТИГНУТЬ

1. Ускоренное прохождение тестов

2. Увеличение надежности и стабильности сборок ПО для тестирования

3. Быстрая обратная связь о качестве ПО для программистов и клиента

4. Уменьшение рутинной работы

5. Возможность проведения тестирования, которое нельзя провести в ручную

Page 11: Automation from the trenches

ДОМАШНЕЕ ЗАДАНИЕ

Напишите 3-5 целей, которых поможет вам достичь

автоматизация

Page 12: Automation from the trenches

ЧТО ВЫ БУДЕТЕ АВТОМАТИЗИРОВАТЬ

Page 13: Automation from the trenches

ЧТО ВЫ БУДЕТЕ АВТОМАТИЗИРОВАТЬ

1. Smoke тесты

2. Happy path

3. Стандартные use cases

4. Регрессионное тестирование

5. Тесты производительности

Page 14: Automation from the trenches

КТО БУДЕТ АВТОМАТИЗИРОВАТЬ

Software Developer

Software Developer in

Testing

Manual testerAutomation

tester

Page 15: Automation from the trenches

КАКИЕ ИНСТРУМЕНТЫ ВЫ СОБИРАЕТЕСЬ ИСПОЛЬЗОВАТЬ

Page 16: Automation from the trenches

КАКИЕ ИНСТРУМЕНТЫ ВЫ СОБИРАЕТЕСЬ ИСПОЛЬЗОВАТЬ

• Когда мы задумываемся об инструментах мы думаем о:

• Собственном фреймворке• Коммерческом фреймворке

• Бесплатный инструмент автоматизации (WebDriver, xUnit, JMeter etc.)

• Коммерческий инструмент автоматизации(Test Complete, QTP, Load Runner etc)

Page 17: Automation from the trenches

ДОМАШНЕЕ ЗАДАНИЕ

1. Определите области вашего приложения, с которых вы

начнете автоматизацию

2. Выпишите несколько инструментов автоматизации,

которыми вы будете пользоваться

Page 18: Automation from the trenches

АРХИТЕКТУРА

Продумайте архитектуру тестов перед автоматизацией• Визуализируйте связи между частями

в приложении

• Разделите архитектуру тестов на уровни

• Best practices

• Посоветуйтесь с разработчиками

Page 19: Automation from the trenches

АРХИТЕКТУРА

Уровень представления

данных

(Presentation layer)

Бизнес логика

(Business layer)

Уровень доступа к данным

(Data Access layer)

• Используйте различные уровни абстракции

Page 20: Automation from the trenches

ДОМАШНЕЕ ЗАДАНИЕ

1. Визуализируйте компоненты вашего приложения и связи

между ними

2. Подумайте над тем какие уровни абстракции нужны вам, для

написания автотестов

Page 21: Automation from the trenches

ШАБЛОНЫ ПРОЕКТИРОВАНИЯ

• GRASP (General Responsibility Assignment Software Patterns)

• GoF (Gang of Four)

• Patterns of Enterprise Application Architecture

Page 22: Automation from the trenches

GANG OF FOUR• Erich Gamma,

• Richard Helm,

• Ralph Johnson,

• John Vlissides

• Design Patterns: Elements of Reusable Object-Oriented Software

Page 23: Automation from the trenches

GOF PATTERNS

Порождающие шаблоны проектированияпозволяют сделать систему независимой от способа создания, композиции и представления объектов• Abstract Factory — Абстрактная фабрика

• Builder — Строитель

• Factory Method — Фабричный метод

• Prototype — Прототип

• Singleton — Одиночка

Page 24: Automation from the trenches

GOF PATTERNS

Структурные шаблоны проектированияв которых рассматривается вопрос о том, как из классов и объектов образуются более крупные структуры

• Adapter — Адаптер

• Bridge — Мост

• Composite — Компоновщик

• Decorator — Декоратор

• Facade — Фасад

• Flyweight — Приспособленец

• Proxy — Заместитель

Page 25: Automation from the trenches

GOF PATTERNS

Поведенческие шаблоны проектированияопределяющие алгоритмы и способы реализации взаимодействия различных объектов и классов

• Chain of responsibility — Цепочка обязанностей

• Command — Команда

• Interpreter — Интерпретатор

• Iterator — Итератор

• Mediator — Посредник

• Memento — Хранитель

• Observer — Наблюдатель

• …

Page 26: Automation from the trenches

ДЛЯ ТЕСТИРОВЩИКОВ

• Page Object

• Page Factory

• Facades

• Decorators

Page 27: Automation from the trenches

ПРИМЕРЫ: PAGE OBJECT

http://code.google.com/p/selenium/wiki/PageFactory

public class LoginPage {    public HomePage loginAs(String username, String password) {        // ... clever magic happens here    }        public LoginPage loginAsExpectingError(String username, String password) {        //  ... failed login here, maybe because one or both of the username and password are wrong    }        public String getErrorMessage() {        // So we can verify that the correct error is shown    }}

Page 28: Automation from the trenches

СОВЕТЫ

• Тестировщик должен знать что такое Design Patterns

• Используйте шаблоны при автоматизации

• Думайте о будущем вашего framework

Page 29: Automation from the trenches

ДОМАШНЕЕ ЗАДАНИЕ

1. Выпишите какие шаблоны проектирования используются у вас

2. Подумайте какие шаблоны вы еще могли бы использовать

Page 30: Automation from the trenches

ВРЕМЯ ДЛЯ CI

Page 31: Automation from the trenches

ОБЯЗАННОСТИ CI

• получение исходного кода из репозитория;

• сборка проекта;

• выполнение тестов;

• развёртывание готового проекта;

• отправка отчетов

Page 32: Automation from the trenches

CI ИНСТРУМЕНТЫ

• Jenkins (free) http://jenkins-ci.org/

• Hudson (free) http://hudson-ci.org/

• TeamCity (free up to 3 users)http://www.jetbrains.com/teamcity/

• Cruise Control (free) http://cruisecontrol.sourceforge.net/

Page 33: Automation from the trenches

СОВЕТЫ

• Начните CI как можно раньше.

• Начинайте с простого, не стоит сразу автоматизировать все сборки

Page 34: Automation from the trenches

2 LOG OR NOT 2 LOG

Page 35: Automation from the trenches

2 LOG OR NOT 2 LOG

Если логгирования нет, вам стоит о нем задуматься\его создать

Page 36: Automation from the trenches

2 LOG OR NOT 2 LOG

Разделите логгирование на несколько уровней

• Для клиента

• Для тестировщиков

• Для разработчиков

Page 37: Automation from the trenches

2 LOG OR NOT 2 LOG

Настройка логгирования должна происходить через конфигурационные файлы, а не через код

Page 38: Automation from the trenches

ПРИМЕР

• Канонический логгер

• Log4J, Log4Net…• Собственный логгер

Page 39: Automation from the trenches

ДОМАШНЕЕ ЗАДАНИЕ

1. Узнайте используется ли у вас CI и если да, то стоит добавить туда

базовые автотесты

Page 40: Automation from the trenches

ЗДРАВЫЙ СМЫСЛ

Автоматизация тестирования не отменяет ручного тестирования

Page 41: Automation from the trenches

ЗДРАВЫЙ СМЫСЛ

Не гонитесь за количеством тестов, гонитесь за качеством и покрытием

Page 42: Automation from the trenches

ЗДРАВЫЙ СМЫСЛ

Выделяйте время на то чтобы поднять голову и осмотреться. Иногда из-за деревьев не видно леса

Page 43: Automation from the trenches

ССЫЛКИ• http://code.google.com/p/selenium/wiki

• http://ru.wikipedia.org/wiki/Design_Patterns

• http://selenium2.ru/

• http://www.log4j.ru/

Page 44: Automation from the trenches

ВОПРОСЫ?

Email: [email protected]

Twitter: GRybalko