- Перед тем, как начать
- Можно ли стать мидлом, автоматизатором по курсам/книгам?
- Вход в программирование/разработку
- Вход в автотестирование
- HTTP/HTTPS
- Команды терминала Linux
- Docker
- Git
- CI/CD
- SQL
- Фреймворки и библиотеки тестирования
- Selenium или Playwright
- Отчеты в тестировании
- TMS
- Нагрузочное тестирование
- Типизация в Python
- Полезные библиотеки для тестирования
- HTML/CSS/React
- Django/Flask/FastApi
- Список книг
- Как составить резюме?
- Собеседования
- Как правильно оформить свой репозиторий ?
- Ссылки
Перед тем, как начать ↑
Перед тем, как начать обучение автоматизированному тестированию на Python, ожидается, что вы уже знаете теорию тестирования (азы!). Если нет, то не стоит перепрыгивать ступень. Эта карта написана для студентов, которые только что прошли курсы по теории тестирования и хотят двигаться дальше. Здесь я собрал материал, исходя из своего опыта (у каждого он разный). У каждого материала проставлен вес, где 3*🚀 = пройти обязательно, а 🚀 - можно оставить на потом.
Ниже будут ссылки на курсы. Сразу скажу - я не сотрудничаю с данными площадками, но имел положительный опыт (на момент июля 2023 года).
По моим подсчетам, обучение займет 13-15 месяцев (да, тестирование это не легкий способ войти в IT). Но каждый человек уникален, так что вы можете потратить меньше или больше времени, это нормально!
И еще (очень важное!) - при обучении неизбежны спады/трудности. Держать темп обучения на длинную дистанцию трудно. Не надо паниковать, переживать, бросать учебу. Отдохните, займитесь любимым делом и на следующий день возвращайтесь. Удачи!
Можно ли стать мидлом, автоматизатором по курсам/книгам? ↑
🚀🚀🚀 Вход в программирование/разработку ↑
Есть мнение, что уровень автотестера может быть минимальным или меньшим, чем у разработчика. Я с этим не согласен. При разработке сложных и больших (хотя все относительно) тестов нехватка знаний сыграет злую шутку: где-то не хватит опыта, где-то код будет нечитаем и неподдающийся рефакторингу. Поэтому знать азы программирования необходимо
Для себя я определил, что есть 3 варианта:
- Книги
- Youtube
- Курсы
Книги:
Youtube:
Курсы:
hexlet (начальный уровень) бесплатно
hexlet (курс разработчика, не обязательно доходить до конца) платно, оплата помесячно
🚀🚀🚀 Вход в автотестирование ↑
Youtube:
Курсы:
яндекс практика (Курс «Тестирование веб-приложений на Python») платно
🚀🚀🚀 HTTP/HTTPS ↑
После того, как веб тестирование и программирование будет освоено, плавно переходим на тестирование API. Начнем с протокола HTTP/HTTPS
🚀🚀 Команды терминала Linux ↑
Рано или поздно вы столкнетесь с работой в терминале
🚀🚀 Docker ↑
Docker — это программное обеспечение для автоматизации развёртывания и управления приложениями в средах с поддержкой контейнеризации.
50 вопросов по Docker, которые задают на собеседованиях, и ответы на них
описание docker и примеры использования
🚀🚀🚀 Git ↑
Ваш код где-то надо хранить. Для этого есть git. Git — система управления версиями с распределенной архитектурой. Для начала достаточно будет выучить около 10 основных команд (остальному вас успешно научат на работе)
Git и GitHub Курс Для Новичков
🚀 SQL ↑
Язык структурированных запросов (SQL) – это язык программирования для хранения и обработки информации в реляционной базе данных.
🚀🚀🚀 CI/CD ↑
CI/CD (Continuous Integration, Continuous Delivery — непрерывная интеграция и доставка) — это технология автоматизации тестирования и доставки новых модулей разрабатываемого проекта заинтересованным сторонам (разработчикам, аналитикам, инженерам качества, конечным пользователям и др.).
🚀🚀 Фреймворки тестирования ↑
Основной фреймворк для тестирования в Python это pytest
Pytest имеет мощный функционал:
- фикстуры
- параметризация
- хуки
- плагины
- параллелизация тестов
- ...
Рекомендую освоить эту тему, после того, как пройдете основные темы
Мастер-класс «PyTest на примере UI-тестов»
Pytest Plugins: Как расширить функционал тестового фреймворка через плагины
🚀🚀 Selenium или Playwright ↑
Для тестирования UI есть популярный Selenium и Playwright . Что из них выбрать? По моему мнению, если вы начинаете новый проект, то предпочтительнее будет Playwright.
🚀🚀 Отчеты в тестировании ↑
Отчеты тестирования необходимы будут вам, разработчикам и менеджерам. Например, в отчет можно добавить скриншот, если UI тест упал или логи для API тестов.
Еще есть отчеты об покрытии кода ,покрытия API тестов 1 и 2
🚀🚀 TMS ↑
TMS - система управления тестированием. Там вы будете хранить тест кейсы, тест планы, прогоны и так далее. Большинство TMS имеет интеграцию для разных языков/тестовых фреймворков. Таким образом, вы можете линковать тест кейсы с тестами, создавать тест кейсы автоматом (экономит кучу времени) и так далее.
🚀🚀 Нагрузочное тестирование ↑
Нагрузочное тестирование это отдельная дисциплина. Но лучше провести хотя бы какое-то нагрузочное перед релизом, чем без него. Можете узнать много интересного о своем приложении. В python применяется locust.
🚀🚀 Типизация в Python ↑
Типизация в языках программирования. У Python динамическая/сильная типизация. Что это значит ?
Вот так сделать нельзя
a = 1 //int
b = '1' //str
print(a + b)
а вот так сделать можно
a = 1
b = '1'
b = 1
print(a + b)
Вопрос, является ли это хорошо/плохо является открытым. Для того, что бы добавить в Python типы (с оговорками) используем type hint
🚀🚀 Полезные библиотеки для тестирования ↑
Какие библиотеки помогут нам при тестировании
Mypy - это статическая проверка типов для Python
Faker - это пакет Python, который генерирует файковые данные
Проверка данных и управление настройками с помощью аннотаций типа Python
🚀 HTML/CSS/React ↑
HTML — стандартизированный язык гипертекстовой разметки документов для просмотра веб-страниц в браузере.
CSS — формальный язык описания внешнего вида документа, написанного с использованием языка разметки.
Будет полезно изучить, как работает современный веб. И даже написать свое небольшое приложение, например, на React.
🚀 Django/Flask/FastApi ↑
Аналогично как с вебом, не помишает разобраться, как работает бэкенд.
🚀🚀 Список книг ↑
Если выбрали путь автоматизации и программирования, то советую прочитать следующие книги
🚀🚀 Как составить резюме? ↑
🚀🚀 Собеседования ↑
🚀🚀🚀 Как правильно оформить свой репозиторий ? ↑
Иметь свой репозиторий, который будет красиво формлен это 50% успеха. Основное правило - оформляйте так, что бы человек с улицы понял, о чем этот репозиторий и что необходимо сделать, чтобы запустить код/тесты.