Привет! Многие, кто приходил в любую новую сферу, задавались вопросами: «какими инструментами необходимо владеть, чтобы…», «а точно ли это весь перечень?», «а какие навыки необходимы, чтобы пройти собеседование?». Таких вопросов больше у новичков, которые уже начали обучение или только в поисках обучения, пытаются понять минимум необходимый для старта.
Давайте разберёмся с вопросами по ручному и автоматизированному тестированию, которые задают в том числе и студенты курса «Инженер по тестированию». В статье мы пройдём по нужным навыкам, инструментам. Дадим полезные ссылки для углубления в темы и составим карту компетенций. Карта поможет визуализировать объем информации, который нужен для старта в профессии.
Что с навыками: есть ли минимальный перечень
Сразу отвечу на вопрос, который задают студенты на самом первом вебинаре: «Есть ли минимальный перечень навыков и инструментов, которые необходимо освоить, чтобы успешно пройти собеседование на позицию джуна?»
Ответ: «Нет».
Это если коротко. А теперь разберемся, почему так — три основных пункта:
У разных компаний совершенно разные требования к специалисту по тестированию.
Тестирование нужно в разных областях, даже в не смежных: сети, администрирование, безопасность, дизайн, разработка. Это влияет на требования.
На текущем рынке кандидату важно выделяться и отличаться среди сотни других специалистов, претендующих на данную позицию.
Кто-то сейчас схватился за голову и в ужасе думает, куда бежать, где взять гайд, который необходимо освоить, чтобы точно стать экспертом.
Погодите. Всё не так страшно, как может показаться. Почему? Предлагаю разобрать и вместе составить вектор развития от стажёра до джуна (дальше вы уже знаете, что делать). Будем рассматривать ручное и автоматизированное тестирование — говорим про фулстек, в нашем векторе разделения не будет.
Ниже — разбор навыков и полезных ссылок на ресурсы, которые помогут вам детальнее разобраться с нужными компетенциями и углубиться в их изучение.
Начнём путь с позиции стажёра-тестировщика
У тестировщика есть несколько вариантов развития внутри компании: он может расти с нуля, а может прийти на позицию джуна. Стажёрами чаще называют студентов, выпускников вузов или ребят, кто завершил обучение на курсах.
Стажёр-тестировщик — новичок, у которого нет реальной практики в тестировании и работы в команде. У такого специалиста может быть опыт тестирования учебных проектов, но он немного отличается от реальных задач.
Когда компания берёт к себе в команду стажёра, она оценивает риски и трудозатраты на обучение. Да, обучение таких сотрудников обходится очень дорого по временным затратам и выгодно для компаний, только если специалист планирует и дальше развиваться внутри экосистемы.
На такой позиции нужны базовые знания сетей, представления о языках программирования, понимание профессии, в которую вы пришли.
Какие знания нужны
Давайте сформируем необходимый минимум знаний и перечень инструментов. Это будет нижней планкой, не освоив которую будет сложно попасть на собеседование.
Стажёру важно разбираться в шести направлениях:
теория и основы,
API,
Web,
базы данных,
мобильные приложения,
языки программирования.
По основам тестирования нужно сформированное базовое представление о тестировании, разработке; о том, какие циклы проходит программное обеспечение, прежде чем его получит конечный пользователь. А также специфичные знания по работе с тестовой документацией и отчётами о дефектах.
→ Тестировщик: кто это и чем занимается
→ Сколько зарабатывают тестировщики
→ Фундаментальная теория тестирования
→ Как пройти собеседование на тестировщика
→ Какая роль у тестировщика в гибкой модели разработки
→ Исследовательское тестирование: пустая трата времени или мощный инструмент?
→ Матрица развития компетенций тестировщика
В тестировании серверной логики от вас будут ждать базового представления о работе клиента и сервера, понимания кодов ошибок и принципа построения запросов.
→ Стратегия о тестировании REST API
→ Тестирование API простыми словами
Клиенты: веб и мобильные приложения, а также десктопные приложения. У них разный подход к разработке, но объединяет одно — они принимают и отдают данные от сервера. В разрезе веб-приложений от вас будут ждать развернутый ответ на вопрос про то, какие браузеры существуют и в чем между ними различия, а также как называются элементы интерфейса.
→ Что такое HTML: основы, необходимые веб‑разработчикам
→ Знакомство с тестированием веб-приложений
→ Чек-лист тестирования веб-приложений
В разделе про тестирование мобильных и десктопных приложений от вас ожидают понимания разновидностей и различий между операционными системами, особенностей, от которых может зависеть тестирование программ. Стоит помнить, какие версии ОС на данный момент являются последними. Подготовьте заранее список возможных дефектов, которые вы лично замечали в том или ином приложении.
→ Чек-лист тестирования мобильных приложений
→ UI-элементы и жесты в мобильных приложениях
→ Распространённые баги на iOS
Любая информация хранится в базе данных. Анализируя множество вакансий на площадках, отметим, что в большинстве компаний требуются знания SQL и клиентов.
→ Как работают базы данных в IT: разбор на примерах
→ Oracle: Что такое база данных?
Знания языков программирования будут плюсом. При этом понятно, что стажёр вряд ли сможет написать фреймворк, поэтому ожидают минимальных знаний в любом языке программирования на уровне понимания типов данных, написания сортировок и т.д.
→ Языки программирования: какие они бывают
→ Java для новичков: подборка материалов для самостоятельного изучения и сообществ для погружения
→ 15+ ресурсов для начинающего/продолжающего Python-разработчика
→ Гайд по Visual Studio Code: как работать с популярным инструментом разработчиков
Тестирование присутствует в самых разных сферах, поэтому стоит разбираться, как устроены сети, как работать в консоли Linux, что такое виртуальная машина и как её запустить.
→ Что такое GitHub и как он работает
→ Основы Linux (обзор с практическим уклоном)
Перейдем к джуниор-специалисту
Требования для джуна не сильно отличаются от требований к стажеру. При этом отделаться только знаниями теории не получится. Здесь уже нужна практическая составляющая. Важно немного разбираться в процессах (понимание зон ответственности и ролей в команде), иметь более глубокие знания в теории и уметь применять теорию на практике.
Например, в основах тестирования важно не только рассказывать, как завести баг-репорт, а также иметь представление о том, какой функционал баг ещё может затрагивать, понимать, что после исправления может поломать разработчик.
Тестировщик должен применять различные техники тест-дизайна для эффективного тестирования функциональности, составить план тестирования отдельной функциональности на основании задания, применять базовые техники тестирования требований, проводить анализ тестовой модели и улучшать её. А также требуется понимание и умение работать по различным методологиям разработки (Scrum, Kanban).
→ Гайд о том, как сделать первый шаг в QA
→ Немного про Scrum простым языком
→ Улучшение тайм-менеджмента: асинхронное общение
→ Как составить отчёт о тестировании
→ Как проходит интервью с QA-инженерами в Тинькофф
В рамках тестирования API специалист умеет формировать различные REST- и SOAP-запросы в Postman или SoapUI. Умеет работать с различными XML- и JSON-запросами и ответами. Важная составляющая — умение создавать различные автоматизированные проверки для запросов в Postman и SoapUI, а также эмулировать ответы от сервисов.
→ Подборка: полезности по тестированию API
→ SOAP API на примере тестирования сервиса Яндекс Спеллер
В отличие от стажёра, джуну нужно знать основные принципы и подходы к тестированию веб-приложений, понимать, что такое, например, кэш браузера, что такое cookie. Он должен уметь изменять элементы html-страницы, анализировать и изменять трафик между клиентом и сервером. Важный навык — анализ скорости загрузки страницы и работа с консолью браузера.
→ Запуск нескольких инстансов Charles Proxy
Знания в области SQL нужны сильно выше. Нужно уметь формировать запросы на выборку данных из таблиц, объединять таблицы для выборки данных, формировать условия для фильтрации данных из выборки, уметь сортировать и группировать данные в выборке, а также использовать различные агрегирующие функции в запросе.
→ Интерактивный учебник по SQL
В области тестирования мобильных приложений нужны углублённые знания по работе с эмуляторами и сбор логов мобильного приложения. Умение подменять данные и тестировать различные граничные кейсы.
→ Deeplink
→ Распространённые баги на Android
→ Android Debug Bridge (adb) – основные команды
→ Реклама в мобильных приложениях
В области разработки стоит укрепить знания и разбираться в списках, циклах и ветвлении. Уметь работать со строками, словарями и коллекциями. Писать функции и понимать, чем отличается класс от объекта.
→ Всё необходимое для ручного тестирования веб-приложений
→ Распространённые баги на WEB
Карта компетенций: строим вектор развития
Мы подготовили карту компетенций, где подробно расписали необходимые навыки и требуемые инструменты для конкретной позиции. Она поможет работать с вектором развития, находить слабые места и строить план обучения.