с чего начать изучать тестирование
Бесплатные образовательные курсы: тестирование
Ошибки и баги могут возникнуть в любых программах, поэтому тестировщиков нанимают многие крупные компании, которые разрабатывают программное обеспечение. А еще — небольшие фирмы, которые предоставляют услуги тестирования на аутсорс. Сегодня мы публикуем подборку из 14 бесплатных курсов по тестированию из нашего раздела Образование. Да, они, скорее, помогут вам получить базовые знания или освежить то, что вы уже и так знали, чем прокачаться до уровня синьора или лида. Но это не умаляет их полезности! Если вы видели что-то интересное, чего нет в этом выпуске — делитесь ссылками в комментариях.
QA Start · Академия IT
Семь уроков этого курса познакомят вас с методологиями разработки и их влиянием на качество, с фреймворками гибкой разработки, видами, техниками и уровнями тестирования, с тестовой документацией, а также с работой с дефектами ПО.
Интенсив по тестированию ПО · GeekBrains
Сегодня ни один проект не обходится без тестирования — будь это сервис, компьютерная игра или интернет-магазин. На этом курсе вас научат различать тестовую документацию, тестировать требования и составлять тест-кейсы, составлять отчеты о дефектах и пользоваться баг-трекинговыми системами.
Видеокурс по тестированию ПО · Академия IT
Один из стартовых курсов, после прохождения которого вы будете различать типы тестирования ПО, самостоятельно определять и ставить цели тестирования и узнаете, что такое баги и как их репортить. А еще вы попрактикуетесь в создании тест-кейсов и в тестировании веб-приложений.
Верификация программного обеспечения · ИНТУИТ
Программа курса посвящена современным технологиям верификации ПО, применяемыми при промышленной разработке сложных и отказоустойчивых систем. Она охватывает такие темы, как построение тестового окружения, планирование системы тестов, анализ и обнаружение багов, интеграционное и системное тестирование и общие аспекты тестирования интерфейсов.
Профессия «Инженер по тестированию» · Яндекс.Практикум
На этом курсе вы освоите тест-дизайн и овладеете инструментами Postman, Charles, Яндекс.Трекер, а также познакомитесь с Javascript и Puppeteer. Обратите внимание, Яндекс.Практикум предлагает бесплатно пройти только вводную часть курса, состоящую из 10 часов теории и 84 заданий. Это поможет определиться, хотите ли вы двигаться дальше в этом направлении.
Автоматизация тестирования с помощью Selenium и Python · Stepik
Это базовый курс для начинающих тестировщиков, на котором вас научат писать автоматизированные UI-тесты на Python с помощью библиотеки Selenium. А еще в программе — популярные фреймворки и лучшие практики написания автотестов.
Software Debugging · Udacity
На этом курсе вы узнаете, как «дебажить» программы и как автоматизировать этот не всегда веселый и захватывающий процесс. А также вас научат создавать кое-какие инструменты автоматической отладки на Python. Курс на английском.
Основы тестирования · Академия IT
Еще один базовый курс от Академии, на котором вам расскажут о QA, как таковом, и расскажут о тестовых артефактах, жизненном цикле тестирования, типах приложений, клиент-серверной архитектуре и других полезных вещах.
Software Testing · Udacity
В разработке программного обеспечения разрушение может быть так же ценно, как и созидание. На курсе вас научат ломать любое ПО разными способами, чтобы отыскать в нем баги и уязвимости.
Основы тестирования программного обеспечения · ИНТУИТ
За 14 с небольшим часов этого курса вы не только получите хорошую теоретическую базу знаний о тестировании ПО, но и потренируетесь в нем, выполняя практические задания. В конце курса предусмотрен экзамен по пройденному материалу, так что готовьте зачетки.
Software Testing QA · Академия IT
Курс, на котором вас познакомят не столько с QA, сколько с тем, как начать свой путь в этой специальности. Уроки посвящены прохождению собеседований, лайфхакам и советам для новичков, а также разбору структуры QA команд в IT-компаниях.
Курсы тестировщиков онлайн · Академия IT
Базовый, но от этого не менее полезный курс, который вам пригодится, чтобы получить или освежить знания о тестирование ПО, контроле качества и баг-трекинге.
Тестирование ПО: базовый уровень · Stepik
Курс ориентирован на начинающих тестировщиков и тех, кто хочет потренироваться перед сдачей сертификационного экзамена. Он основан на официальной программе обучения ISTQB, а все 111 тестов составлены из заданий реальных экзаменов ISTQB Foundation Level.
Unit-тестирование С# · Академия IT
Более узкоспециальный курс для тех, кто хочет научиться именно юнит-тестированию. За 12 уроков вам расскажут о том, что это вообще такое, какие есть типы юнит-тестирования и о лучших практиках его использования. Ну и, конечно, об инструментах, с которыми вам придется иметь дело, занимаясь этим видом тестирования.
Больше бесплатных и платных курсов для тестировщиков, девопсов, разработчиков, дизайнеров и менеджеров — в разделе Образование на Хабр карьере.
План начинающего тестера: от “Войти в IT” до “Я — Инженер!”
Всем привет! Меня зовут Валентин и я работаю инженером по тестированию в компании Exness. Очень часто слышу вопрос о том, насколько сейчас возможно стать тестировщиком программного обеспечения. В этой статье я постараюсь ответить на данный вопрос.
Если забежать вперед, то ответ, безусловно, будет — «Да, это возможно!». Но и здесь есть определенные условия: необходимые и достаточные.
Эта статья будет полезна не только тем, кто хочет найти себя в мире IT и тестирования, но и тем, кто уже начал свой путь!
Я хочу стать тестировщиком! С чего начать?
Тестирование как часть процесса разработки программного обеспечения зародилось в начале 1980-х годов благодаря Гленфорду Майерсу. Его книгу «The Art of Software Testing», несмотря на то, что она была написана очень давно, я рекомендую к прочтению всем. В те времена тестировщик должен был обладать «тайными» знаниями систем, которые тогда существовали. Постепенно компьютеры и программное обеспечение становились доступнее для рядового пользователя. И стало возможным тестировать, имея только навыки пользователя данного ПО. Плюс, конечно же, желание.
Когда, около пяти лет назад, я начинал свой путь, мне хватило нескольких месяцев для того, чтобы узнать о теории тестирования, получить небольшой практический опыт и выйти на рынок с огромным желанием стать профессионалом. С тех пор требования повысились, но стать тестировщиком все еще реально, особенно учитывая текущее положение дел. Сейчас многие компании, в том числе и Exness, стараются переориентировать сотрудников на удаленный тип работы. И в этом есть несомненный плюс: во-первых, начинающий тестировщик, как правило, уже имеет опыт работы на таких порталах, как utest.com; во-вторых, спрос на онлайн-приложения возрастает как и потребность в новых инженерах.
Изменение требований к качеству ПО, безусловно, привело и к изменению требований к тестировщику. Под необходимыми для тестировщика качествами я понимаю не только технические навыки, но и так называемые софт-скиллы.
Тестировщик — это прежде всего человек с критическим складом ума, это инженер, который смотрит в суть проблемы и видит полную картину применения продукта. Бывает, что программисты, «голубая кровь» цикла разработки ПО, пренебрежительно относятся к тестировщикам. Раньше мне приходилось слышать высказывания о том, что тестировщики вовсе не нужны, так как программисты сами могут все протестировать, и по большому счету код изначально идеален! Но ваша задача как тестировщика и как инженера, работающего над качеством продукта, принять такое отношение и постараться изменить его на положительное. Ведь вы, как и программист, как и DevOps, часть одного целого продукта и ваша задача — это общая задача обеспечения качества. Вы находите ошибки не у конкретного человека, вы находите ошибки в коде и решаете вместе, как их исправить. Если вы будете пропагандировать такие идеи, то в скором времени программист станет вам лучшим другом и помощником и уже не будет смотреть на вас с немым вопросом: «Ну что опять?».
Вернемся к техническим навыкам. Для тех, кто только осваивает тестирование, будет полезна следующая схема:
На этой схеме можно увидеть примерный путь движения тестировщика и то, что для этого нужно.
Давайте разберем, где же взять необходимые хард-скилы.
Основой любой профессии будет теория. Без знания принципов тестирования невозможно понять процессы, происходящие в разработке ПО, и оценить его качество. Не старайтесь в начале своего пути сразу пытаться постичь что-то сложное. Начинайте погружение в профессию постепенно. Если вы пропустите основные понятия и перейдете к изучению автоматизации, фреймворков и языков программирования, то велика вероятность того, что вы потеряете интерес к тестированию вообще, так как посчитаете его слишком сложным. Обычно желание изучать автоматизацию у новичков появляется после того, как они слышат о том, что без нее попасть в профессию практически невозможно. Но это не так. Спрос на «качественных» мануальных тестировщиков не падает, и они все еще в цене. Поэтому еще одной полезной книгой для освоения теории тестирования будет «tестирование dot com» Романа Савина. Если вы прочитали перечисленную выше литературу и уже ориентируетесь в теории, то вам очень пригодится сайт с выжимкой основ тестирования — Protesting.ru.
Как закрепить теорию практикой? Выбирайте любой объект из повседневной жизни (ПО на мобильном телефоне, микроволновка и даже карандаш) и тестируйте его. Можно проговаривать тест-кейсы, но лучше сразу записывать их на бумаге/компьютере в формальном виде так, как вы будете это делать уже на своей работе тестировщиком. Далее проходите эти тест-кейсы и составляйте отчеты о тестировании. Этот способ самый простой, но действенный.
Однако, этого опыта все еще не достаточно для составления резюме и прохождения интервью у работодателя. Поэтому для того, чтобы получить реальный опыт, я рекомендую регистрироваться на различных порталах для тестировщиков и максимально подробно заполнять свой профиль: указывать все свои навыки, знания, устройства и ПО, которые у вас есть (телефон, компьютер, телевизор и т.д.). Вот небольшой список порталов:
Что же дальше? Вы изучили теорию, получили небольшой практический опыт. Но перед следующим шагом вернемся к тому, как должен мыслить тестировщик. Выше я уже использовал термин «инженер по тестированию». Каждый тестировщик, как и любой другой член продуктовой команды, должен в первую очередь иметь определенный склад мышления. Инженер должен уметь системно мыслить, уметь смотреть на задачу с разных точек зрения, уметь абстрагироваться, не зацикливаться на определенном решении и наборе инструментов (технологическом стеке). На вопрос: «А как нам это сделать?» инженер не имеет права ответить: «Я не могу этого сделать, так как не умею писать на Python, Java, Ruby и т.д.». Правильным ответом будет следующий: «Я не могу это сделать, так как это повлечет за собой негативный пользовательский опыт, но у меня есть решение, как этого избежать!». Чтобы познакомиться с таким подходом на примере известной компании, я рекомендую к прочтению книгу Джеймса Уиттакера «Как тестируют в Google». Наша компания, как и Google, поддерживает такую инженерную культуру.
Теперь у вас за плечами необходимый багаж знаний и опыта, и следующим логичным шагом будет написание резюме и выход на рынок. Но и здесь не все так просто. Как сделать так, чтобы именно ваше резюме выбрали из сотен и тысяч других и именно вас пригласили на собеседование? И как пройти собеседование?
Для того, чтобы ваше резюме заметили и выбрали, очень важно правильно его наполнить. Во-первых, у будущего инженера по обеспечению качества в резюме не должно быть ошибок, опечаток, отличающихся шрифтов и т.д. Во-вторых, указывайте в резюме только то, что поможет вам отобраться на позицию тестировщика. В-третьих, делайте акценты на ваших сильных сторонах.
После того, как резюме составлено, его необходимо активно отправлять на все понравившиеся вам вакансии. Здесь можно применить следующую формулу: отправив резюме на 50 вакансий, вы получите 15 приглашений на собеседования и три предложения о работе. Еще один важный момент заключается в том, что если вам отказали на 9 собеседованиях из 10, а на одном вы получили предложение о работе, то это успех. И все девять отказов стоит воспринимать только как опыт, а не поражение.
Помимо правильного резюме, также важно умение проходить собеседование. Этот навык можно тренировать практически сразу после знакомства с тестированием. И к тому моменту как вы получите достаточные знания и опыт, вы также будете готовы проходить интервью уверенно.
В тестировании также существует своя система сертификации специалистов ISTQB, которая разделена по уровням. Давайте рассмотрим то, что нужно знать для получения сертификата базового уровня.
Содержание программы Базового уровня:
Таким образом, знание основ тестирования, правильно составленное резюме, опыт прохождения интервью и наличие сертификата, безусловно, выделят вас среди остальных кандидатов!
Что же дальше? Вы прошли интервью и получили свой первую работу тестировщиком!
Я пришел в тестирование из другой профессии и получил свой первый оффер после четвертого собеседования. Передо мной открылся новый, интересный мир, у которого я на тот момент не видел границ! У меня появилось огромное желание приходить на работу и помогать делать продукт качественнее! Но со временем встал вопрос: «А что же делать дальше? Сколько можно работать мануальным (ручным) тестировщиком?». Да, это интересно, но хотелось двигаться дальше и развиваться. Хотя я твердо убежден и вижу на практике, что ручное тестирование еще очень долгое время будет актуально, и это позволит попадать в мир IT новым тестировщикам.
Если мы вернемся к диаграмме пути тестировщика, то увидим, что у начинающего специалиста очень много путей развития: можно пойти по пути автоматизации, либо по пути менеджмента в тестировании и др. Поверьте, выбор огромный! Но какой бы путь вы не выбрали, нужно сохранять и развивать в себе те инженерные навыки и склад ума, о которых мы говорили выше.
Попав в Exness, я был рад узнать, что здесь практикуют такую инженерную культуру, которая позволяет тебе быть не тестировщиком, а Software Engineer в продуктовой команде. Мы стараемся не фокусироваться на разделении инженеров по позициям (разработчик, тестировщик, девопс). В нашей команде каждому даются равные возможности для развития и применения своих навыков. Для меня подобный опыт был первым. И я с уверенностью могу сказать, что он очень мотивирует двигаться и развиваться дальше! В тоже время весь этот процесс не происходит сам по себе. Компания корректирует процессы и скиллы всех членов команды, дабы избежать рисков. Когда, например, все в команде начнут программировать.
Так кем вы станете в конце концов?
Так кто же такой тестировщик? Как понять, вы им стали или все еще нет? По моему мнению, загнать такую обширную область знаний и возможностей в одно определение невозможно. В конечном итоге вы уже не будете просто тестировщиком или разработчиком, вы станете инженером, владельцем продукта, который развиваете и постоянно стремитесь улучшить его качество. Вы перестанете застревать на какой-то технологии и будете смело использовать новую, если она быстрее и эффективнее решит вашу текущую задачу.
И еще несколько слов о том, насколько реально сейчас попасть в тестирование. Вход в IT через тестирование доступен не меньше, чем раньше. Рынок все еще испытывает дефицит кадров. Даже в текущей, странной и непонятной для рынка ситуации, появляются все новые и новые вакансии. Также наличие различных школ и курсов для подготовки тестировщиков все еще не создает вала кандидатов на рынке. Поэтому можно сделать следующий вывод: да, требования меняются, но старт в IT через тестирование все еще доступен!
Желаю всем найти себя в тестировании и раскрыть инженера в себе!
Автоматизация тестирования «с нуля» (нетехническая сторона вопроса)
Есть множество статей про технологии и те или иные подходы к автоматизации. Но почему-то нет статей про «обратную сторону» автоматизации. Как вообще всё зарождается на проекте? И как это «всё» организовать?
Итак, здравствуйте! Меня зовут Ярослав, я являюсь лидером автоматизации тестирования в Центре развития финансовых технологий Россельхозбанка. В этой статье поделюсь своим опытом организации автоматизации на примере большого проекта РСХБ из 8 команд.
Общая информация по проекту
Большой проект с командами, разрабатывающими общий продукт.
В командах есть QA Manual (Ручной тестировщик).
Направления тестирования — Frontend, Backend.
Изучаем проект
Понимаем цель разработки продукта и кто потребитель
Ответы на эти вопросы помогают понять, на что делать упор в автоматизации. Например, если работаем с юридическими лицами, то делаем упор на тестирование «исполнения законодательства» и переводы по платежам и тд. Если это физические лица, то на основные выполняемые операции: переводы с карты на карту, оплату услуг и тп. Так же важно, чтобы направление автоматизации «смотрело» в целом на продукт, а не на отдельные в нем команды.
Знакомимся с участниками разработки продукта
Выделю ключевых людей:
Владельцы продуктов (Product Owners), они заказчики автоматизации в команде.
QA каждой команды. Они — это клиенты инструмента автоматизации, их уровень счастья — это показатель успеха.
Лидер ручного тестирования. Помогает в организации процесса и во взаимодействии с ручным тестированием.
Лидер разработки Frontend. Он влияет на стабильность и качество автотестов.
Специалист по закупке. Решит вопросы выделения техники, в основном с серверным железом.
Изучаем каждую команду
Собираем информацию о том, какую часть проекта разрабатывает команда.
Разбираемся в направлении — Frontend, Backend или всё сразу.
Разбираемся с тем, как QA тестируют свою часть продукта.
Выясняем, на каком уровне QA manual знаком с автоматизацией.
Находим боли в тестировании и что приоритетно закрыть автоматизацией.
Формируем требования к автоматизации и заказываем ресурсы
Что мы собрали?
У нас есть 8 команд.
Есть 11 QA инженеров.
Есть направления тестирования Frontend, Backend + будем «ходить» в Базу данных.
90% QA manual никогда не занимались автоматизацией.
Исходя из данных, формируем требования к автоматизации
У нас нет задачи делать какие-то инновационные решения, поэтому придерживаемся классики:
В качестве языка программирования выбираем Java — так будет проще найти специалистов.
Нужно тестировать Frontend. Берем Selenium.
Нужно тестировать Backend. Взаимодействуем с ним через REST. Берем REST-assured.
Нужно «ходить» в базу данных. Возьмем стандартные библиотеки из Java.
Нужно либо обучить QA manual разработке автотестов, либо нанять армию из N автоматизаторов. Мы думаем о расходах проекта на тестирование, поэтому убиваем 2-х зайцев сразу. Берем Cucumber.
Нам нужна отчетность с красивыми графиками. Берем Allure.
Получился следующий стек технологий: Java, Selenium, REST-assured, Cucumber.
Оцениваем силы автоматизаторов
Поскольку их нет, берем 1 автоматизатора на 5 команд (больше 5-и не потянет).
Автотесты нужно где-то запускать
Что нам понадобится?
Машина для Jenkins. 1 штука. Через него реализуем удаленный запуск.
Машина под Slave Jenkins. Как agent для Jenkins.
Машина под Selenoid. Для параллельного запуска тестов.
Делаем демо нашего инструмента
Наше демо будут смотреть все: владельцы продуктов, QA инженеры, разработчики, аналитики и тд. Значит ориентируемся на понимание для всех.
Берем команду в качестве первой «жертвы» автоматизации. Ребята разрабатывают Frontend. Нам нужна наглядность.
Делаем 5-10 автотестов. Записываем на видео.
Обязательно после прогона показываем Allure. Красивые графики любят все.
Рисуем «инфраструктуру автотестов». Главное, чтобы было просто и понятно.
Обозначаем главную цель автоматизации.
Демонстрируем эффект от автоматизации.
Делаем сравнительные тесты. Ручное прохождение и автоматизированное.
Показываем, как создаются сценарии.
Показываем планы автоматизации (когда появятся тот или иной функционал).
Показываем, как будет происходить внедрение автоматизации в команды.
Подготавливаем UI к автоматизации
Для обеспечения надежности, стабильности и качества автотестов, необходимо раскидать якоря на UI. Централизованно через лидера Frontend и дополнительно через владельцев продукта проставляем атрибут для UI-элементов “data-test-id“ или с любым другим названием. Смысл в том, чтобы со стороны UI проставить этот атрибут во всех элементах типа «Таблица, поле для ввода, кнопка» и тд. Если коротко, то на всех элементах, с которыми взаимодействуем, это даст +300% к надежности автотестов. Переезд элемента в другое место или изменение его содержимого никак не повлияют на проверку автотестом. Делаем этот момент обязательным для всех новых фич.
Разрабатываем автотесты
Делим команды между автотестерами.
Разрабатываем каркас проекта для автоматизации. Все по шаблону.
Подготавливаем набор Cucumber шагов для работы с Frontend, основным направлением в тестировании. Выносим шаги в отдельный проект и делаем из него подключаемый артефакт.
Настраиваем Selenoid и Jenkins.
Начинаем подключать команды к автоматизации. При подключении команды все сводится к тому, чтобы создать репозиторий, загрузить каркас, создать Job в Jenkins по шаблону, обучить QA работе с Cucumber, работе с Git и средой разработки.
После обучения QA самостоятельно пишут автотесты. Один раз за спринт автоматизатор приходит в команду и принимает написанные автотесты, делает правки и вливает в основную ветку. На этом этапе ребята качают уровень написания правильных сценариев, а мы получаем качественные проверенные сценарии.
После встречи со всеми командами у автоматизатора в спринте остается еще 5-6 свободных дней. Это время тратим на разработку Cucumber шагов.
В конце спринта на продуктовом демо показываем результаты по командам и делаем анонсы новых фич в инструменте.
Результаты
6 спринтов (60 дней), 8 команд, 2 автотестера и 11 ручных тестировщиков — имеем 50% покрытия регресса проекта автотестами. Это с учетом подключения команд (подключались постепенно) и разработки шагов.
4 вещи, о которых нужно помнить при разработке с таким подходом
Ручной тестировщик — это клиент
QA инженер — прямой потребитель инструмента автоматизации. Их уровень комфорта, счастья и количество автотестов — это показатель качества нашей работы. Если один из показателей падает, значит нужно что-то менять. Иначе все посыпется.
Ориентация на выгоду для проекта
Нужно всегда помнить, что содержание разработчиков, тестировщиков, аналитиков и других специалистов стоит денег. В конечном итоге наша цель их сэкономить.
Как мы их экономим?
Автотестами: находим дефекты запуская их каждый день.
На каждом этапе тестирования сокращаем время регресса.
Все это приводит к более быстрому выпуску продукта в промышленную эксплуатацию.
Не работает? Меняй!
Не нужно бояться ошибок. Их будет очень много в разработке, в общении с командами, во взаимодействии с QA инженерами, в демо. Главное увидеть, что «что-то» не работает и менять подход до тех пор, пока все не будут в восторге. Всё делаем для людей. Не для себя.
Кайфуй
Наверное, самое главное в любой работе — это получать удовольствие. До сих пор с умилением смотрю на автотесты. Я тоже был QA manual инженером и прекрасно понимаю, насколько нудно тестировать регресс раз за разом. Автотесты — это бальзам:)
Путь тестировщика: с чего начинать изучение автоматизации
Шесть лет назад Роман Печерский из Ижевска прошёл курсы для функциональных тестировщиков и начал работать QA-инженером. Спустя несколько месяцев он впервые столкнулся с автоматизацией тестирования и понял, что хочет развиваться в эту сторону.
Сейчас Роман руководит командой автоматизаторов, а также учебным центром по автоматизированному тестированию в ижевском EPAM. Он рассказал, с чего начинал изучать автоматизацию, как развивался, с какими проблемами имел дело и какими лайфхаками пользовался.
Как я познакомился с автоматизацией
Я впервые столкнулся с автоматизацией, когда техлид нашего проекта предложил мне покрыть автотестами проверки, чтобы их можно было запускать после любого изменения и быстро получать обратную связь. К тому времени я не проработал в тестировании и года, поэтому чувствовал себя не особо комфортно. Несмотря на это, задача показалась мне интересной, и я решил попробовать её выполнить – правда, даже не представлял, с чего начать.
Кто-то из коллег по проекту рассказал мне про Selenium IDE – инструмент для автоматизации действий Firefox-браузера. Помню, как написал свой первый автотест с помощью метода Record and Play: включил запись, начал нажимать кнопки, вводить текст в поисковую строку и кликать по ссылкам. Получился набор сохранённых действий, который можно было запускать и сразу видеть результат.
Знакомства с Selenium IDE и этих лекций мне вполне хватило, чтобы решить ту проектную задачу и начать делать первые шаги в сторону в автоматизации.
Как я учился автоматизации
Вскоре я начал самостоятельно изучать Java – один из самых популярных языков для автоматизации тестирования – и пробовать писать несложные автотесты в Eclipse, например, для тестирования login-формы приложений.
Однажды мы с моим менеджером обсуждали моё дальнейшее развитие. Я сказал, что планирую двигаться в сторону автоматизации, и попросился на курсы по автоматизированному тестированию для сотрудников.
Следующие шесть месяцев я работал и учился – по вечерам, выходным, праздникам. Всё усложнялось тем, что первые три месяца я находился в командировке на новом проекте. После работы я возвращался в гостиницу с мыслями о том, что если вовремя не сдам домашнее задание, то накоплю долги, за которые меня могут отчислить. Для меня это был ужасный стресс, и я даже похудел на несколько килограммов.
Вот что помогало мне преодолевать трудности:
• Понимание, зачем это нужно
Несмотря на то что учёба была сложной и временами даже скучной, я чётко осознавал, какие возможности она мне откроет. Именно поэтому всё свободное время я посвящал автоматизации. Вместо прогулок по городу – автоматизация, вместо посиделок в баре с коллегами – автоматизация, вместо вечернего сериала – автоматизация.
• Поддержка коллег
Всегда приятно, когда тебя кто-то подбадривает – особенно люди, которые уже прошли тот же путь.
• Чувство соперничества
Ощущение, что я могу стать самым отстающим студентом в группе, также подстёгивало меня двигаться вперёд.
Когда курсы закончились, я начал работать на проекте, чередуя обязанности функционального тестировщика и автоматизатора. Через несколько месяцев присоединился к новому проекту – уже в роли тимлида. QA-команда состояла всего из двух человек – меня и функционального тестировщика, которому я объяснял основы автоматизации.
Как я начал обучать автоматизации
Мой коллега по проекту – первый человек, которого я начал обучать автоматизации. Сначала моих знаний не всегда хватало, чтобы отвечать на его вопросы и помогать решать проектные задачи. Но когда я не мог ему что-то объяснить, то понимал, что сам недостаточно развиваюсь в теме и подтягивал знания. Обычно я искал ответы на Stack Overflow или обращался за помощью к разработчикам.
Постепенно моя команда выросла до 10 автоматизаторов. К тому времени я полностью отошёл от ручного тестирования и занимался комплексным системным автотестированием веб-приложений. Затем начал помогать команде с созданием архитектурных решений для тестов и стал проектным координатором.
Полгода назад мы с коллегами организовали в офисе собственный учебный центр по автотестированию. Стали брать на обучение студентов последних курсов и людей, которые решили сменить сферу деятельности.
Недавно я сам прошёл небольшой курс – по JavaScript – и подключился к новому проекту. Раньше я никогда не сталкивался с JS. Мне потребовалось около месяца, чтобы начать более-менее уверенно чувствовать себя в работе с новым языком.
Резюмируя свой опыт, я могу дать несколько советов новичкам, которые делают первые шаги в автоматизации.
• Начните с практики – создайте собственный автотест
Многие думают, что прежде чем писать автотесты, нужно сначала разобраться с теорией тестирования и выучить Java или другой язык программирования. Обычно энтузиазма у таких людей хватает ненадолго, потому что это долгий и сложный процесс.
Я считаю, что начинать нужно с простых вещей. Создайте несложный автотест сами. Чтобы было интереснее, попробуйте решить какую-нибудь жизненную задачу. Например, напишите скрипт, автоматизирующий передачу показаний счётчиков воды на сайт водоканала. Сегодня это можно сделать с помощью Katalon Studio, который пришёл на смену Selenium IDE. Такие задания подогревают интерес к изучению автоматизации. Затем можно будет переходить к изучению теории и специфики автоматизации, а также начать осваивать язык программирования в связке с Selenium WebDriver.
Допустим, вы поняли, что хотите развиваться как тестировщик-автоматизатор и готовы потратить время на учёбу. Если вы планируете полностью погрузиться в обучение и не растягивать его на долгие месяцы, нужно либо оставить текущую работу, либо попросить у начальства длительный отпуск.
Можно последовать моему примеру и попытаться совместить учёбу с работой. Так вы сохраните зарплату, но на несколько месяцев полностью забудете о существовании свободного времени.
• Начните учиться самостоятельно или пройдите курсы
Курсы – хороший вариант для тех, кто вообще не имеет представления о том, с чего начать, или хочет систематизировать свои знания. Онлайн-курсы можно найти на Otus, Stepik, GeekBrains, Lynda, JavaRush. Если говорить об офлайн-обучении, его могут организовывать разные IT-компании вашего города: учебный центр EPAM, например, работает в шести российских городах.
Обычно программа любого курса по автоматизации разделена на три модуля:
1. Введение в теорию автоматизации;
2. Изучение основ языка программирования (например, Java);
3. Написание собственных автотестов.
Это, на мой взгляд, универсальный алгоритм для изучения автоматизации тестирования. Его также можно брать за основу, если у вас есть технический бэкграунд и вы решили самостоятельно постигнуть азы автоматизации.
Вот минимальный набор знаний, которые вы должны освоить, чтобы начать работать на реальных проектах:
• Понимание основных понятий тестирования: тест-кейсы, дефекты и т.д.;
• Понимание, что можно автоматизировать, а что нет;
• Знание основ языка программирования (Java, JavaScript, Python, C#);
• Умение работать с Selenium WebDriver;
• Умение писать локаторы для элементов;
• Знание одного-двух юнит-фреймворков.
• Как можно больше интересуйтесь
Новичков в автоматизации чаще всего отпугивают ошибки в коде. Они запускают код, видят, как что-то идёт не так, и впадают в ступор. Что делать в такой ситуации? Попробовать найти решение в интернете, например, на том же Stack Overflow. Ещё один вариант – попросить помощи у более опытных коллег. Они тоже когда-то были на вашем месте и делали такие же ошибки. Обсуждая какую-либо задачу с опытными автоматизаторами, вы расширяете свой профессиональный кругозор.
• Не стойте на месте
Чтобы поддерживать себя в форме, нужно постоянно находиться на технологическом острие. Вводите в работу новые фреймворки и библиотеки, разберитесь с Continuous Integration, углубите знания языка программирования или освойте новый, читайте тематические статьи и блоги:
За пять с половиной лет, что я работаю с автоматизацией, я ни разу не пожалел, что выбрал это направление. Мне нравилось выполнять и задачи ручного тестирования, но я понимал, что рано или поздно упрусь в потолок. Потолок для мануальщика наступает, когда он тестирует разные виды приложений – веб, десктопные, мобильные – настолько профессионально, что работа перестает подбрасывать новые вызовы и превращается в рутину. Чтобы не стоять на месте и развиваться дальше, необходимо получить какой-то новый навык. Можно заняться автоматизацией функционального или нагрузочного тестирования, можно переключиться на тестирование безопасности или, например, разобраться в базах данных. Ещё можно посмотреть в сторону DevOps, бизнес-анализа или проектного менеджмента.
Я своего потолка как мануальный тестировщик достичь не успел – автоматизация увлекла меня раньше. При этом бэкграунд мануальщика сильно помогает мне в работе все эти годы. Я не только реализовываю тест-кейсы, но и обычно сам пишу для них сценарии. Так я понимаю, что именно тестирую, какой функционал покрываю и какого жду результата.