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

  • View
    4.297

  • Download
    4

  • Category

    Software

Preview:

Citation preview

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

О докладчике

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

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

в Mail.ru Group с 2012 года

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

допустить

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1. Maven

2. Junit

3. XPath & CSS

4. Selenium

5. Page Object

6. Git

7. Serenity

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

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

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

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

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

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

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

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

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

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

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

Тема 2. JUnit

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

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

1. @Before и @After

2. @BeforeClass и @AfterClass

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

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

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

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

Тема 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);

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

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

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

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

VS

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

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

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

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

- id - name- link- xpath - css

Тема 4. Selenium

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

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

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

Тема 4. Selenium

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

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

WebDriver driver = new FirefoxDriver()

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

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

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

driver.close();

driver.quit();

Тема 4. Selenium

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

- click

element.click()

- sendkeys

element.sendKeys(“text”)

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

String elementText = element.getText()

String elementRef = element.getAttribute("href")

Тема 5. Page Object

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

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

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

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

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

Тема 5. Page Object

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

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

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

Тема 6. Git

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

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

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

Тема 6. Git

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

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

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

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

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

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

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

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

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

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

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

Если у вас остались вопросы, мои контакты для связи:email - n.seregina@corp.mail.ruskype - timestampx

Recommended