Ну что, дружище, здесь шары не будет. Поскольку в современном мире автоматизации доминируют динозавры, нормальных бесплатных курсов нет (кто знает - дайте линк!). Так что прийдется раскошелится на около 110 баксов в месяц, да еще и не хило повкалывать от 2 до 4 месяцев чтобы набраться реального практического опыта.
Ну ок, ближе к делу. Во-первых вот сразу программа. А вот пример далеко немногих “выжимок” из нее - видео “KISS Automation” (правда с большинством примеров на Python :D).
Ну а теперь попробуем разобраться что мы с этой программой будем делать.
О чем данный курс?
На занятиях ты не просто познакомишься с базой написания автотестов, но и с помощью специально подобранных практических заданий набьешь шишки, которые автоматизаторы набивают и после 4-х лет опыта, в большинстве случаев так и не поняв дзен. Ты же, в добавок к шишкам, как следствие усердной работы, получишь все секреты закрепляя знания на практике с помощью специально подобранных домашних заданий. Начав с простого смоук теста, ты построишь полноценное тестовое покрытие небольшого приложения в соответствии с лучшими практиками современной автоматизации. Во второй половине курса ты возьмешь быка Selenium за рога и укротишь этого зверя написав собственный фреймворк класса Selenide. Причем не один а несколько, попутно разобравшись с разными подходами и парадигмами в программировании, и разными нюансами джавы для их поддержки. Последнее позволит закалить твои скилы достаточно чтобы потом разрабатывать фреймворки не только для автоматизации Web UI, а и для других задач для которых нужных решений может не быть. Конечно же именно для последнего мы и будем учится разрабатывать фреймворки, а не для того чтобы каждый раз изобретать велосипед;)
Курс построен таким образом, чтобы на выходе мы получили специалиста, способного самостоятельно построить автоматизацию на проекте.
Для кого?
- для мануальных тестировщиков желающих начать строить автоматизацию делая свою работу более еффективной
- для начинающих в тестировании и чувствующих в себе силу что бы использовать инструменты для автоматизации своих рутинных действий
- для совсем новичков которые хотят ворваться в мир ИТ на всех парах, и добавив кучу реальных скилов в свое резюме - повысить свои шансы получения действительно интересной работы за заслуженное вознаграждение.
- для автоматизаторов желающих познакомиться с Java + Selenide, нюансами подходов к построению тестового покрытия и написания эффективных тестов, структурировать свои знания и познакомиться с лучшими практиками в автоматизации, и в конце концов глубже понять как работает Selenium, Selenide, и как построить последний из первого, и по ходу научится профессии Software Developer in Test.
Что нужно уже знать?
- Опыт в тестировании (или очень хорошие знания в теории и сильная техническая база)
- Базовые навыки java (соответствующие первым 7 бесплатным занятиям на javarush.ru) и желание продолжать развивать их дальше параллельно с процессом обучения автоматизации на курсе.
- Базовые знания в автоматизации с помощью Selenide
#Как подготовиться и попасть на курс?
- Пройти первые 7 бесплатных занятий на http://javarush.ru (можно использовать любой другой аналог)
- Посмотреть вводное занятие по автоматизации с помощью Java + Selenide.
- Настроить среду для разработки тестов на своем ноутбуке.
- Решить тестовое задание.
- Пройти первое бесплатное ревью от преподавателя или ментора
- Провести оплату
Не хочется что бы ты потратил свое время зря, поэтому подготовься тщательно. Ты можешь задавать вопросы возникающие по ходу подготовки в этом чате: https://gitter.im/yashaka/start-selenium. У тебя точно должны они появиться, как минимум по тестовому заданию. Так что не стесняйся. Так же можешь использовать список частых вопросов и ответов которые возникают у студентов при работе над заданием, только не забегай вперед, всегда старайся подсмотреть только по чуть чуть, иначе эффективность обучения снизится многократно. Как только будет рабочее решение отправляй на yashaka@gmail.com для первого бесплатного ревью. Можешь также запросить ревью напрямую в чате start-selenium. Отправляй в виде ссылки на код выложенный через http://refheap.com или http://pastebin.com. Только не подсматривай в решения других (по линкам из чата)! Для себя же учишься. Лучше спроси лишний раз помощи.
Как только получишь “done” от преподавателя - можешь проводить оплату, после завершения которой тебя добавят в наш обычный процесс обучения. Получается фиксированной даты набора нет, занятия все равно почти “индивидуальные”, и выбор даты старта зависит только от тебя.
Как видишь у тебя есть возможность немножко поучиться “на шару”, прочувствовать сложность и атмосферу, и понять в конце концов подходит тебе курс или нет. В любом случае перед началом обучения подтяни программирование на уровне первых 7-ми занятий из http://javarush.ru или другого похожего ресурса, если этот покажется тебе слегка скучным (он такой и есть, просто для “совсем новичков” и выбора то нет особо).
Как построено обучение?
Курс включает в себя одно-двухчасовые видео-лекции (около 30) и около 32 домашних заданий. Большинство домашних заданий проверяется преподавателем или ментором до тех пор, пока оно не будет сделано “идеально”. Часто студенты переделывают домашки от 5 до 10 раз. Ревью некоторых особо тяжелых домашек могут занимать у преподавателя час-полтора-два времени за одну проверку. К некоторым заданиям идут текстовые или видео ревью в виде наборов часто встречаемых ошибок и соответствующих решений. В таких случаях ты сможешь проверить себя самостоятельно и сделать работу над ошибками перед тем как отправлять решение преподавателю, и соответственно сэкономить и свое и его время. Также будет доступ к FAQ - набору часто встречаемых вопросов и ответов при работе над заданиями. Если в FAQ ответа нет - вопросы можно задавать в общий чат, где тот кто первый увидит (преподаватель или ментор или другой студент знающий ответ) - тот и ответит.
Из опыта предыдущих групп, курс занимает около 4 месяцев, при условии, что слушатель выполняет 7-8 домашних заданий в месяц. “Отличники” умудряются закончить половину курса (только часть о Selenide) за 5 недель, “хорошисты” - в полтора раза медленнее, “троешники” - в два, “двоешники” - не заканчивают :D. Быть “отличником” обычно не значит быть “самым умным” а скорее “самым усердным”, что выливается в ежедневной работе над домашками, по несколько часов, а на выходных - и того больше. Курс действительно сложный:) “Це тобі не півники смоктати”
Процесс обучения выглядит следующим образом:
Есть Google Sheets, в котором открывается доступ к видео лекциям и домашкам по мере прогресса студента. Студент смотрит видео, берется за домашку и переводит ее в in progress, сделал - переводит в ready for review (оставляя в комментарии ссылку на решение). Далее преподаватель/или ментор - проверяют домашку и высылают ревью, переоткрывая при этом домашку (делая ее reopened), студент снова берется за работу (in progress), и так далее до отличного результата, пока преподаватель не поставит done. Бывает, что домашки переделываются до 10 раз, но в итоге преподаватель и студент уверенны, что материал понят и закреплен на отлично.
Полная стоимость
И того - видео лекции, домашние задания, их тщательная проверка и непрерывная поддержка на протяжении 3-4 месяцев - за 110 $ в месяц (в гривнах, по курсу установленному магазином). При этом, за тобой остается выбор длительности обучения. Если ты сможешь на отлично осилить материал в более короткие сроки, то и заплатишь соответственно меньше: за три месяца – 330 $, за два – 220$ и так далее. Если тебе нужна будет “передышка”, сможешь уйти на каникулы и продолжить обучения когда тебе будет угодно.
На самом деле, учитывая явно заниженную цену, эта версия курса продержится не долго, и ее заменит более “офлайн версия”, в которую будут входить только текстовые/видео ревью вместо ревью от преподавателя/ментора, и текстовые FAQ вместо постоянного живого саппорта в скайпе от преподавателя/ментора. А дополнительные живые саппорт и ревью будут докупаться отдельно по часовому рейту преподавателей. Так что поспеши пока не закончилась возможность получить только одно ревью (из многих) например на 2 часа от инженера с рейтом в 40-45 баксов в час - всего лишь за 110 баксов в месяц
FAQ
У меня нет опыта в программировании. Потяну ли я курс?
Смотри раздел “Как подготовиться?”. Он и будет твоим тестом. Если ты пройдешь указанное в разделе, и у тебя не пропадет желание двигаться дальше - значит и курс будет тебе по зубам. Как минимум - его первая половина.
Может мне лучше пройти какие то курсы по программированию для совсем новичков?
Смотри раздел “Как подготовиться?”. Если ты не потянешь javarush.ru который и так рассчитан на “совсем совсем новичков” и при том бесплатный (нужные 7 занятий), то скорее всего: или IT не твой путь, или путь в IT будет очень сложным, и нужно хорошо подумать - стоит ли оно того?
Но если у меня будут появляться вопросы во время подготовки, что делать?
Учись использовать google, и в случае неудачи - обращайся в чат: https://gitter.im/yashaka/start-selenium
Что я смогу делать с точки зрения практики с навыками полученными на курсе?
В случае успешного прохождения первой половины курса (о Selenide) ты сможешь уверенно писать полноценные эффективные Web UI Acceptance тесты с помощью Java + Selenide строя правильное тестовое покрытие, разбивать тесты по сьютам и добавлять их автоматический запуск в CI на Jenkins.
Если же дойдешь до конца - сможешь рассчитывать на роль Software Development in Test Engineer, конечно в зависимости от того опыта который ты уже наработал. У тебя есть реальные шансы прокачаться за эти 4-ре месяца до технического уровня круче чем 90 процентов всех синьйоров на рынке, но мир обычно довольно несправедлив, и будет очень сложно доказать этим же 90 процентам которые будут проводить тебе собеседование - что это не подстава Ну и вынужден признать, реально выдерживают курс и доходят до конца - далеко не все В принципе не всем и нужно становится SDET-ом и заниматься разработкой инструментов автоматизации, кому то и знаний просто написания автотестов с помощью готовых инструментов будет достаточно.
Почему Java?
Автоматизация достаточно проста чтобы язык особо не влиял на объективную удобность написания тестов. Но выбор языка влияет на эффективность самой автоматизации. Если писать автотесты на том же языке что и продукт, то это дает достаточно бонусов:
- программистам удобнее использовать результаты трудов автоматизаторов
- автоматизаторы могут использовать наработки программистов для предустановки тестового окружения и тестовых данных.
- нет нужды держать много автомейшен-гуру на проекте, так как программисты смогут помочь в трудную минуту с нужными техническими решениями.
Учитывая то что проектов на Java очень много. Есть смысл начинать учить именно ее, так как большая вероятность что именно она пригодиться на следующем проекте.
Также, поскольку все равно нужно уметь автоматизировать на многих языках (подбирая их под конкретные проекты) - есть смысл начать с более сложного - c Java - после которого большинство других - покажутся детской забавой
Если для твоего проекта или вкуса нужен другой язык, ты можешь подождать старта других адаптаций этого курса Или пройти программу с джавой и потом перестроится на тот же Python, что будет сделать достаточно просто, ведь на Python есть порт Selenide - Selene - и по сути Web UI тесты на Python ничем особо не будут отличатся. Плюс в сети есть достаточно моих видео по автоматизации с Python + Selene. А если сложно поверить в то что “тесты не будут отличатся”, посмотри запись моего выступления на QA Fest - Polyglot Automation, где показаны реальные примеры тестов на Java, C#, Python и Ruby;)
Почему Selenide для Java?
Потому что это самая простая библиотека для Web UI тестов на базе Selenium. Простота Selenide не мешает ему быть таким же мощным как и Selenium, и не мешает ему интегрироваться с ним если нужно. Эта же простота позволяет за минимум усилий выучить автоматизацию Web UI и быстро писать эффективные тесты.
Selenium конечно учить важно (чем мы конечно и будем заниматься), как и важно понимать строение автомобиля, если тебе нужно не только на нем ездить но и ремонтировать или строить новый. Но вряд ли стоит учить строение двигателя, если в первую очередь тебе нужно научится эффективному вождению.
Довольно логично также идти от простого к сложному. Использование чистого Selenium подразумевает хорошие знание того же объектно ориентированного программирования, которое для большинства новичков будет только усложнять понимание. С помощью Selenide у нас есть возможность начать обучение автоматизации используя более простые парадигмы и плавно перейти к более сложным.
Начинать разбирать сначала Selenium стоит только опытным программистам, для которых стоит цель определить лучший инструмент для использования в нужном контексте, особенно для языков где аналогов Selenide нет. Тогда зная возможности оригинального селениума можно будет лучше определить чем отличаются другие основанные на нем фреймворки, и какой же лучше подойдет для проекта. Или же инструмент нужен не для написания тестов а для специфической работы с браузером, что далеко не одно и то же. Запомни важный момент: Selenide - это инструмент для автоматизации Web UI тестов, а Selenium - это инструмент для автоматизации браузера.
Все еще не веришь в такой подход? Ну тогда тебе сюда.
Почему так дорого?
Сейчас я тебе посчитаю себестоимость и мы посмеемся над этим вопросом вместе
Вот примеры двух реальных студентов. Будем их называть Боб и Джо, что бы никто не догадался
Боб закончил половину программы за два месяца без 7 дней, и соответственно заплатил 194 $. При этом получил 15.23 часов ревью от ментора с рейтом примерно 20$ в час и 2.68 часов ревью от преподавателя с рейтом в 45$$ в час. Получается себестоимость только ревью за этот период - 425 $$.
Со вторым студентом преподавателю “повезло” больше. Джо закончил половину программы за два месяца заплатив 220$$. При этом получив 8 часов ревью от ментора и 2.1 от преподавателя - общей стоимостью в 253 $$.
А еще же кроме ревью был саппорт в чате, который никто не считал… Да и видео-материалы наверное должны что то там стоить:)
Причем что Боб и Джо - хорошисты, которые старались, и усердно прислушивались ко всем рекомендациям в ревью. А есть же еще и другие студенты, у которых процесс идет сложнее например из-за меньшего количества опыта, с которыми иногда только в чате сидишь до пол дня разбирая дополнительные вопросы…
Почему только онлайн?
Потому что это удобней и эффективней в контексте временных затрат как мне так и усердным студентам.
А трата своего время на тех, кому нужен наганяй с палкой, который на оффлайн занятиях будет заставлять учиться - приводит меня в уныние и разрушает красоту мира
Ну и самая банальная причина - живая офлайн версия курса не масштабируется и плохо окупается в перспективе при том же уровне качества.
Если же ты боишься что к тебе нужен “индивидуальный живой подход” что бы все лучше понять, то не переживай - именно такой он сейчас и есть, только в основном в режиме чатов, и при необходимости - скайп звонков.
Другие вопросы
Если остались еще вопросы, можешь задавать их как по почте (yashaka@gmail.com) так и в чате start-selenium, так и в этой теме.
Удачи!