Код
#статьи

Кто такой тестировщик и как им стать с нуля

Разбираемся, кому подходит профессия и что нужно уметь QA-специалисту.

Иллюстрация: Катя Павловская для Skillbox Media

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

Тем, кто не работал тестировщиком, кажется, что это очень просто: понажимал все кнопки подряд, нашёл ошибку, сказал разработчику, и всё. На самом деле тестировщик — это сложная и творческая профессия на стыке IT, UX-дизайна и продуктового менеджмента.

Давайте говорить правильно. Иногда тестировщиков и QA-инженеров ошибочно называют «QA-тестировщиками». Такой гибридный термин весьма тавтологичен и неточен, так как понятие QA включает не только поиск ошибок, но и оценку качества продукта в широком смысле. Чтобы не прослыть чужаком среди айтишников, используйте либо слово «тестировщик», либо «QA-инженер» или «QA-специалист», но не «QA-тестировщик».

Что делает тестировщик

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

Неполиткорректные разработчики из-за этого когда-то обидно называли тестировщиков «обезьянками-кликальщиками». Термин был так распространён, что Android назвал свой инструмент для автоматизации тестирования MonkeyRunner — в том смысле, что он как обезьянка, только быстрее.

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

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

Пример простого тест-кейса
Изображение: Skillbox Media

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

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

Нужно предусмотреть все возможные и невозможные варианты. Что будет, если пользователь введёт цифры вместо букв? А что, если у него компьютер глючный? А вдруг сразу много пользователей будут работать и перегрузят систему?

Работа тестировщика — это бесконечное приближение к совершенству. Невозможно проверить всё, поэтому тестировщик должен работать так, чтобы совершить минимум действий, но найти максимум ошибок.

Мануальщики и автотестеры

Облегчить работу тестировщика помогают программы для автоматического тестирования. Автоматизация сокращает время тестирования и уменьшает рутину в работе. В больших проектах без автоматизации не обойтись: там очень много элементарных повторяющихся действий, никакого времени не хватит, чтобы все их проделать.

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

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

Функциональное тестирование:

  • Selenium WebDriver — для автоматизации веб-приложений.
  • Appium — для автоматизации тестирования мобильных приложений.
  • JUnit, TestNG, PyTest — фреймворки для написания и выполнения функциональных тестов.

Нагрузочное тестирование:

  • Apache JMeter — для тестирования производительности веб-приложений.
  • LoadRunner — инструмент для нагрузочного тестирования различных типов приложений.

Безопасность приложений:

  • OWASP ZAP — инструмент для поиска уязвимостей в веб-приложениях.
  • Burp Suite — для тестирования безопасности веб-приложений.

API-тестирование:

  • Postman — для тестирования запросов к API сервисов.
  • REST Assured — фреймворк для автоматизации тестирования REST API на языке Java.

Тестирование мобильных приложений:

  • Appium — для автоматизации тестирования мобильных приложений на платформах iOS и Android.
  • Xcode UI Test, Espresso — инструменты для тестирования интерфейса мобильных приложений.

Тестирование баз данных:

  • SQL Server Management Studio, Oracle SQL Developer — для выполнения тестовых SQL-запросов.
  • DbUnit — фреймворк для подготовки тестовых данных и проверки состояния базы данных.

Ручное тестирование:

  • TestRail — для управления тестовыми кейсами и отслеживания дефектов в ПО.
  • TestLink — для управления тестовой документацией и требованиями.

Может ли новичок-нетехнарь стать хорошим QA-специалистом

Порог входа в тестирование довольно низкий. Чтобы стать тестировщиком, не требуется техническое образование. Главное, чтобы человеку была интересна сфера IT и он хотел развиваться в этом направлении. Об этом говорит в своём интервью на hh.ru руководитель департамента обеспечения качества ПО Veeam Software Игорь Кацев.

На сайте software-testing.ru опрашивали тестировщиков из России и СНГ по поводу их образования. Оказалось, что в профессию приходят и достигают в ней карьерных высот разные люди: технари, гуманитарии, экономисты, юристы, люди с двумя высшими и люди без диплома вообще.

Инфографика: Skillbox Media

Насколько востребованна профессия тестировщика

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

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

Вот, например, скрин с hh.ru, где работодатель перечисляет требования к тестировщику:

Скриншот: HeadHunter / Skillbox Media

Большим спросом пользуются универсалы, владеющие современными методами тестирования, знающие языки программирования, умеющие составлять и автоматизировать тесты.

На какую зарплату можно рассчитывать

Заработная плата тестировщика в регионах — от 40 до 80 тысяч рублей, а в Москве — 70–150 тысяч.

Новички могут рассчитывать на зарплату от 40 тысяч рублей, специалисты высокого уровня получают 220–300 тысяч.

Как развиваться тестировщику

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

Младший специалист тестирует программы вручную по готовым тест-кейсам. Чтобы из «обезьянки» стать мидлом, нужно развиваться: досконально изучать проект, знать язык кода и основы автоматического тестирования.

Если джуниор хорошо себя зарекомендует, то через 2–3 года получит повышение и станет мидлом. Будет самостоятельно составлять тест-кейсы и заполнять документацию.

Ещё через год-полтора успешный мидл может претендовать на должность старшего специалиста (Senior QA Engineer). Его круг задач расширяется: сеньор планирует работы по тестированию, контролирует работу джунов.

Лет через пять можно стать тимлидом — руководителем команды тестировщиков. От тимлида требуются профессиональные компетенции, навыки менеджмента, умение решать сложные задачи. Так происходит карьерный рост специалиста по вертикали.

Часто тестировщики предпочитают горизонтальное развитие, например в рамках определенной специализации:

  • Security-тестировщики — проверяют безопасность программы.
  • Performance-тестировщики — тестируют, как она ведёт себя при возрастающей нагрузке.
  • Usability-тестировщики — проверяют, насколько с ней удобно работать.

Какие личные качества необходимы тестировщику

Кроме того, в тестировании очень важны личные качества специалиста. Вот список основных, без которых точно не обойтись:

  • Усидчивость и настойчивость — чтобы терпеливо искать дефекты. Хороший тестировщик уверен, что программ без ошибок не бывает, бывают лишь плохо диагностированные.
  • Критическое мышление, умение анализировать информацию.
  • Внимание к мелочам, максимальная дотошность, чтобы постоянно интересоваться: «А что будет, если нажать сюда? А если ввести другой символ?»
  • Коммуникабельность и умение работать в команде: тестировщику приходится постоянно взаимодействовать с разработчиками, дизайнерами, бизнес-аналитиками, представителями заказчика.
  • Терпение и самообладание, потому что разработчики не слишком любят исправлять ошибки. Иногда тестировщику приходится не раз и не два напоминать о найденном баге. Он должен быть настойчивым, но при этом уметь сохранять хорошие отношения в команде.
  • Ответственность и здоровый перфекционизм, чтобы постоянно стремиться улучшить качество разрабатываемого продукта.
  • Умение чётко формулировать свои мысли, чтобы грамотно составлять планы и тест-кейсы. Если тестировщик нашёл ошибку, он должен подробно и понятно описать, при каких условиях она возникает, чтобы разработчики могли быстро её исправить.
  • Стремление развиваться — осваивать новые методики тестирования, чтобы оставаться востребованным. Нужно постоянно читать техническую литературу, участвовать в конференциях и семинарах, смотреть видеокурсы.

Что надо уметь

От тестировщика требуется:

  • знание основ тестирования, его видов и методов;
  • умение составлять тест-кейсы, тест-планы;
  • знание языка запросов SQL, умение работать с базами данных;
  • знание языков программирования;
  • знание систем контроля версий: Git, CVS и тому подобных.

Кроме того, тестировщик должен владеть инструментами ручного и автоматического тестирования. Это могут быть:

  • системы для создания тест-кейсов и отслеживания ошибок;
  • файловые менеджеры, текстовые и XML-редакторы;
  • генераторы тестовых данных и другие.

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

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

Как найти первую работу

Поиск первой работы и подготовка к собеседованию для тестировщика выглядит примерно так же, как и для любого другого IT-специалиста. За тем лишь исключением, что тестировщику найти её чуть легче, чем, скажем, джависту или программисту на C++. Поэтому QA считается хорошим трамплином для входа в IT.

Вот какие советы по поиску первой работы дают эксперты Skillbox начинающим тестировщикам.

Изучите основы тестирования

По большому счёту, в самом начале у вас есть два пути. Первый — изучать тестирование самостоятельно по книгам, статьям в интернете и бесплатным курсам. Второй — приобрести платный курс, в котором весь материал упакован и структурирован, ваши работы будет проверять куратор, а на выходе вам помогут с трудоустройством (правда, не везде и не всегда).

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

Научитесь работать с инструментами

Изучите основные инструменты тестирования, такие как Selenium WebDriver, Jira, Postman. Это позволит вам лучше понимать, как проходит тестирование на практике, и повысит привлекательность вашего резюме.

Составьте резюме

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

Создайте профили на карьерных платформах

Зарегистрируйтесь на hh.ru, LinkedIn, Сareerspace и других карьерных платформах. По возможности заполните все поля, которые предлагает сайт, и прикрепите резюме, которое составили на предыдущем шаге.

Попробуйте найти стажировку

Некоторые компании периодически набирают к себе начинающих специалистов — обычно это крупные игроки вроде «Яндекса», VK и Tinkoff. Даже если стажировка неоплачиваемая, есть смысл её пройти — на первых порах опыт куда важнее денег.

Получите сертификаты (по возможности)

В QA котируются сертификаты таких организаций, как ISTQB, — они подтверждают ваши знания и практические навыки. Вы также можете пройти курсы в учебных центрах или онлайн-школах.

Подготовьтесь к собеседованиям

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

Откликайтесь на вакансии

Не зря же вы выполнили все предыдущие пункты? Теперь пора откликаться на вакансии. Обычно новички ищут вакансии с тегами «junior», «intern» или «стажёр». Но если вы чувствуете в себе силы, то можете попробовать перешагнуть начальную ступень, и устроиться на позицию middle — у некоторых начинающих разработчиков и тестировщиков это получается 😏

Запишите ребёнка на бесплатный урок в Skillbox Kids ➞
Учим детей программированию, веб-дизайну и разработке игр. Преподаватель — IT-эксперт — подберёт курс по интересам ребёнка. Подробности — по клику.
Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована