23
Как создать команду по автоматизации тестирования

Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестирования»

Embed Size (px)

Citation preview

Page 1: Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестирования»

Как создать команду по автоматизации тестирования

Page 2: Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестирования»

О докладчике

Чуфырина Наталья

Ведущий инженер по автоматизации тестирования

в Mail.ru Group с 2012 года

- Автоматизированное тестирование web приложений

- Обучение разработке автотестов

- Тест дизайн и тест аналитика

- Менеджмент тестирования

Page 3: Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестирования»

Как обычно представляют автоматизатора?- опыт разработки- знание нескольких языков программирования- объектно ориентированное

программирование- администрирование Linux

Что мы часто имеем?- уверенное владение

компьютером- выполнение лабораторных

работ в инcтитуте на С/С++- знание Windows

Page 4: Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестирования»

Будет рассказано:

- как отбирать рекрутов автоматизации

- о первичном пороге для вхождения в рекруты

- о составлении учебной программы

- о промежуточном контроле и испытаниях

- о начале работы над реальными проектами

- о подводных камнях и ошибках, которые можно

допустить

Page 5: Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестирования»

Отбор рекрутов

1. Опрос коллег

- на наличие желающих автоматизировать

- сколько времени готовы уделять желающие на обучение

- есть ли навыки программирования

2. Автоматизация - как вариант развития, новые, интересные задачи и т.п.

3. Автоматизация - как цель, достижение которой повышает ценность сотрудника, квалификацию и др.

Page 6: Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестирования»

Отбор рекрутов

И все таки лучший фактор - ЖЕЛАНИЕ УЧИТЬСЯ!

Page 7: Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестирования»

Критерии вхождения в рекруты

Основные критерии:

1. Быть тестировщиком :)

2. Желание учиться, развиваться

3. Наличие свободного времени

(от 8 часов в неделю)

4. Умение доводить дело до конца

5. Наличие желания стать

автоматизатором

Page 8: Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестирования»

Учебная программа

Выбираем основные инструменты, которые должен знать инженер по автоматизации:

1. Maven

2. Junit

3. XPath & CSS

4. Selenium

5. Page Object

6. Git

7. Serenity

или другой фреймворк

Page 9: Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестирования»

Тема 1. Система сборки проектов

Apache Maven — фреймворк для автоматизации сборки проектовна основе описания их структуры в файлах на языке POM (англ. Project Object Model)

На обучении разбирается:

1. Что такое pom.xml

2. Корневой элемент и заголовок

3. Зависимости

4. Стандартная структура катологов

5. Локальный, центральный и внутренний репозитории

6. Жизненный цикл сборки

7. Основные фазы сборки проекта

Page 10: Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестирования»

Тема 2. JUnit

JUnit - библиотека для модульного тестирования программного обеспечения на языке Java.

Основные аннотации:

1. @Before и @After

2. @BeforeClass и @AfterClass

3. @Test обозначает тестовые методы

У данной аннотации есть два параметра

- expected — задает ожидаемое исключение

- timeout — по истечению тест считается провалившимся

Page 11: Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестирования»

Тема 2. JUnit

Проверки JUnit выполняются с помощью класса Assert из библиотеки JUnit.

Например :

Assert.assertTrue(4 == 2 + 2);

Assert.assertFalse(5 == 2 + 2);

Assert.assertEquals(4, 2 + 2);

Assert.assertNotEquals(4, 2 + 1);

Page 12: Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестирования»

Тема 3. Локаторы

Локатор - это строка, уникально идентифицирующая элемент веб-страницы.

С помощью локаторов Selenium понимает с каким веб элементом производить действие

Абсолютный путь

VS

Относительный путь

Page 13: Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестирования»

Тема 3. Локаторы

Один из важнейших навыков автоматизатора - умение пользоваться локаторами.

Типы локаторов:

- id - name- link- xpath - css

Page 14: Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестирования»

Тема 4. Selenium

- Создание проекта Maven + Junit + Selenium

- Разработка первого простейшего теста

- Ознакомление с основными методами

Page 15: Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестирования»

Тема 4. Selenium

Основные методы WebDriver - абстракция браузера

- инициализация драйвера и запуск браузера

WebDriver driver = new FirefoxDriver()

- открытие страниц

driver.get("https://mail.ru")

- остановка работы драйвера

driver.close();

driver.quit();

Page 16: Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестирования»

Тема 4. Selenium

Основные методы WebElement - абстракция отдельного элемента страницы

- click

element.click()

- sendkeys

element.sendKeys(“text”)

- получение свойств

String elementText = element.getText()

String elementRef = element.getAttribute("href")

Page 17: Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестирования»

Тема 5. Page Object

Изучаем шаблон проектирования тестов

1. Позволяет разделять логику выполнения тестов от их реализации

2. Моделирует страницы тестируемого приложения в качестве объектов в коде

3. В результате его использования получаются отдельные классы, отвечающие за работу

с каждой конкретной веб-страницей.

Page 18: Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестирования»

Тема 5. Page Object

Изучаем основной принцип:

1. Класс PageObject не обязательно должен представлять собой всю страницу.Он может быть частью страницы, которая часто используется на сайте (или даже на одной странице). Это может быть, например, пагинатор или меню.

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

Page 19: Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестирования»

Тема 6. Git

Система контроля версий (Version Control System, VCS) — это система, регистрирующая изменения в файлах, чтобы в дальнейшем была возможность вернуться к определённым старым версиям этих файлов.

Изучаем команды необходимые для работы:

git clone — создание копии (удаленного) репозиторияgit init — создание репозиторияgit add и git rm — индексация измененийgit status — состояние проекта, измененные и не добавленные файлыgit commit — совершение коммитаgit fetch и git pull — забираем изменения из центрального репозиторияgit push — вносим изменения в удаленный репозиторий

Page 20: Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестирования»

Тема 6. Git

Изучаем ветвление и принципы работы с ветками:

git branch — создание, перечисление и удаление ветокgit checkout — переключение между ветками, извлечение файловgit merge — слияние веток (разрешение возможных конфликтов)

Page 21: Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестирования»

Подводные камни

1. Обучение не заинтересованных сотрудников = неэффективная трата времени учащегося и преподавателя

2. Затягивание сроков выполнения работ = непродуктивное обучение3. Сложная подача материала = отсутствие понимания материала, потеря интереса

В основном на результативность образовательного процесса влияет заинтересованность.Обучение будет эффективным, если у него есть цель. Обучение автоматизации для расширения кругозора, без цели заниматься разработкой - трата ресурсов.

Page 22: Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестирования»

Реальные проекты и работа в команде

Во время обучения:- простые примеры по реальным кейсам- домашнее задание по реальным кейсам- помощь в выполнении домашних проектов- консультации по любым вопросам- ревью домашних заданий

После обучения:- простые задачи в реальном проекте- постепенное усложнение задач- общий чат для решения вопросов- взаимопомощь при трудностях

В результате:- дружная команда, способная совместно решить любую задачу- взаимозаменяемость, благодаря практике деления опытом

Page 23: Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестирования»

Спасибо за внимание!

Если у вас остались вопросы, мои контакты для связи:email - [email protected] - timestampx