Найти тему
QA Tips

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

Оглавление

Итак, ты решил(а) стать тестировщиком или 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