Существует мнение, что от разработчиков системы автоматизированных тестов требуется высокая квалификация в области разработки программного обеспечения и солидный багаж знаний. Обычно таких людей в команде тестирования не много. Но можно начать работы по качественной автоматизации тестирования, даже не имея такого опыта. В докладе речь пойдет о:
отборе рекрутов в программу обучения автоматизации тестирования;
первичном пороге для вхождения в рекруты;
составлении учебной программы;
промежуточном контроле и испытаниях;
начале работы над реальными проектами;
подводных камнях и ошибках, которые можно допустить.
Применение этих знаний на собственном опыте позволило компании получить высокое покрытие проекта тестами и достичь результатов, когда каждый из команды разрабатывает и поддерживает автотесты, а также самостоятельно автоматизирует новые проекты.
2. О докладчике
Чуфырина Наталья
Ведущий инженер по автоматизации тестирования
в Mail.ru Group с 2012 года
- Автоматизированное тестирование web приложений
- Обучение разработке автотестов
- Тест дизайн и тест аналитика
- Менеджмент тестирования
3. Как обычно представляют автоматизатора?
- опыт разработки
- знание нескольких языков программирования
- объектно ориентированное
программирование
- администрирование Linux
Что мы часто имеем?
- уверенное владение
компьютером
- выполнение лабораторных
работ в инcтитуте на С/С++
- знание Windows
4. Будет рассказано:
- как отбирать рекрутов автоматизации
- о первичном пороге для вхождения в рекруты
- о составлении учебной программы
- о промежуточном контроле и испытаниях
- о начале работы над реальными проектами
- о подводных камнях и ошибках, которые можно
допустить
5. Отбор рекрутов
1. Опрос коллег
- на наличие желающих автоматизировать
- сколько времени готовы уделять желающие
на обучение
- есть ли навыки программирования
2. Автоматизация - как вариант развития,
новые, интересные задачи и т.п.
3. Автоматизация - как цель, достижение
которой повышает ценность сотрудника,
квалификацию и др.
7. Критерии вхождения в рекруты
Основные критерии:
1. Быть тестировщиком :)
2. Желание учиться, развиваться
3. Наличие свободного времени
(от 8 часов в неделю)
4. Умение доводить дело до конца
5. Наличие желания стать
автоматизатором
8. Учебная программа
Выбираем основные инструменты, которые должен знать инженер по автоматизации:
1. Maven
2. Junit
3. XPath & CSS
4. Selenium
5. Page Object
6. Git
7. Serenity
или другой фреймворк
9. Тема 1. Система сборки проектов
Apache Maven — фреймворк для автоматизации сборки проектов
на основе описания их структуры в файлах на языке POM (англ. Project Object Model)
На обучении разбирается:
1. Что такое pom.xml
2. Корневой элемент и заголовок
3. Зависимости
4. Стандартная структура катологов
5. Локальный, центральный и внутренний репозитории
6. Жизненный цикл сборки
7. Основные фазы сборки проекта
10. Тема 2. JUnit
JUnit - библиотека для модульного тестирования программного обеспечения на языке Java.
Основные аннотации:
1. @Before и @After
2. @BeforeClass и @AfterClass
3. @Test обозначает тестовые методы
У данной аннотации есть два параметра
- expected — задает ожидаемое исключение
- timeout — по истечению тест считается провалившимся
11. Тема 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);
12. Тема 3. Локаторы
Локатор - это строка, уникально идентифицирующая элемент веб-страницы.
С помощью локаторов Selenium понимает с каким веб элементом производить действие
Абсолютный путь
VS
Относительный путь
13. Тема 3. Локаторы
Один из важнейших навыков автоматизатора - умение пользоваться локаторами.
Типы локаторов:
- id
- name
- link
- xpath
- css
14. Тема 4. Selenium
- Создание проекта Maven + Junit + Selenium
- Разработка первого простейшего теста
- Ознакомление с основными методами
15. Тема 4. Selenium
Основные методы WebDriver - абстракция браузера
- инициализация драйвера и запуск браузера
WebDriver driver = new FirefoxDriver()
- открытие страниц
driver.get("https://mail.ru")
- остановка работы драйвера
driver.close();
driver.quit();
17. Тема 5. Page Object
Изучаем шаблон проектирования тестов
1. Позволяет разделять логику выполнения тестов от их реализации
2. Моделирует страницы тестируемого приложения в качестве объектов в коде
3. В результате его использования получаются отдельные классы, отвечающие за работу
с каждой конкретной веб-страницей.
18. Тема 5. Page Object
Изучаем основной принцип:
1. Класс PageObject не обязательно должен представлять собой всю страницу.
Он может быть частью страницы, которая часто используется на сайте (или даже на
одной странице). Это может быть, например, пагинатор или меню.
2. Основной принцип состоит в том, что есть только один класс в Вашем проекте,
который знает о структуре HTML конкретной страницы или ее части.
19. Тема 6. Git
Система контроля версий (Version Control System, VCS) — это система, регистрирующая
изменения в файлах, чтобы в дальнейшем была возможность вернуться к определённым
старым версиям этих файлов.
Изучаем команды необходимые для работы:
git clone — создание копии (удаленного) репозитория
git init — создание репозитория
git add и git rm — индексация изменений
git status — состояние проекта, измененные и не добавленные файлы
git commit — совершение коммита
git fetch и git pull — забираем изменения из центрального репозитория
git push — вносим изменения в удаленный репозиторий
20. Тема 6. Git
Изучаем ветвление и принципы работы с ветками:
git branch — создание, перечисление и удаление веток
git checkout — переключение между ветками, извлечение файлов
git merge — слияние веток (разрешение возможных конфликтов)
21. Подводные камни
1. Обучение не заинтересованных сотрудников = неэффективная трата времени
учащегося и преподавателя
2. Затягивание сроков выполнения работ = непродуктивное обучение
3. Сложная подача материала = отсутствие понимания материала, потеря интереса
В основном на результативность образовательного процесса влияет заинтересованность.
Обучение будет эффективным, если у него есть цель. Обучение автоматизации для
расширения кругозора, без цели заниматься разработкой - трата ресурсов.
22. Реальные проекты и работа в команде
Во время обучения:
- простые примеры по реальным кейсам
- домашнее задание по реальным кейсам
- помощь в выполнении домашних проектов
- консультации по любым вопросам
- ревью домашних заданий
После обучения:
- простые задачи в реальном проекте
- постепенное усложнение задач
- общий чат для решения вопросов
- взаимопомощь при трудностях
В результате:
- дружная команда, способная совместно решить любую задачу
- взаимозаменяемость, благодаря практике деления опытом
23. Спасибо за внимание!
Если у вас остались вопросы, мои контакты для связи:
email - n.seregina@corp.mail.ru
skype - timestampx