Найти в Дзене
QA Tips

Как стать тестировщиком

Итак, ты решил(а) стать тестировщиком или QA инженером. Первое, что может придти в голову это то, что данная работа может потребовать какого-то специфического образования или диплома, это не так, я сам работаю в IT c непрофильным образованием переводчика и это ни разу не становилось препятствием на получении оффера. На сегодняшний момент IT рынок всё ещё испытывает кадровый голод, и за приличных кандидатов hr специалисты вынуждены ежедневно шерстить рынок и искать того самого подходящего кандидата. Чаще всего дело завершают те, у кого был план или набор инструкций, следуя ему ты будешь чётко понимать порядок действий и не распыляться на несколько действий сразу. Ниже мы рассмотрим, что нам необходимо для того, чтобы начать искать первую работу. Рекомендую совмещать освоение теории и инструментов, чтобы на обучение ушло чуть меньше времени. Исключением может являться SQL, его рекомендую изучать отдельно, так как это сложная для понимания тема, требующая большого количества практики. Тео
Оглавление

Итак, ты решил(а) стать тестировщиком или QA инженером. Первое, что может придти в голову это то, что данная работа может потребовать какого-то специфического образования или диплома, это не так, я сам работаю в IT c непрофильным образованием переводчика и это ни разу не становилось препятствием на получении оффера. На сегодняшний момент IT рынок всё ещё испытывает кадровый голод, и за приличных кандидатов hr специалисты вынуждены ежедневно шерстить рынок и искать того самого подходящего кандидата. Чаще всего дело завершают те, у кого был план или набор инструкций, следуя ему ты будешь чётко понимать порядок действий и не распыляться на несколько действий сразу. Ниже мы рассмотрим, что нам необходимо для того, чтобы начать искать первую работу. Рекомендую совмещать освоение теории и инструментов, чтобы на обучение ушло чуть меньше времени. Исключением может являться SQL, его рекомендую изучать отдельно, так как это сложная для понимания тема, требующая большого количества практики.

Теория тестирования

Виды тестирования и их отличия, цели и артефакты тестирования, тесткейсы и тестсьюты, отличие валидации от верификации, QA и QC, в общем всё то, что является теоретической базой профессии. Теорию надо знать и понимать. Это то, что спрашивают каждого тестировщика вне зависимости от области тестирования при устройстве на работу. Читаем книги, смотрим статьи, запоминаем или зазубриваем, прогоняем тестовые собеседования с друзьями.

Тут могу порекомендовать несколько книг для прочтения:

  • Тестирование.сom (Роман Савин) – самая попсовая книга, говорить о ней на собеседовании – всё равно, что махать красной тряпкой перед быком, но! она даёт базовое представления о профессии и обязанностях на последующей работе, легко читается и некоторым достаточно только этой книги для прохождения собеса.
  • Искусство тестирования программ (Гленфорд Майерс, Том Баджетт, Кори Сандлер) – более основательная и углубленная, скорее всего собеседующий вас тимлид вообще не будет иметь представления о литературе по теме, но для закрепления теории можно почитать.

Двух книг более чем хватит, если сильно захочется, можно найти что-то ещё, материалов в интернете предостаточно. Например, можно воспользоваться статьёй.

Основы Web технологий

Так же будут спрашивать на 10 собеседованиях из 10, рекомендую уделить достаточно времени, почитать статьи, посмотреть видео. Основная нужная нам информация – как работают сети, IP, DNS, основные протоколы передачи данных, защищённые и незащищённые протоколы, TCP и UDP порты, прокси и VPN, ssh и telnet. Типы данных и их отличия – JSON/XML. Клиент-серверная архитектура, чем отличается монолитная архитектура от микросервисной, что такое API, REST и SOAP, HTTP запросы, знать чем POST запрос отличается от GET, как отправить запрос и где посмотреть ответ от сервера. Коды ответов сервера. Знать какие бывают базы данных, чем отличаются реляционные БД от нереляционных, SQL и NOSQL базы данных.

Полезные материалы:

  1. Статья про веб.
  2. Видео про компьютерные сети.

Базовые инструменты

  1. Таск трекер – основной инструмент помимо тестируемого приложения. Скорее всего это будет Jira или её аналоги. (Смотрим видео по базовым сущностям и интерфейсу Jira, что такое userstory, task, bug как создать эти сущности, как назначить ответственного на задачу, где находятся комментарии к задаче.)
  2. Системы управления тестированием – Testrail/Testlink и аналоги, это так же одно из основных приложений с которыми нам придётся работать, там хранятся наши тестовые сценарии и тестовые прогоны.(Рекомендую посмотреть видео по Testrail, остальные системы будут на него похожи и оперируют теми же сущностями.)
  3. Мессенджеры – Slack, skype, telegram, discord, почтовые клиенты. Каждая команда и компания использует мессенждеры для коммуникации, нужно просто быть знакомым с их интерфейсом и знать как создать группу, канал тегнуть коллегу в общем чате или написать кому-то в личку. Для почты чаще всего используют outlook и gmail.
  4. Операционные системы – в большинстве случаев ты сразу столкнёшься с командной строкой. Смотрим видео по командной строке windows и linux, нас интересуют самые базовые команды, cd, ls, grep, touch, nano. (Желательно поупражняется с командами, чтобы набить руку и привыкнуть к консоли. В помощь YouTube или любые другие ресурсы.)
  5. Системы для разработки интерфейсов – Figma и аналоги, часто тестировщики тестируют UI по макетам, тут хватит одного видео по любой системе и базовым функциям. (Нам не нужно создавать макеты или редактировать их, тут нас интересует только интерфейс самого приложения.)
  6. Системы хранения проектной документации – чаще всего это Confluence. Это своеобразная wiki по проекту, если тебе повезёт и документация по проекту будет присутствовать, то там ты найдёшь много полезного (может и нет).
  7. Браузеры – Chrome, Firefox, Safari и др. – знать как запустить консоль разработчика в браузерах и мочь в ней ориентироваться. Хватит одного видео по Chrome консоли, нас интересуют вкладки console, network, application. (Тут рекомендую уделить побольше внимания, с этим инструментом придётся работать довольно часто, в помощь опять же видео на YouTube.)
  8. Клиенты для работы с базами данных – в большинстве случаев пользуются web или desktop клиентами для запросам к БД. (Тут нам так же потребуется много времени на изучение SQL запросов. Полный курс по SQL на Youtube на английском языке. Аналогичное видео на русском языке. Ресурс с задачами по SQL.)
  9. Системы контроля версий – git, используются разработчиками для поставки нам тестировщикам кода приложения, тут нам важно понимание того как работает git, уметь склонировать проект локально, понимать что такое git branch, git commit. (Последнее время в большинстве проектов тестировщикам в том или ином виде приходится с ним сталкиваться, так что тратим достаточное для понимания время, упражняемся с git консолью).
  10. Swagger/Postman – хоть это и разные инструменты, рекомендую их изучать вместе, практически на каждом проекте они используются для бэкенд тестирования и необходимо быть знакомыми с их интерфейсами. (Встречал проекты на которых тестировщики вообще не видят фронт, а только посылают запросы и валидируют созданные сущности в базе. В помощь так же статьи и видео на нашем любимом YouTube.)
  11. Pairwise – позволяет создавать парные комбинации данных для создания тест кейсов. Иногда используется тестировщиками для написания кейсов и тестовых сценариев. (Просто ознакомиться с инструментом.)

Продвинутые инструменты

  1. Системы логирования – Splunk/Graylog или любая другая, нужно уметь читать логи и понимать какой лог относится к посылаемому нами запросу, что происходило в приложении в момент ошибки, тут нам и помогут системы логирования. (Достаточно посмотреть видео по одной, они все похожи и представляют из себя простынку запросов.)
  2. Docker/Kubernetes – многие современные приложения чаще всего представляют из себя несколько сервисов, которые собираются в докерконтейнерах и оркестрируются через Kubernetes, тут нам важно понять, что вообще из себя представляет контейнеризация и как устроено управление контейнерами. (Не стал бы тратить много времени на статьи, видео на YouTube должно хватить, по необходимости углубляемся.
  3. Gitlab/Github – системы управления репозиториями, практически на каждом проекте ты с ними столкнёшься. (Рекомендую ознакомится с интерфейсом и основными функциями.)
  4. Снифферы трафика – Wireshark/Fidler возможно на каких-то проектах понадобится поработать с трафиком напрямую. (Иметь представление, посмотреть на интерфейс и основные вкладки.)
  5. Брокеры сообщений – Kafka/Amazon MQ используются в распределённых системах для распределения и балансировки нагрузки используются брокеры сообщений. (Не стал бы тратить много времени, по необходимости можно будет вернутся к данной теме.
  6. Инструменты нагрузочного тестирования – Яндекс танк/Jmeter, позволяют нам нагружать приложение запросами по ранее написанным сценариям. (Не рекомендую тратить много времени, это отдельная область тестирования, если столкнётесь с необходимостью на проекте, то углубляемся в изучение.)
  7. Язык программирования – для последующего перехода в автоматизацию или для того, чтобы выгоднее смотреться на фоне других соискателей многие начинают учить ЯП такие как Python, Java или NodeJS. (Они являются самыми востребованными в автоматизации тестирования.)

What’s next?

После ознакомления с теорией и инструментами, как только ты почувствуешь, что готов выходить на рынок труда, можно начинать подготавливать резюме и откликаться на вакансии. Алгоритм действий и небольшие лайфхаки ты можешь найти в статье.

~Resume:

  1. Учим теорию тестирования
  2. Учим сети и основы web технологий
  3. Знакомимся с необходимыми инструментами

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

  • Тинькофф: 2200700450607428
  • BTC: 19ccJXj1nvZ24hticGfKhv2nQWp89U36mE
  • TON: UQBO5i-liuCOMTQ5j1dKUSomFXjtqQmEYCxSMgOMhZe-SBAV