Automation from the trenches
-
Upload
globallogic-ukraine -
Category
Technology
-
view
542 -
download
5
description
Transcript of Automation from the trenches
![Page 1: Automation from the trenches](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/1.jpg)
AUTOMATION FROM THE TRENCHESBY GLEB RYBALKO
![Page 2: Automation from the trenches](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/2.jpg)
СоОрганизатор конференций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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/3.jpg)
О ЧЕМ ПОГОВОРИМ:
1.Цели, Инструменты, Процесс
2.Архитектура
3.Паттерны проектирования
4.Continuous Integration
5.Логирование результатов
6.Здравый смысл
![Page 4: Automation from the trenches](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/4.jpg)
ЗАЧЕМ ВАМ НУЖНА АВТОМАТИЗАЦИЯ
![Page 5: Automation from the trenches](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/5.jpg)
ЗАЧЕМ ВАМ НУЖНА АВТОМАТИЗАЦИЯ
1. Это модно\есть в Google\Facebook\Microsoft…?
2. Босс сказал, что нужна ?
3. Прочитал о автоматизации в интернете\услышал доклад и решил попробовать ?
![Page 6: Automation from the trenches](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/6.jpg)
ЗАЧЕМ ВАМ НУЖНА АВТОМАТИЗАЦИЯ
![Page 7: Automation from the trenches](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/7.jpg)
ЗАЧЕМ ВАМ НУЖНА АВТОМАТИЗАЦИЯ
1. Тестов стало очень много. Не успеваем делать регрессию
2. Нет уверенности в том, что сборки ПО приходят пригодные для тестирования
3. Клиент продолжает добавлять тестовые конфигурации, не успеваем проходить тесты на всех.
4. Нужно протестировать нагрузку на приложение
5. Нужно провести тестирование надежности
![Page 8: Automation from the trenches](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/8.jpg)
ДОМАШНЕЕ ЗАДАНИЕ
Напишите 3-5 причин почему автоматизация будет полезна или
бесполезна на вашем проекте
![Page 9: Automation from the trenches](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/9.jpg)
КАКИХ ЦЕЛЕЙ ОНА ПОМОЖЕТ ДОСТИГНУТЬ
![Page 10: Automation from the trenches](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/10.jpg)
КАКИХ ЦЕЛЕЙ ОНА ПОМОЖЕТ ДОСТИГНУТЬ
1. Ускоренное прохождение тестов
2. Увеличение надежности и стабильности сборок ПО для тестирования
3. Быстрая обратная связь о качестве ПО для программистов и клиента
4. Уменьшение рутинной работы
5. Возможность проведения тестирования, которое нельзя провести в ручную
![Page 11: Automation from the trenches](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/11.jpg)
ДОМАШНЕЕ ЗАДАНИЕ
Напишите 3-5 целей, которых поможет вам достичь
автоматизация
![Page 12: Automation from the trenches](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/12.jpg)
ЧТО ВЫ БУДЕТЕ АВТОМАТИЗИРОВАТЬ
![Page 13: Automation from the trenches](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/13.jpg)
ЧТО ВЫ БУДЕТЕ АВТОМАТИЗИРОВАТЬ
1. Smoke тесты
2. Happy path
3. Стандартные use cases
4. Регрессионное тестирование
5. Тесты производительности
![Page 14: Automation from the trenches](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/14.jpg)
КТО БУДЕТ АВТОМАТИЗИРОВАТЬ
Software Developer
Software Developer in
Testing
Manual testerAutomation
tester
![Page 15: Automation from the trenches](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/15.jpg)
КАКИЕ ИНСТРУМЕНТЫ ВЫ СОБИРАЕТЕСЬ ИСПОЛЬЗОВАТЬ
![Page 16: Automation from the trenches](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/16.jpg)
КАКИЕ ИНСТРУМЕНТЫ ВЫ СОБИРАЕТЕСЬ ИСПОЛЬЗОВАТЬ
• Когда мы задумываемся об инструментах мы думаем о:
• Собственном фреймворке• Коммерческом фреймворке
• Бесплатный инструмент автоматизации (WebDriver, xUnit, JMeter etc.)
• Коммерческий инструмент автоматизации(Test Complete, QTP, Load Runner etc)
![Page 17: Automation from the trenches](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/17.jpg)
ДОМАШНЕЕ ЗАДАНИЕ
1. Определите области вашего приложения, с которых вы
начнете автоматизацию
2. Выпишите несколько инструментов автоматизации,
которыми вы будете пользоваться
![Page 18: Automation from the trenches](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/18.jpg)
АРХИТЕКТУРА
Продумайте архитектуру тестов перед автоматизацией• Визуализируйте связи между частями
в приложении
• Разделите архитектуру тестов на уровни
• Best practices
• Посоветуйтесь с разработчиками
![Page 19: Automation from the trenches](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/19.jpg)
АРХИТЕКТУРА
Уровень представления
данных
(Presentation layer)
Бизнес логика
(Business layer)
Уровень доступа к данным
(Data Access layer)
• Используйте различные уровни абстракции
![Page 20: Automation from the trenches](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/20.jpg)
ДОМАШНЕЕ ЗАДАНИЕ
1. Визуализируйте компоненты вашего приложения и связи
между ними
2. Подумайте над тем какие уровни абстракции нужны вам, для
написания автотестов
![Page 21: Automation from the trenches](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/21.jpg)
ШАБЛОНЫ ПРОЕКТИРОВАНИЯ
• GRASP (General Responsibility Assignment Software Patterns)
• GoF (Gang of Four)
• Patterns of Enterprise Application Architecture
![Page 22: Automation from the trenches](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/22.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/23.jpg)
GOF PATTERNS
Порождающие шаблоны проектированияпозволяют сделать систему независимой от способа создания, композиции и представления объектов• Abstract Factory — Абстрактная фабрика
• Builder — Строитель
• Factory Method — Фабричный метод
• Prototype — Прототип
• Singleton — Одиночка
![Page 24: Automation from the trenches](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/24.jpg)
GOF PATTERNS
Структурные шаблоны проектированияв которых рассматривается вопрос о том, как из классов и объектов образуются более крупные структуры
• Adapter — Адаптер
• Bridge — Мост
• Composite — Компоновщик
• Decorator — Декоратор
• Facade — Фасад
• Flyweight — Приспособленец
• Proxy — Заместитель
![Page 25: Automation from the trenches](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/25.jpg)
GOF PATTERNS
Поведенческие шаблоны проектированияопределяющие алгоритмы и способы реализации взаимодействия различных объектов и классов
• Chain of responsibility — Цепочка обязанностей
• Command — Команда
• Interpreter — Интерпретатор
• Iterator — Итератор
• Mediator — Посредник
• Memento — Хранитель
• Observer — Наблюдатель
• …
![Page 26: Automation from the trenches](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/26.jpg)
ДЛЯ ТЕСТИРОВЩИКОВ
• Page Object
• Page Factory
• Facades
• Decorators
![Page 27: Automation from the trenches](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/27.jpg)
ПРИМЕРЫ: 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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/28.jpg)
СОВЕТЫ
• Тестировщик должен знать что такое Design Patterns
• Используйте шаблоны при автоматизации
• Думайте о будущем вашего framework
![Page 29: Automation from the trenches](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/29.jpg)
ДОМАШНЕЕ ЗАДАНИЕ
1. Выпишите какие шаблоны проектирования используются у вас
2. Подумайте какие шаблоны вы еще могли бы использовать
![Page 30: Automation from the trenches](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/30.jpg)
ВРЕМЯ ДЛЯ CI
![Page 31: Automation from the trenches](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/31.jpg)
ОБЯЗАННОСТИ CI
• получение исходного кода из репозитория;
• сборка проекта;
• выполнение тестов;
• развёртывание готового проекта;
• отправка отчетов
![Page 32: Automation from the trenches](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/32.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/33.jpg)
СОВЕТЫ
• Начните CI как можно раньше.
• Начинайте с простого, не стоит сразу автоматизировать все сборки
![Page 34: Automation from the trenches](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/34.jpg)
2 LOG OR NOT 2 LOG
![Page 35: Automation from the trenches](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/35.jpg)
2 LOG OR NOT 2 LOG
Если логгирования нет, вам стоит о нем задуматься\его создать
![Page 36: Automation from the trenches](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/36.jpg)
2 LOG OR NOT 2 LOG
Разделите логгирование на несколько уровней
• Для клиента
• Для тестировщиков
• Для разработчиков
![Page 37: Automation from the trenches](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/37.jpg)
2 LOG OR NOT 2 LOG
Настройка логгирования должна происходить через конфигурационные файлы, а не через код
![Page 38: Automation from the trenches](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/38.jpg)
ПРИМЕР
• Канонический логгер
• Log4J, Log4Net…• Собственный логгер
![Page 39: Automation from the trenches](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/39.jpg)
ДОМАШНЕЕ ЗАДАНИЕ
1. Узнайте используется ли у вас CI и если да, то стоит добавить туда
базовые автотесты
![Page 40: Automation from the trenches](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/40.jpg)
ЗДРАВЫЙ СМЫСЛ
Автоматизация тестирования не отменяет ручного тестирования
![Page 41: Automation from the trenches](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/41.jpg)
ЗДРАВЫЙ СМЫСЛ
Не гонитесь за количеством тестов, гонитесь за качеством и покрытием
![Page 42: Automation from the trenches](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/42.jpg)
ЗДРАВЫЙ СМЫСЛ
Выделяйте время на то чтобы поднять голову и осмотреться. Иногда из-за деревьев не видно леса
![Page 43: Automation from the trenches](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b61ba04a79599c038b482e/html5/thumbnails/43.jpg)
ССЫЛКИ• http://code.google.com/p/selenium/wiki
• http://ru.wikipedia.org/wiki/Design_Patterns
• http://selenium2.ru/
• http://www.log4j.ru/