Upload
mailru-group
View
4.297
Download
4
Embed Size (px)
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 - [email protected] - timestampx