Это мой первый пост, прошу сильно не пинать. Для начала немного расскажу, кто такой тестировщик. Это специалист, который отлавливает ошибки на всех этапах разработки проекта. Работа рутинная, но ответственная. Получают тестировщики на 20-30% меньше, чем программисты: от 30 000 руб. и выше, всё зависит от опыта.
Становление тестировщиком – самый простой путь старта в IT, есть куда расти (тест-менеджмент, веб-дизайн, чистая разработка).
Эту информацию я почерпнул из открытых источников и подумал, что вот, я не умею программировать, а получать астрономическую зарплату работать в IT – хочется. Думал, что начну с ручного тестирования, устроюсь на работу – а дальше, как пойдёт.
Но на практике оказалось не всё так просто. Кругом полно таких же людей, который думают точно также же, и такие специалисты маловостребованны. Для чего вообще берут на работу стажёров? Работодатель ожидает, что в ближайшем будущем навыки стажёра охрененно вырастут и он будет приносить огромную пользу фирме с дальнейшим повышением зарплаты (но не всегда таким, какую ожидает стажёр). Поэтому чаще всего стажёры, получив опыт, либо настаивают на значительном повышении з/п или уходят к конкурентам.
Несмотря на грустные мысли, я поставил цель – изучить навыки тестирования на Python хотя бы на уровне продвинутого стажёра.
Открыв гугл, я стал искать полезные статьи по языку с нормальными ссылками на учебные материалы. Как ни странно, толковых статей очень мало. Могу отметить только несколько, которые мне понравились больше всего:
professii.su/programmirovanie/python-razrabotchik.html - обзорная статья, много полезной информации про Python + большой список ссылок на полезные сервисы/статьи/видеоуроки для начинающих;
digitology.tech - перевод официальной документации по Python;
ru.stackoverflow.com/questions/420125/Книги-и-учебные-ресурсы-по-python - рекомендуемая литература, курсы и документация по Python от сообщества Stackoverflow;
github.com/vera-l/python-resources#books_online - обучающие материалы по питону (roadmap).
Итак, я внимательно изучил предложенные ссылки и начал учиться. Начал изучение языка Python со следующих бесплатных материалов:
stepik.org/course/58852 - "Поколение Python": курс для начинающих с кучей тренировочных задач, удобный как для самостоятельного изучения.
youtube.com/c/ТимофейХирьянов - отличные видеолекции от Т. Хирьянова.
Через пару месяцев, когда я, обучаясь практически всё свободное время, освоил базу по языку, я прошёл ещё несколько, для получения более глубоких навыков программирования. Мне очень понравилось выполнять задачки по Python, над некоторыми пришлось поломать голову, но зато получаешь реальный кайф, когда всё получается. Думаю, программисты знают, о чём я говорю :).
Вот курсы для опытных Пайтон-разработчиков, которые я смог осилить:
stepik.org/course/68343 - "Поколение Python": курс для продвинутых.
stepik.org/course/512 - курс посвящен базовым принципам языка Python, подойдёт тем, кто уже может писать простейшие программы на Python .
stepik.org/course/1547 - алгоритмы: теория и практика. Структуры данных.
andreyolegovich.ru/qa/pytest - учебник по Pytest – классный фреймворк для тестирования на Python.
pywinauto.readthedocs.io - офиц. документация по Pywinauto - библиотеке Python для автотестирования десктопных приложений на Винде.
docs.qameta.io - документация Allure, крутой библиотеке Python для красивеньких отчетов о результатах тестов.
Есть ещё сотни других библиотек, но я выбрал именно эти.
Затем я проанализировал с пару десяток вакансий на должность тестировщика без опыта работы и выписал повторяющиеся требования. Да, я псих :). Оставалось дело за малым – получить основные навыки работы с этими инструментами. Вот что я стал изучать дальше.
Основы разных видов тестирования: unit, функциональное, интеграционное и другие. В этом мне помогли следующие учебные материалы:
stepik.org/course/16478 - теория тестирования ПО.
stepik.org/course/575 - автоматизация тестирования с помощью Selenium и Python.
testengineer.ru - большой учебник по тестированию.
Далее нужно научиться работать с ключевыми инструментами тестировщика, я выбрал только те, владение которыми реально нужны работодателям:
Selenium - автотестирование web-страниц:
Учебник Selenium на coderlessons.com.
dzen.ru - шпаргалка по Selenium WebDriver 4 + Python.
rukovodstvo.net - статья по основам работы с Selenium и Python.
Jenkins – это опен сорс (фреймворк, проект с открытым исходным кодом), поможет автоматизировать деплой и исправить ошибки для CI/CD:
Видеокурс по Jenkins на русском.
Краткое руководство на coderlessons.com.
Postman – он позволяет посылать запросы к сервисам и работать с их ответами, им можно протестировать бэкенд:
testengineer.ru/gajd-po-testirovaniyu-v-postman - большой гайд по тестированию с Postman для начинающих.
Учебник по POSTMAN.
Jmeter - Java-апплет, который умеет всё (поиск неуловимого бага, тестирование бэкенда и много чего ещё):
Краткое руководство по jMeter.
28 видеоуроков по Jmeter.
Разумеется, ещё нужно изучить дополнительные технологии и инструменты, без них никак:
GIT – удобная система для командной работы и работе с версиями кода:
git-scm.com - большое руководство на русском языке.
stepik.org/course/4138 - курс на Степике.
Аккуратный, необходимый, слегка "продвинутый" видеокурс по Git, который делает жизнь разработчика проще.
Linux:
stepik.org/course/73 - курс для новичков по основам Linux.
Видеокурс по Linux на примере дистрибутива Ubuntu.
Docker:
stepik.org/course/1612 - курс по Docker для тех, кто имеет навыки работы с операционной системой Linux.
Видеоуроки, которые помогут вам понять как устроен Docker (контейнеризация) и где его можно использовать.
stepik.org/course/74010 - курс по основам (установка, написание собственных образов).
stepik.org/course/123300 - курс Docker для начинающих + практический опыт.
Язык SQL для работы с БД:
stepik.org/course/551 - основы базы данных SQL.
stepik.org/course/63054 - интерактивный тренажер по SQL.
Большой видеокурс по SQL для новичков.
Это все эти учебные материалы, которые я внимательно изучил, чтобы иметь начальные навыки тестирования. Вы можете найти в сети любые другие, какие вам больше понравятся. На всё это я потратил примерно около 10 месяцев, я учился почти каждый день по 6-7 часов в день, спать ложился далеко за полночь. И при этом я ещё работал на основной работе. Большое спасибо моей девушке, она меня всё это время поддерживала.
Важный совет! Вы должны развить навыки грамотного поиска информации в интернете, а также учиться чему-нибудь новому каждый день. Даже Senior учится новым технологиям и инструментам. Как сказал однажды Генри Форд «Любой, кто перестает учиться, стареет, и не важно, сколько ему лет: двадцать или восемьдесят. Любой, кто продолжает учиться, остается молодым. Самая великая вещь в жизни - это сохранять свой разум молодым».
Ну вот, вы теперь готовы к поиску стажировки тестировщиком (будет хорошо, если она будет оплачиваемой). Но есть один нюанс. Если вы не студент ВУЗа, то в некоторых стажировках вам могут отказать, так как компаниям интересны именно студенты или выпускники высших учебных учреждений. Но не сдавайтесь! Выполняйте все тестовые задания, прокачивайте свои скиллы, чтобы каждое следующее собеседование давалось вам легче и легче. На практике вы можете пройти 10-15 собеседований, но так и не найти работу. Это нормально, потому что кроме вас на эту должность претендуют еще десятки/сотни соискателей. Поэтому рассматривайте каждый отказ как полезный опыт, который делает вас сильнее.
Как правило для джунов тестовые задания будут с подвохом, поэтому очень внимательно читай задание и не отчаивайся, если ты провалил собеседование. Запомни – рано или поздно тебя возьмут в штат.
Сколько нужно учиться, чтобы стать Python-программистом? Моё личное мнение: если у вас нет склонности к математике (вы больше гуманитарий), то придётся учиться очень долго и очень часто. А если вы математик в душе, то всё равно придётся обучаться долго и много. Такая история. Ещё - у вас будут случаться время от времени нервные срывы. Что делать, это плата за знания, сам через это прошёл.
Запомните! Если у вас не получается что-то ни с 1 или 15 раза, то в программировании – это норма. Обычное дело – постоянно гуглить, шерстить документацию и дебажить код again and again. Если на каком-нибудь курсе вам было легко, но потом вы начали самостоятельную практику = обучение через страдания. НО потом, когда ты осознаёшь, то приходит понимание, что на курсе было лишь смутное понимание программирования. Как-то так.
Поэтому нужно быть морально готовым к тому, чтобы потом не впасть в депрессию от того, что ничего не получилось. Python простой язык, но если придётся разрабатывать сложные системы на любом языке, хоть на Пайтоне, C++ или Java, вам придётся тяжело. Python имеет более читаемый код, и изучить его довольно просто – на базовом уровне (!). Если вы столкнётесь со сложными алгоритмами, то придётся задействовать мозги на все 200%.
Вывод: маловероятно, что вы освоите профессию тестировщика на Python за месяц и начнёте получать по $10k в месяц. Учиться будет тяжело, придётся люто вкалывать каждый день, если хотите добиться результатов. Если есть желание – то всё получится. Поверьте.
Накидал типовые задачи, которые могут дать на собеседовании тестировщику-стажёру:
Проверить функциональность логина в приложении и написать баг-репорт о найденных ошибках.
Протестировать платёжный сервис в интернет-магазине.
Составить баг-репорт для неработающего холодильника.
Написать чек-лист для проверки формы авторизации на сайте.
Не работает кнопка «Добавить в корзину». Проблема на стороне клиента или сервера?
Какие вопросы могут примерно задать:
Какие уровни тестирования вы знаете?
Можете объяснить разницу между функциональным и нефункциональным тестированием?
Какие категории ошибок с выполнением требований вы можете назвать?
Почему Selenium стал стандартом де-факто в автоматизации тестирования?
В чем заключается разница между абсолютным и относительным путями XPath?
Как определить, когда пора прекращать тестирование?
Что делать в случае отсутствия тестовой документации?
Может ли статическое тестирование обнаружить утечки памяти?
Опишите своими словами нагрузочное тестирование.
Назовите этапы жизненного цикла тестирования.
Дерзайте, всем удачи!
P.S. Список полезных материалов для обучения языку Python, думаю, это вам очень пригодится:
CS50 - Гарвардский курс по основам программирования на русском.
PyCheckIO - интерактивный тренажер на Python с проверкой решений.
pythonworld.ru/samouchitel-python - неплохой самоучитель Python.
Курсы с задачами от Информатикс.
pythontutor.ru - хороший курс по программированию с нуля.
kodesource.top/python-exercises - практические уроки для начинающих.
timus.ru - задачи с проверяющей системой.
Сборник упражнений и задач по основам Python - okpython.net/python/python_zadachnik/python_zadachnik.html.
Хендбук по Python от Яндекса.
Параллельно с прохождением курсов и просмотром видео читайте такие книги, как "Изучаем Python" Марка Лутца (4-е изд.) или "Программируем на Python" Майкла Доусона. А вообще обязательно к прочтению крутая книга "Укус Питона" (русский перевод).
Комментарии (26)
TyVik
00.00.0000 00:00+2Поставил лайк за большое количество ссылок на материалы. Найти качественные с каждым годом становится всё сложнее.
user18383
00.00.0000 00:00+1Как по мне становится программистом нужно только если тебе программирование, чтобы потом не получить кризис среднего возраста
Metroid Автор
00.00.0000 00:00Даже просто изучения программирования для души в возрасте +40 поможет улучшить память и критическое мышление, а также получить чувство удовлетворения от способности решить сложные задачи и создавать что-то новое. Любой человек может получать удовлетворение от программирования по-разному, главное чтобы он просто любил им заниматься, а остальное приложится.
nastena_qa
00.00.0000 00:00+1Спасибо большое! Столько полезных ссылок. Как раз сейчас изучаю Python и автоматизацию тестирования.
0Bannon
00.00.0000 00:00+1У Андрея Пронина на канале есть разборы книги Лутца. Это если скучно читать самому. https://youtube.com/playlist?list=PLv_mO3iQ2o2fZllHFsEniuy1D-2IXr8eU
Сайт https://realpython.com/ - можно очень хорошо прокачаться.
И видео с хитрого питона, но здесь всякие продвинутые моменты разбираются:
CaptainSSJ
00.00.0000 00:00Есть смысл брать дорогие курсы от всяких Яндексов и тому подобное?
mironoffsky
00.00.0000 00:00Зависит от цели. Для "вкатывания" - прости господи - нет, для ускоренного повышения квалификации вполне себе, знаю нескольких людей, которые по их курсам до мидлов грейд апали (хотя, честно сказать, это и без курсов вполне себе реализуется).
Metroid Автор
00.00.0000 00:00Не нужно искать "дорогие" или "очень дешёвые" курсы, т.к. по ценности они могут быть примерно одинаковые. Можно взять бесполезный дорогой курс в красивой обёртке и бесплатный курс на степике и не увидеть большой разницы. Мои мысли, как выбрать более-менее нормальный курс: нет заоблачных обещаний, чётко прописанное содержание онлайн-курса (а лучше – договор на обучение). Ещё почитай отзывы, конечно среди них могут попасться покупные, но купить все сайты всё равно не получится. Хотя возможно, гневные отзывы могут быть написаны конкурентами или ленивыми учениками, которые купив курс, и не ударив палец о палец, подумали, что их обманул создатель курса. Покупка курса – это инвестиция в себя + можно сэкономить время, ведь информация отобрана и выложена на блюдечке. Ещё интересный момент - с точки зрения психологии, человек спокойнее относится к потере времени, чем к потере денег. Например, после нескольких десятков бесплатных курсов и видеоуроков может не получиться применить полученные знания на практике, а неудачи или отсутствия результата приведёт к прекращению учёбы. А в голове при этом остаётся мысль - я же ничего не потерял в деньгах, а только время. Советовать онлайн-школы не буду, я с ними ни разу не сталкивался. Но помните, даже если вы запишитесь на самый лучший курс, то всё равно придётся читать дополнительные статьи, книги, документацию и учиться самому искать ответы в интернете (а это тоже навык, которому нужно учиться).
CaptainSSJ
00.00.0000 00:00То есть и самостоятельно вполне себе возможно выучиться путем постоянной практики и чтения всевозможной литературы?
Metroid Автор
00.00.0000 00:00+1Да, если есть огромная сила воли и много свободного времени
CaptainSSJ
00.00.0000 00:00В этом и проблема, что сила воли есть, но основная работа - учитель информатики школе… В принципе и в университете много было программирования, но стал только сейчас заниматься. Времени свободного 2-4 часа в день максимум…
iBljad
00.00.0000 00:00+2А на dtf автор представился разработчиком. Уважаю за адаптацию рекламы под разные площадки ;)
kuznec1993
00.00.0000 00:00+1Спасибо полезно, сам сейчас обучаюсь на тестировщика и понимаю, что важно сразу же познавать базовые азы автоматизации на змейке, возможно сейчас это будет плюсом перед другими тестерами, хотя есть ощущение, что всё таки требования повышаются с каждым годом и в ходу будут "full stack" специалисты по тестированию)
vldmrmlkv
00.00.0000 00:00На всё это я потратил примерно около 10 месяцев, я учился почти каждый день по 6-7 часов в день, спать ложился далеко за полночь. И при этом я ещё работал на основной работе.
Это какой-то speedrun по курсам. Только на ООП с алгоритмами можно год потратить. Много ли запомнилось в итоге? Как автор проверял свои знания после завершения курсов? Есть ли что-то рабочее на github? Много ли задач решено на hackerrank/codewars/leetcode?
Nosferatu7776
00.00.0000 00:00+1Автор красавчик, мои поздравления дорогой))
Проделал примерно такой же путь, было также жестко, прошёл очень много курсов, некоторые по несколько раз, Лутца перечитывал дважды (разные издания), грокаем алгоритмы и прочее, после чего начал писать пет-проекты, заполнять гит-хаб, что заняло 4 месяца кодинга, помимо самостоятельного обучения, семейных дел и работы, сидел днями и ночами. Я готовился на пайтон-разработчика, на всякий случай сделал пару пет-проектов по автоматизации тестирования api и ui)
Неоднократно переделывал резюме, пока не понял, что видят hr, а на что им наплевать), были просмотры и приглашения, а потом началось СВО, вакансий стало в 3 раза меньше для джунов и пропали почти все стажировки, но я уже прошёл точку невозврата в своём обучении, поэтому учил дальше, смотрел видео собесов, помимо этого учил теорию тестирования, советую новичкам наизусть знать этот сайт, он будет палочкой выручалочкой на любой собес по автоматизации тестирования -https://protesting.ru
Спустя 9 месяцев самостоятельного обучения и практики (из которых 5 месяцев мониторил hh, откликался, искал приглашения), получил заветный оффер, отработал за маленькую зарплату 7 месяцев, но получил опыт работы в реальной команде, сейчас перехожу автоматизировать тестирование в фин.тех, наконец-то работать за деньги и совершенствоваться дальше)
P.S. У автоматизаторов тестирования быстрый рост по зарплате и навыкам, но как показывает мой пусть маленький, но опыт, работать приходится как фуллстеку, будет и ручное тестирование и много документов, также много клеевой работы. Главное не отчаиваться, если есть тяга к изучению, то все получится, но надо пахать, чтобы изменить свою жизнь…
P.S.2 Автор, немного не соглашусь с тобой по поводу математики, я гуманитарий от мозга и до костей, скорее суть не в математическом складе, а в способности вашего ума улавливать причинно-следственные связи, понимать логику, запоминать и переносить на код не забывая про pep и что после Вас тоже будут работать люди)…правда, если речь идёт о позиции middle-senior разработчик, тут да, математика будет Вам другом). В тестировании помощник скорее умение договариваться, по крайней мере у меня так ????
Metroid Автор
00.00.0000 00:00Да, насчёт тестирования и умение договариваться - это важно (все наверно знают, как разработчики тихо ненавидят дотошных тестировщиков :))
haska2748
00.00.0000 00:00Я после курсов ДС сел за литкод. И ужаснулся от самых простых Проблем. Я понимаю, что в ДС не сильно много практики в части программирования было, но те простейшие задания что в литкоде для меня они как в первый раз. Как будто питон для меня это инопланетный язык.
Еще один прикол. Как то довольно долго писал скрипты на c#. Простейшие, в основном склеивал. А потом вдруг меня начали трясти чего я это дундук такой ничего не знаю про списки. Я то сильно далеко в документацию не лез, а так думал ооп и ооп. А не тут-то было. Список встроенных методов списка питона штук 8 ну 10, у си шарп - 30 :) ахахахахаха я со стула чуть не рухнул.
Metroid Автор
00.00.0000 00:00Дополню список полезных материалов для самостоятельного обучения, возможно что-то из этого окажется вам полезным:
Алгоритмы и структуры данных на Python 3 - видеокурс на Ютубе.
Timus Online Judge - архив задач с проверяющей системой.
Сборник задач, большинство из которых решается программированием.
Сборник упражнений и задач по основам Python для начинающих.
Приложение "Пишем игры на Python, часть 1", идеально подходит для абсолютных новичков в программировании.
Хороший курс "Обработка данных в Python Pandas" для начинающих.
Euler.jakumo.org/ - интригующие задачи по математике и программированию.
Хороший ютуб-канал по Пайтону от Олега Молчанова.
Более 70 уроков для новичков на code-basics.com.
Основы Python 3 - курс на Udemy.
Курс "Введение в Data Science и машинное обучение" на Степике.
Интересный курс на stepik.org по нейронным сетям.
Курс на Степике, поможет вам правильно гуглить для решения своих задач по программированию.
Exercism – отличный англоязычный сайт для решения задач на Python.
Практикум по программированию – очень большой сборник всевозможных задач на Степике (более 400 задач).
Metroid Автор
Дополню список полезных материалов для самостоятельного обучения, возможно что-то из этого окажется вам полезным:
Курс видеолекций от Computer Science Center.
Алгоритмы и структуры данных на Python 3 - видеокурс на Ютубе.
Олимпиадные задачки на codeforces.com.
Timus Online Judge - архив задач с проверяющей системой.
Сборник задач, большинство из которых решается программированием.
Сборник упражнений и задач по основам Python для начинающих.
Приложение "Пишем игры на Python, часть 1", идеально подходит для абсолютных новичков в программировании.
Хороший курс "Обработка данных в Python Pandas" для начинающих.
Euler.jakumo.org/ - интригующие задачи по математике и программированию.
Любопытный видеокурс Яндекса на Хабре.
Хороший ютуб-канал по Пайтону от Олега Молчанова.
Более 70 уроков для новичков на code-basics.com.
Основы Python 3 - курс на Udemy.
Курс "Введение в Data Science и машинное обучение" на Степике.
Интересный курс на stepik.org по нейронным сетям.
Курс на Степике, поможет вам правильно гуглить для решения своих задач по программированию.
Exercism – отличный англоязычный сайт для решения задач на Python.
Практикум по программированию – очень большой сборник всевозможных задач на Степике (более 400 задач).