Что надо знать Automation QA Trainee (Java), чтобы устроиться на работу
Всем привет! Меня зовут Олег, и я Junior AQA Engineer в IT-компании AB Soft.
С автоматизацией я познакомился на одном IT-митапе. Там я и узнал пути развития QA-инженера и что можно стать автоматизатором сразу, если правильно подготовиться. Я пришел на позицию Trainee и за 4 месяца стал Junior-специалистом. В этой статье хочу поделиться своим опытом самообучения и прохождения собеседований. Надеюсь, этот текст значительно сэкономит время тем, кто только входит в профессию.
Какая база нужна для старта, чтобы начать обучение профессии
Одним из вариантов получения общей базы знаний по IT-направлению, конечно же, является обучение в вузе по специальности «Программная инженерия». В университете вы сможете получить первый опыт работы с различными операционными системами, познакомиться с подходами, технологиями, языками программирования и так далее.
Но необходимо понимать, что наличие высшего образования не всегда дает преимущество при найме на работу. Уверен, что вы, как и я, постоянно читаете новости в СМИ о том, что рынок IT перегрет и удивить высшим образованием вряд ли кого-то удастся. И нередко становятся более востребованными те спецы, у которых высшего технического как раз нет, но зато есть усердие и огромный багаж знаний, накопленный в процессе самообучения.
В любом случае даже после получения высшего образования приготовьтесь, что нужно будет актуализировать и подтягивать знания.
Поэтому, имеет смысл присмотреться к варианту самообучения, о чём я расскажу дальше в статье.
Что делать, если нет опыта
Если вы уже просматривали требования для Trainee, то наличие обязательного корпоративного опыта на эти вакансии обычно не указывают. В отличие от позиции Junior AQA Engineer — здесь могут указать необходимый стаж, обычно он составляет полгода и выше.
Я понимал, что корпоративный опыт на вакансию Trainee не нужен. Но при этом прекрасно осознавал, что чем больше знаний и навыков у меня есть, тем выше мои шансы получить предложение о работе.
Корпоративного опыта у меня не было. И я принял решение не просто послушать теорию в рамках образовательных курсов по QA, а получить базовые практические навыки Automation QA, а также запилить свой проект с использованием инструментов автоматизации.
Есть два варианта прохождения курсов:
- самостоятельно;
- с ментором.
Я выбрал второй.
У курсов с ментором программа построена так, чтобы учащийся:
- Столкнулся с задачами как на реальных проектах.
- Получил возможность как можно быстрее освоить базу языка программирования.
- Получил свой первый опыт с различными инструментами автоматизации.
- Завел новые полезные знакомства.
- Получил опыт и знания от человека, который хорошо разбирается в своём деле и который сможет быстро откорректировать ваши ошибки и направить в правильное русло.
А если подключить еще и самостоятельное дополнительное обучение и чтение литературы, то результат вас точно порадует.
Но так как у каждого из нас бывают разные жизненные ситуации, например, нет денег на курсы со старта, тогда выбор остается за самостоятельным обучением. Я рекомендую обратить внимание на один из следующих курсов: JavaRush, Udemy и QATestLab. Ниже я рассмотрю каждый из них.
Обучающие курсы
JavaRush
Это онлайн-сервис для обучения программированию на Java с довольно интересной подачей материала. Обучение проходит в виде игры, где ваша задача — прокачать персонажа (робота Амиго), выполняя различные задания. В процессе выполнения задач вы зарабатываете черную материю, которую впоследствии тратите на открытие новых уровней. Задачи, кстати, самые разнообразные: от чтения кода и решения задач до исправления ошибок в коде.
JavaRush можно пройти только по подписке. Сейчас есть два тарифа: Premium (30$) и Premium Pro (50$) за месяц. Premium-подписка дает такие возможности:
- доступ ко всем квестам;
- бонусные задачи;
- создание мини-проектов.
Подписка Premium Pro дает такие же возможности, как и Premium, но вдобавок вы получите:
- проверку стиля кода (после решения задачи вы можете посмотреть, как бы её решил человек с опытом);
- повторное решение задач (чтобы напомнить себе информацию какого-то модуля и снова попрактиковаться);
- участие в онлайн-стажировке. Попробуйте выполнить тестовое задание на
35-м уровне, и, если справитесь, вас направят в группу к преподавателю на 3 месяца. Здесь в начале каждой недели вы будете получать видеозапись урока длиной2–3 часа и, соответственно, домашку сроком на неделю.
Вашей целью будет пройти Java Syntex, Java Core и Java Collections, Java Multithreading — если хватит времени.
Java Syntex. Узнаете, что такое классы, объекты, методы и переменные. Изучите основные типы данных, массивы, условные операторы и циклы.
Java Core. Изучите основы ООП, познакомитесь с потоками, сериализацией, перегрузкой методов, узнаете много нового об интерфейсах и множественном наследовании.
Java Collections. Познакомитесь с паттернами проектирования, узнаете, как их применять, как работать с файлами, с JSON, JUnit и так далее.
Udemy
Это онлайн-сервис, который отличается тем, что в нем достаточно много курсов по большинству языков программирования и не только, например, дизайн/маркетинг/бизнес. Также радует цена за сам курс в размере 12$ по сравнению с JavaRush в 30$ за месяц!
От себя могу порекомендовать курс «Продвинутая Java» от Наиля Алишева. Его нужно проходить, когда уже знаешь основы, то есть, в нашем случае, после JavaRush. На этом курсе закрепите для себя и узнаете что-то новенькое о Java Collections, а также регулярных и лямбда-выражениях.
По автоматизации рекомендую: «Selenium и Selenide для начинающих Automation QA» от Сергея Семенова. Отлично построенный курс, на котором начнете знакомство с инструментами и технологиями автоматизации: Java, JUnit, Selenium WebDriver, Selenide, Git, Jenkins, Allure Report и тому подобное. Разберетесь с XPath-локаторами, CSS-селекторами для нахождения элементов на странице, изучите паттерны PageObject и PageFactory, рассмотрите, чем удобен Selenide в отличие от Selenium. А под финал у вас будет два проекта с отчетами в Allure. Их, кстати, Trainee-специалисту можно прикрепить в резюме.
QATestLab
Бесплатный онлайн-тренинговый центр, который регулярно ведет набор 500 человек на Manual QA-курсы. Длительность курсов составляет месяц. В самом конце вас ожидает итоговый экзамен с выдачей сертификата, который можно также прикрепить к резюме.
Без основ manual-части (типы/уровни/этапы/инструменты тестирования) в автоматизацию будет попасть тяжелее, о мануальном тестировании вас тоже будут спрашивать на собеседованиях, поэтому нужно будет пройти и освоить основы, которые дают именно здесь.
Здесь вам расскажут, что такое баг, жизненный цикл бага, вы научитесь правильно оформлять отчеты, протестируете пару интересных Web-проектов (их я тоже прикреплял к резюме, чтобы продемонстрировать навыки). Узнаете про подходы/техники функционального тестирования, изучите жизненный цикл ПО, попрактикуетесь в написании своего первого тест-плана, познакомитесь с Jira (инструмент для управления Agile-проектами), изучите, что такое тест-кейс, ознакомитесь с его атрибутами и составите парочку. А также узнаете, как проходит тестирование мобильных приложений и игр.
В общем, по моему мнению и опыту, это три топовые площадки, где можно базово освоить некоторые навыки не только быстро, но еще и качественно, если приложить определенные усилия.
Резюме. Как выглядело мое CV
Резюме — своеобразная визитная карточка, на которую сперва смотрят рекрутеры, а затем — команда, в которую идёт набор. Какой формат резюме выбрал для себя я?
- Мое резюме было на лист А4. Так как я прочел статьи и рекомендации в интернете и понял, что рекрутеры получают много запросов на вакансии и читать большое количество текста они точно не будут.
- Резюме было в формате PDF. Я понимал, что не каждая компания пользуется услугами Office365, поэтому воздержался от форматов .doc и .docx. Есть вариант, что рекрутер откроет ваше резюме через сторонний софт и оно поплывет в шрифтах, отступах и так далее. Если вы уже оформляете в Word, ничего страшного, есть отличные онлайн-источники, которые конвертируют в .pdf, достаточно просто загуглить «word to pdf».
- Оно было на английском.
- Название pdf-файла тоже на английском и в таком формате → CV_город_желаемая должность_имя и фамилия. Например, «CV_Odessa_Trainee-Junior_AQA_Oleh Donchenko».
- Креатив. Если вы целенаправленно подаете резюме в определенную компанию, то желательно придумать, как выделиться среди других кандидатов еще на этом этапе. Рекрутеры каждый день обрабатывают десятки резюме, и когда они видят, что кандидат уделил этому должное внимание, то отношение к такому соискателю будет другим. В какой именно форме подавать креатив — тут уже решение за вами, главное — не переборщить.
Что компании ожидают увидеть в резюме?
- Информация о вас. Имя, фамилия, желаемая должность, город, номер телефона, почта, ссылка на LinkedIn, чтобы связаться с вами, фото/желаемая зарплата (но не обязательно). Лайфхак по зарплатным ожиданиям: лучше их не указывать с самого начала, чтобы не попасть в такую ситуацию, когда вам могли бы предложить больше, чем вы указали.
- Опыт работы. Курсы, компания/организация, срок, краткое перечисление задач, стек технологий. Непрофильный опыт лучше кратко и в двух словах описать.
- Ключевые навыки. Тут можно написать, как о ваших интересах, так и личных качествах.
Какие самые частые ошибки совершают?
- Старайтесь избегать таких названий: «Резюме 3», «CV%C2%A0», «My resume» и так далее.
- Лучше не прикреплять фото с пляжа, селфи, в полный рост или плохого качества. Я постарался сделать фото с хорошим освещением и на белом фоне.
- В блоке с контактной информацией лучше не указывать лишнюю информацию, например, жилой адрес.
- И в блоке «hard skills» постараться указывать технологии, которые вы точно знаете, а не которые видели одним глазом в гугле.
Собеседование. Какие темы и какие вопросы готовить
В каждой конкретной компании вам будут задавать вопросы по темам, актуальным именно для нее. Потому готовиться только по перечню вопросов, который я напишу ниже, не рекомендовал бы. Но, как говорится, база есть база, и как раз она везде одинакова. Моя специализация — это преимущественно Web-автоматизация, поэтому большая часть вопросов ниже — именно по ней.
Тестирование (Manual QA-часть)
По ручному тестированию могут спросить про defect life cycle, отличия между error/defect/bug/failure, что такое severity/priority, типы severity/priority, разницу между verification/validation, какие виды тестирования знаете.
Могут еще дать определенный функционал и спросить вас, как бы вы тут составили тест-кейсы, как раз на таком вопросе и оцениваются ваши знания об техниках тест-дизайна и тестирования.
По Web могут спросить что-то типа такого: «Что происходит, когда пользователь набирает в браузере адрес сайта?». Можно раскрыть, как браузер начинает искать сервер, как отправляет запрос к DNS-серверам, как попакетно устанавливается соединение с сервером, процесс обработки запросов и так далее.
Кроме того, могут спросить про коды состояний HTTP (Informational/Success/Redirection/Client Error/Server Error) и методы HTTP (GET/POST/PUT/DELETE).
Небольшой лайфхак, можно еще гуглить что-то такого плана: «Top 50 Manual Testing Interview Questions and Answers».
По Selenium я бы также советовал подготовиться. Примеры вопросов есть тут и тут.
Также могут спросить про CSS/XPath-локаторы. Я разобрался в них достаточно глубоко, так как понимал, что на такой должности буду пользоваться этой информацией и навыками довольно часто.
Программирование
Тут уже посерьезнее и нужно будет готовить вопросы о типах данных, переменных, циклах, массивах, ООП, исключениях, коллекциях, строках, паттернах проектирования (Singleton/PageObject/PageFactory/Builder и прочее). Ознакомиться с примерными вопросами, в данном случае — Java, можно тут.
С практической точки зрения на самом собеседовании могут попросить написать алгоритм сортировки либо что-то связанное с объектами.
Как проходит процедура?
Обычно собеседования проходят в таком порядке:
- Интервью с рекрутером или HR.
- Тестовое задание.
- Техническое собеседование.
Важно отметить, что очередность может быть разной в каждой компании. Расскажу, как это проходило у меня:
1. Интервью с рекрутером. На этом этапе обычно рекрутер знакомится с вашим резюме, и, если всё ок, с вами созваниваются для небольшого small talk, чтобы оценить, насколько компания подходит вам, а вы — компании. Могут спросить про ваш опыт с теми или иными технологиями, с какими бы хотели работать, зарплатные ожидания и так далее. Как правило, это легкие вопросы, но расслабляться сильно не стоит, так как на этом этапе технически подкованный рекрутер может провести легкое техническое собеседование, а также проверить ваш английский (обычно это
2. Тестовое задание. На этом этапе вам выдают тестовое задание. Это делается для того, чтобы проверить ваши hard skills и чтобы впоследствии не потратить время на людей, которые еще недостаточно подготовились и выучили только теорию.
Мое тестовое заключалось в том, чтобы написать автотесты для проверки того, что функциональность определенного продукта работает или не работает, используя следующий стек технологий: Java + TestNG + Gradle + Selenium + любой инструмент для формирования репорта на мой выбор. Я выбрал Allure. Также надо было добавить документацию по работе с проектом и загрузить в public репозиторий на GitHub.
3. Техническое собеседование. На этом этапе будут проверять либо общую базу знаний, либо сразу начнут спрашивать о технологиях, которые используются на проекте, куда идет набор. Здесь не стоит переживать за то, что вы на что-то не ответили, это, наоборот, нормально, что вы чего-то не знаете. Никто не может знать всё, увы.
Основная цель — показать ваши сильные и слабые места в определенных технических знаниях и дать фидбэк, а если технически вы показали себя с лучшей стороны — сделать оффер.
Кроме технического собеседования, могут и затронуть soft skills часть, чтобы посмотреть, как вы будете работать в команде, другими словами, проверить командный вы игрок или нет. Кстати, оно может проводиться как Team Lead проектов, так и командой.
Какие самые частые ошибки может допустить кандидат?
- Когда кандидаты отвечают нечестно и неискренне, это чувствуется. Вы можете иногда приукрасить ситуацию, но ни в коем случае нельзя обманывать, если на самом деле вы с чем-то не работали или чего-то не знаете.
- Кандидаты зачастую не интересуются обратной связью после собеседования. Советую всегда просить обратную связь и не стесняться этого. Только так вы получите feedback и увидите со стороны свои минусы и пробелы в знаниях, а значит сможете их подкорректировать.
- После того как кандидаты получают оффер, многие не интересуются литературой и материалами, чтобы быстрее войти в профессию. И это серьезная ошибка. Ведь как сказала однажды мой Team Lead Виктория Мазяр: «Как правило, именно лучшие Trainee/Junior еще до первого дня выхода на работу спрашивают, что надо почитать и посмотреть, чтобы быстрее и лучше влиться в проект».
Итог
В завершении статьи хотел бы добавить, что дорогу осилит идущий, и ни в коем случае не стоит сдаваться после отказов на собеседованиях, а работать над своими ошибками и расширять свой кругозор.
Также прикрепляю самые крутые и полезные источники информации, которые дополнят ваше обучение в этой сфере.
По Java:
- «Руководство по языку программирования Java» — кратко, с примерами, структурная подача материала, можно использовать как справочник.
- «Java — Самоучитель» — еще короче подача материала, с примерами, структурно и ясно, тоже можно использовать как справочник.
- «Каталог паттернов проектирования» — паттерны проектирования в картинках с четкой структурой.
- HowToDoInJava — англоязычный справочник с крутыми примерами, который охватывает всю Java.
По QA/AQA:
- Software Testing Tutorial — сжатые туториалы на любую интересующую вас тему по QA.
- Selenium Tutorial — крутая шпаргалка с примерами по Selenium.
- «Учебник Selenium» — не менее крутой учебник по Selenium, очень много тем с примерами.
- TestNG Tutorial — шпаргалка по TestNG с примерами.
- Git Tutorial — шпаргалка по Git с примерами.
12 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів