Это мой первый пост, прошу сильно не пинать. Для начала немного расскажу, кто такой тестировщик. Это специалист, который отлавливает ошибки на всех этапах разработки проекта. Работа рутинная, но ответственная. Получают тестировщики на 20-30% меньше, чем программисты: от 30 000 руб. и выше, всё зависит от опыта.

Становление тестировщиком – самый простой путь старта в IT, есть куда расти (тест-менеджмент, веб-дизайн, чистая разработка).

Эту информацию я почерпнул из открытых источников и подумал, что вот, я не умею программировать, а получать астрономическую зарплату работать в IT – хочется. Думал, что начну с ручного тестирования, устроюсь на работу – а дальше, как пойдёт.

Но на практике оказалось не всё так просто. Кругом полно таких же людей, который думают точно также же, и такие специалисты маловостребованны. Для чего вообще берут на работу стажёров? Работодатель ожидает, что в ближайшем будущем навыки стажёра охрененно вырастут и он будет приносить огромную пользу фирме с дальнейшим повышением зарплаты (но не всегда таким, какую ожидает стажёр). Поэтому чаще всего стажёры, получив опыт, либо настаивают на значительном повышении з/п или уходят к конкурентам.

Несмотря на грустные мысли, я поставил цель – изучить навыки тестирования на Python хотя бы на уровне продвинутого стажёра.

Открыв гугл, я стал искать полезные статьи по языку с нормальными ссылками на учебные материалы. Как ни странно, толковых статей очень мало. Могу отметить только несколько, которые мне понравились больше всего:

Итак, я внимательно изучил предложенные ссылки и начал учиться. Начал изучение языка 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, функциональное, интеграционное и другие. В этом мне помогли следующие учебные материалы:

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

Selenium - автотестирование web-страниц:

  • Учебник Selenium на coderlessons.com.

  • dzen.ru - шпаргалка по Selenium WebDriver 4 + Python.

  • rukovodstvo.net - статья по основам работы с Selenium и Python.

Jenkins – это опен сорс (фреймворк, проект с открытым исходным кодом), поможет автоматизировать деплой и исправить ошибки для CI/CD:

Postman – он позволяет посылать запросы к сервисам и работать с их ответами, им можно протестировать бэкенд:

Jmeter - Java-апплет, который умеет всё (поиск неуловимого бага, тестирование бэкенда и много чего ещё):

Разумеется, ещё нужно изучить дополнительные технологии и инструменты, без них никак:

GIT – удобная система для командной работы и работе с версиями кода:

  • git-scm.com - большое руководство на русском языке.

  • stepik.org/course/4138 - курс на Степике.

  • Аккуратный, необходимый, слегка "продвинутый" видеокурс по Git, который делает жизнь разработчика проще.

Linux:

Docker:

  • stepik.org/course/1612 - курс по Docker для тех, кто имеет навыки работы с операционной системой Linux.

  • Видеоуроки, которые помогут вам понять как устроен Docker (контейнеризация) и где его можно использовать.

  • stepik.org/course/74010 - курс по основам (установка, написание собственных образов).

  • stepik.org/course/123300 - курс Docker для начинающих + практический опыт.

Язык 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, думаю, это вам очень пригодится:

Параллельно с прохождением курсов и просмотром видео читайте такие книги, как "Изучаем Python" Марка Лутца (4-е изд.) или "Программируем на Python" Майкла Доусона. А вообще обязательно к прочтению крутая книга "Укус Питона" (русский перевод).

Комментарии (26)


  1. Metroid Автор
    00.00.0000 00:00

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


  1. TyVik
    00.00.0000 00:00
    +2

    Поставил лайк за большое количество ссылок на материалы. Найти качественные с каждым годом становится всё сложнее.


  1. user18383
    00.00.0000 00:00
    +1

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


    1. Metroid Автор
      00.00.0000 00:00

      Даже просто изучения программирования для души в возрасте +40 поможет улучшить память и критическое мышление, а также получить чувство удовлетворения от способности решить сложные задачи и создавать что-то новое. Любой человек может получать удовлетворение от программирования по-разному, главное чтобы он просто любил им заниматься, а остальное приложится.


    1. KvanTTT
      00.00.0000 00:00
      +2

      Не распарсил фразу. Имеется в виду нравится?


  1. nastena_qa
    00.00.0000 00:00
    +1

    Спасибо большое! Столько полезных ссылок. Как раз сейчас изучаю Python и автоматизацию тестирования.


  1. 0Bannon
    00.00.0000 00:00
    +1

    У Андрея Пронина на канале есть разборы книги Лутца. Это если скучно читать самому. https://youtube.com/playlist?list=PLv_mO3iQ2o2fZllHFsEniuy1D-2IXr8eU

    Сайт https://realpython.com/ - можно очень хорошо прокачаться.

    И видео с хитрого питона, но здесь всякие продвинутые моменты разбираются:

    https://youtube.com/channel/UC2-j4-hV33hboyK1FtukJ9w


  1. CaptainSSJ
    00.00.0000 00:00

    Есть смысл брать дорогие курсы от всяких Яндексов и тому подобное?


    1. mironoffsky
      00.00.0000 00:00

      Зависит от цели. Для "вкатывания" - прости господи - нет, для ускоренного повышения квалификации вполне себе, знаю нескольких людей, которые по их курсам до мидлов грейд апали (хотя, честно сказать, это и без курсов вполне себе реализуется).


    1. Metroid Автор
      00.00.0000 00:00

      Не нужно искать "дорогие" или "очень дешёвые" курсы, т.к. по ценности они могут быть примерно одинаковые. Можно взять бесполезный дорогой курс в красивой обёртке и бесплатный курс на степике и не увидеть большой разницы. Мои мысли, как выбрать более-менее нормальный курс: нет заоблачных обещаний, чётко прописанное содержание онлайн-курса (а лучше – договор на обучение). Ещё почитай отзывы, конечно среди них могут попасться покупные, но купить все сайты всё равно не получится. Хотя возможно, гневные отзывы могут быть написаны конкурентами или ленивыми учениками, которые купив курс, и не ударив палец о палец, подумали, что их обманул создатель курса. Покупка курса – это инвестиция в себя + можно сэкономить время, ведь информация отобрана и выложена на блюдечке. Ещё интересный момент - с точки зрения психологии, человек спокойнее относится к потере времени, чем к потере денег. Например, после нескольких десятков бесплатных курсов и видеоуроков может не получиться применить полученные знания на практике, а неудачи или отсутствия результата приведёт к прекращению учёбы. А в голове при этом остаётся мысль - я же ничего не потерял в деньгах, а только время. Советовать онлайн-школы не буду, я с ними ни разу не сталкивался. Но помните, даже если вы запишитесь на самый лучший курс, то всё равно придётся читать дополнительные статьи, книги, документацию и учиться самому искать ответы в интернете (а это тоже навык, которому нужно учиться).

       


      1. CaptainSSJ
        00.00.0000 00:00

        То есть и самостоятельно вполне себе возможно выучиться путем постоянной практики и чтения всевозможной литературы?


        1. Metroid Автор
          00.00.0000 00:00
          +1

          Да, если есть огромная сила воли и много свободного времени


          1. CaptainSSJ
            00.00.0000 00:00

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


            1. Ivan22
              00.00.0000 00:00

              "свободное время" такая вещь по себе знаю, от силы воли зависит напрямую


  1. iBljad
    00.00.0000 00:00
    +2

    А на dtf автор представился разработчиком. Уважаю за адаптацию рекламы под разные площадки ;)


  1. Leha_B
    00.00.0000 00:00

    Так всё-таки тестировщиком или разработчиком стал?


    1. Metroid Автор
      00.00.0000 00:00

      прочитал статью на dtf , автор пишет что работает в отделе тестирования.


  1. POMXARK
    00.00.0000 00:00
    +1

    Так разработчиком или тестировщиком?


    1. BTRchik
      00.00.0000 00:00

      Разработчиком тестов:)


  1. kuznec1993
    00.00.0000 00:00
    +1

    Спасибо полезно, сам сейчас обучаюсь на тестировщика и понимаю, что важно сразу же познавать базовые азы автоматизации на змейке, возможно сейчас это будет плюсом перед другими тестерами, хотя есть ощущение, что всё таки требования повышаются с каждым годом и в ходу будут "full stack" специалисты по тестированию)


    1. Metroid Автор
      00.00.0000 00:00

      про фулстек полностью согласен, походу к этому всё идёт.


  1. vldmrmlkv
    00.00.0000 00:00

    На всё это я потратил примерно около 10 месяцев, я учился почти каждый день по 6-7 часов в день, спать ложился далеко за полночь. И при этом я ещё работал на основной работе.

    Это какой-то speedrun по курсам. Только на ООП с алгоритмами можно год потратить. Много ли запомнилось в итоге? Как автор проверял свои знания после завершения курсов? Есть ли что-то рабочее на github? Много ли задач решено на hackerrank/codewars/leetcode?


  1. 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 разработчик, тут да, математика будет Вам другом). В тестировании помощник скорее умение договариваться, по крайней мере у меня так ????


    1. Metroid Автор
      00.00.0000 00:00

      Да, насчёт тестирования и умение договариваться - это важно (все наверно знают, как разработчики тихо ненавидят дотошных тестировщиков :))


  1. haska2748
    00.00.0000 00:00

    Я после курсов ДС сел за литкод. И ужаснулся от самых простых Проблем. Я понимаю, что в ДС не сильно много практики в части программирования было, но те простейшие задания что в литкоде для меня они как в первый раз. Как будто питон для меня это инопланетный язык.

    Еще один прикол. Как то довольно долго писал скрипты на c#. Простейшие, в основном склеивал. А потом вдруг меня начали трясти чего я это дундук такой ничего не знаю про списки. Я то сильно далеко в документацию не лез, а так думал ооп и ооп. А не тут-то было. Список встроенных методов списка питона штук 8 ну 10, у си шарп - 30 :) ахахахахаха я со стула чуть не рухнул.


  1. oleg_rico
    00.00.0000 00:00

    На открытом образовании есть курсы по c sharp и питону


  1. Metroid Автор
    00.00.0000 00:00

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