Блог

Из «танцовщика» в тестировщика: как попасть в IT, не имея технического образования?

ИТ-отрасль - одна из самых развивающихся. Людей привлекает ее стабильный рост, который наблюдается при любых обстоятельствах. В «СофтМедиаЛаб» отмечают тенденцию притока желающих войти в ИТ от соискателей, не имеющих технического образования. Классическим шагом для входа в ИТ-отрасль считается профессия тестировщика, потому что его компетенции проще и быстрее осваиваются новичком. Правда это или заблуждение? В нашей статье разберем основы профессии, поделимся полезными инструментами для работы тестировщика и советами, которые помогут новичку получить заветный оффер.

Кто такой тестировщик?

Тестировщик (или QA-инженер) – это специалист, который занимается проверкой программного обеспечения на соответствие требованиям заказчика и выявляет ошибки. Основная задача тестировщика - убедиться в качестве разрабатываемого ПО перед его выпуском на рынок. Задача очень ответственная! Тестированию подвергается каждый продукт «СофтМедиаЛаб» в обязательном порядке. Это своего рода знак качества, поэтому в аутсорсинге работают опытные тестировщики уровня middle и senior, а переизбыток кандидатов наблюдается на позиции junior. Однако, мы верим, что любой начинающий специалист при усердной работе через год-два имеет все шансы стать опытным и сильным. Какие hard и soft скилы надо для этого прокачать? Мы спросили у тестировщиков “СофтМедиаЛаб”.

Сначала обсудим актуальные инструменты и технологии тестирования:

Самый простой способ тестирования - ручной. Проводится на начальном этапе создания продукта. Тестировщик ставит себя на место пользователя, имитирует его действия, проверяя, что система работает как положено при разных сценариях взаимодействия. Безусловно, большинство процессов можно автоматизировать, но пока только ручное тестирование дает цельную картину и понимание: обладает ли программа заданной функциональностью и соответствует ли заявленным критериям качества.

Существуют различные виды тестирования:

  • функциональное;
  • тестирование производительности;
  • регрессионное, модульное;
  • тестирование безопасности;
  • тестирование локализации;
  • юзабилити-тестирование.

На разных проектах эти виды могут проводиться в разном объеме. Зависит от требований и бюджета заказчика.

Любой продукт “СофтМедиаЛаб” проходит через следующие этапы тестирования:

- Анализ ПО, которое предполагается тестировать.

- Изучение требований к продукту и ожиданий пользователей.

- Разработка сценария тестирования.

- Разработка тестовой документации.

- Процесс тестирования.

- Формализация тестирования: обработка результатов (багрепорты).

- Доработка по результатам тестирования.

- Проверочное тестирование.

- Формализация тестирования: багрепорты, отчетность.

Важно перед каждым тестированием ответить два основных вопроса: "ЧТО тестировать и КАК?". Тест-план выглядит так:

  • Что планируется тестировать?
  • Что тестируем на самом деле?
  • По какому сценарию (как?) будет проводиться тестирование?

Сюда входит определение диапазонов, анализ граничных значений, взаимосвязь причины и следствия.

Рассмотрим современные инструменты и технологии, которые могут улучшить процесс тестирования:

Сейчас создано множество продвинутых технологий и инструментов тестирования, которые призваны облегчить, повысить эффективность тестирования и, как следствие, качество ИТ-продуктов.

Перечислим те, которые чаще всего используют тестировщики «СофтМедиаЛаб»:

1. Инструменты тестирования API, протоколов Web, SOAP и REST с помощью автоматического тестирования или прямых запросов. Самые распространенные - Postman, Swagger, SoapUI. Интересный вариант Apiary – платформа, которая использует язык разметки Markdown для организации процесса разработки и тестирования API. В ней имеются тестовые сценарии, валидация и образцы кода.

2. Контейнеризация: Docker и Kubernetes - помогают оперативно создавать контейнеры для тестирования приложений и позволяют быстро разворачивать проекты для тестирования.

3. Платформы для тестирования без кода: позволяют создавать тесты без использования программирования. Например, Testim, TestCraft, и TestProject.

4. Инструменты для автоматизированного тестирования UI – Selenium Webdriver, TestNG, TestComplete. Все они обладают своими достоинствами и недостатками и не являются универсальными, поэтому перед использованием рекомендуем детально изучить характеристики каждого.

5. Платформы управления тестированием - предоставляют возможность автоматизировать все аспекты тестирования, управляя другими тестерами и интегрируясь в CI/CD цепочки. Есть отдельные варианты для команд QA и встроенные в общие процессы отслеживания. Например, Test IT, Jira, TestRail, qTest, Azure DevOps.

6. Искусственный интеллект (ИИ/AI) и машинное обучение (МО/ML).

У всех на слуху нейронные сети. С их помощью можно улучшать покрытие тестами и создавать новые тесты с нуля. МО может использовать данные о поведении пользователей для прогнозирования потенциальных сложностей. Это позволяет тестировщикам заблаговременно прилагать усилия по устранению возможных проблем. Если верить статистике, то приоритетные варианты использования ИИ в тестировании ПО связаны с прогнозированием проблем, приоритезацией тестов и созданием тестовой среды.

Наиболее популярная комбинация методологий разработки ПО – Agile и DevOps.

Достаточно быстро стала развиваться QAOps — комбинация обеспечения качества (QA) и DevOps. QAOps сочетает подход DevOps и непрерывное тестирование. Весь процесс – это разработка тестовой платформы для проверки качества приложения. Это требует настройки инструментов автоматизации в рамках конвейера жизненного цикла разработки (CI/CD), чтобы обеспечить полное тестирование кода, данных и конфигурации ПО как только появляются новые модификации.

А теперь, рекомендации от HR для новичков.

Большинство вакансий от компаний, которые ищут тестировщиков, предполагают наличие опыта. Где же можно получить такой опыт?

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

Вариант второй - стажировка. Найдите вакансию стажера. Зарплата будет небольшая, зато приобретаете необходимый опыт.

Третье - некоторые крупные компании практикуют бета-тестирование выпускаемых продуктов, когда набираются все желающие. Это тоже позволяет нарабатывать опыт.

А еще, можно использовать для опыта краудтестинговые платформы (онлайн-платформы для тестирования). Это фриланс-биржи, которые предназначены именно для тестирования. На них идет реальное тестирование. С некоторыми ограничениями, но для прокачки навыка очень полезно.

Кроме того, для развития можно использовать тестовые задания из вакансий. Если это задание выполнено, его можно качественно оформить: описать проект, составить тест-план и чек-лист, описать найденные дефекты. Такие отчеты отлично дополнят ваше портфолио.

Как еще можно прокачивать навыки начинающему тестировщику, чтобы стать ценным кандидатом?

  • Погружаться в программирование, пусть вы не будете знать какие-то алгоритмы решения задач (типа сортировки массива пузырьком), но понимание основ - это плюс.
  • Знание языков типа JS, Python - будет важным преимуществом, так как они часто используются при написании автотестов.
  • Изучать API. Это тоже требуется часто.

Существуют и мифы о тестировании. Важно понимать, что эти мифы не являются истиной и могут негативно повлиять на выбор профессии. Вот некоторые из них:

Миф 1. Тестировщиком может стать каждый!

Пожалуй, самое часто встречающееся мнение. Зайдите на любой сайт поиска работы. Посмотрите количество вакансий тестировщика. Их довольно много, как и резюме. Но выше мы упоминали, что спрос идет на уровень middle и senior, а переизбыток кандидатов на позиции junior, поэтому вакансии закрываются медленно. Это говорит о том, что востребованным тестировщиком может стать не каждый, а только тот, кто активно прокачивает свои навыки.

Миф 2. Тестировщик просто нажимает на кнопки

В реальности любой ИТ-продукт довольно сложен, но спроектирован так, что для пользователя кажется простым и очевидным. Это результат работы тестировщика как специалиста по обеспечению качества. В его обязанности входит тестирование интерфейсов на понятность. А для этого важно понять и проанализировать - какие факторы могут привести к возникновению ошибки (бага)? Это может быть формат картинок, их размер. Для каждой функции таких нюансов много. Важно анализировать каждый аспект, а не только нажимать на кнопки.

Миф 3. Тестированию не надо учиться — нечему.

И снова зайдите на сайт поиска работы. Посмотрите список требований к кандидатам на вакансии QA-инженеров. Перечень и глубина разнообразных знаний и умений, необходимых в этой профессии, довольно велики.

Все чаще внутри вакансий тестировщика формируются свои специализации.

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

Миф 4. Задача тестировщика — сломать продукт.

Главное не "сломать” программу, а проверить, чтобы она не содержала в себе никаких поломок, багов. Словосочетание "сломать продукт" - некорректно. Тестировщик не имеет доступа к коду и не может его менять, а, значит, и воздействовать на продукт не получится. Если тестировщик нашел ошибку, значит продукт уже был сломан. Его задача - выявить все ошибки, передать их разработчикам на исправление, а после - проверить еще раз, и еще (столько, сколько потребуется).

Миф 5. Тестировщик все время тестирует.

Не всегда. Прежде чем начать тестировать, важно разобраться для какой сферы предназначен продукт, его особенности, пожелания заказчика и понять - как он должен работать. Огромное количество времени и сил уходит на то, чтобы погрузиться в тему. Часто на это уходит больше времени, чем на само тестирование. Например, попробуйте полноценно проверить, бухгалтерскую программу, без знания терминов и процессов. Опытный тестировщик - специалист с широким кругозором.

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

Страх № 1. Тестирование — это рутина.

Тестировщику приходится снова и снова выполнять одни и те же тесты.

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

Страх № 2. Ограниченный карьерный рост.

В тестировании есть свои специализации, но его неотъемлемая часть — это интеграционное тестирование, проверка слаженной работы всех компонентов системы, которое открывает очень широкое поле для деятельности.

Страх № 3. Отсутствие опыта в тестировании — большая проблема.

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

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

Страх № 4. Надо в совершенстве знать английский (а это долго и сложно).

В профессии тестировщика, как правило, достаточно знания английского до уровня А2, больше не требуется. Читать и понимать английский — вполне достаточно!

И еще, кое что очень важное - это личные качества.

Тестировщик - это человек с природным любопытством, усердный, имеющий живой ум, гибкое мышление и ангельское терпение.

Мечтаете о карьере в области тестирования - стремитесь! Даже если не имеете технического образования - будьте жадными до знаний. Изучайте основы тестирования и автоматизацию, прокачивайте навыки всеми возможными способами, ищите реальные проекты, продолжайте внедрять новые знания и компетенции. Помните, даже в условиях острой конкуренции, упорство, стремление к самосовершенствованию и достижению успеха поможет выделиться среди множества талантов. Успехов! Все получится!