Источник


На GeekBrains открылся курс "Инженер автоматизированного тестирования ПО". Специалисты этого направления должны знать и уметь очень многое, включая ручное и автоматизированное тестирование, различные языки программирования, плюс иметь багаж технических знаний различного уровня. Прежде, чем подробнее говорить о необходимых тестировщику знаниях и навыках, попробуем ответить на простой вопрос: "Зачем вообще нужен тестировщик ПО?".


Компании и частные разработчики ежедневно выпускают тысячи разнообразных программ. Некоторые из них становятся популярными, другие — нет. И в подавляющем большинстве случаев в топы выходят те приложения, у которых не только интересный, запоминающийся дизайн, но и высокий уровень usability. Хорошее приложение должно быть удобным, стабильным и безопасным. Довести программное обеспечение "до кондиции" помогают как раз инженеры по тестированию ПО.


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


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


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


Образование, опыт и знания


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


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


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


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


  • Проведение и документирование автоматических и "ручных" тестов и процедур. Анализ результатов, составление отчетов о проблемах и ошибках.
  • Выполнение тестирования программного обеспечения в течение всего цикла разработки и жизненного цикла ПО.
  • Понимание различных методов разработки и организации работы над проектом, включая Agile и Scrum.
  • Владение несколькими инструментами тестирования.
  • Знакомство и общее владение UNIX, Linux и Windows, включая командную строку.
  • Умение работать одновременно над несколькими задачами.
  • Коммуникационный навык, как вербальный, так и письменный. Умение общаться с разработчиками, менеджментом, клиентами.
  • Базовое знание языков программирования и фреймворков, например, Java, JavaScript, C# или C++, SQL, Python, PHP и Ruby on Rails (не обязательно знать сразу все эти языки, это лишь пример).

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


"Я не программист. Я могу писать простой код, но я далеко не эксперт. Тем не менее, умение программировать помогает мне понять, как устроено то или иное ПО и как оно работает. Конечно, "сломать" программу можно вообще без технических знаний. Но для того, чтобы понять, почему не работает та или иная функция, нужно быть немного программистом", — говорит Тан Хьюн, эксперт по тестированию ПО, работающий в этой сфере уже много лет.


Что, если опыта и знаний нет?


Ответ простой — нужно начать обучение. Можно поступить в университет (второе или третье высшее образование), если есть время и ресурсы. Кроме того, отличный вариант — записаться на курсы по тестированию с получением сертификата или диплома. В некоторых технологических компаниях, которым нужны тестировщики, такие курсы есть. На отечественном рынке это встречается не так часто, но всё же поискать можно.


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


Для получения хорошей работы стоит попробовать пройти сертификацию. В США ценится ISTQB, сертификацию проводит организация American Software Testing Qualifications Board (ASTQB). Есть и международные сертификаты, например CSTE (сертификацию проводит The International Software Certification Board (ISCB)). Правда, во втором случае необходима степень бакалавра и двухлетний опыт работы в сфере IT.


Какой бы путь вы ни выбрали, крайне важно обучаться и самостоятельно, а также иметь большое желание стать тестировщиком. Постоянное самосовершенствование позволяет достичь весьма солидных успехов, что доказывает опыт 62 % тестировщиков, принявших участие в специализированном опросе (результаты здесь, англ.).


Финальный этап — получение работы


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


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

Комментарии (8)


  1. dedyshka
    28.02.2019 18:18

    что доказывает опыт 62 % тестировщиков, принявших участие в специализированном опросе (результаты здесь, англ.).
    по ссылке — 404

    А, что касается проблем тестировщиков, то основная это — ЗП существенно ниже чем у разработчиков.


    1. Ommonick
      28.02.2019 18:54

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


      1. dedyshka
        28.02.2019 19:11

        Зачем сравнивать «поднабравшегося опыта QA» с «гепотетическим джуном»?
        Мухи отдельно котлеты отдельно…
        Если взять условную медиану Российского IT, то с опытом 3 года и знанием JVM стека тестеру предложат 100-150тыр в руки, а разработчику 200-250тыр.

        Тестировщику не нужно учить алгоритмы, кучу фреймворков языка, много SQL, паттерны
        по факту, хороший тестировщик сможет указать конкретное место в коде, где проблема. Представление о QA как о парне, который запускает тесты и если есть красные пишет тикет: «нажал на кнопку аппликуха упала» довольно поверхностное, имхо.


        1. Ommonick
          28.02.2019 20:05

          Проблема может быть не только и не столько в коде. Тестировщик может быть хорошим, и может указать место в коде, где проблема. Может писать автотесты, писать инструменты для тестов, хэлперы, разворачиватели баз всякие. И при этом не знать тех вещей, которые обязан знать даже джун. Рано или поздно, если такой тестер развивается — он становится разработчиком в тестировании (STED), про отличия деятельности такого человека от разработчика хорошо написано в статье habr.com/ru/post/414563
          Основное мое предположение в том что отличие высококвалифицированного QA (с программированием, преферансом и аналитикой) и высококвалифицированного разработчика именно в работе мозга. И полагаю платят вторым больше еще и потому что изначальная цель — создать продукт, который можно продать. И его влияние на результат определяется явно. А влияние тестировщика на результат определяется неявно, поэтому больше вопросов типа «за что платить человеку, который ничего не создает». Конечно за десятилетия разработки компании уже перешли от всяких waterfall к agile и scrum и QA стали задействовать на гораздо более ранних стадиях и более вовлеченно в проекции на весь цикл работы продукта. Но инерция изначального восприятия профессии и мысли типа «любой может стать тестером, легкий путь вайти в IT» все еще делают свое дело.


        1. Trediol
          01.03.2019 17:45

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

          Чувак, который может спокойно указать конкретное проблемное место в коде — это не просто хороший тестировщик, это судя по всему человек, который имеет представление о том, как работает «черный ящик», который он тестирует. Причем знает настолько подробно, что сходу определяет проблемное место.
          Вопрос к знатокам: почему он до сих пор в должности тестеровщика, а не разработчика?


    1. Daria_Yakovleva
      28.02.2019 18:55

      спасибо! починили)


  1. bano-notit
    01.03.2019 02:04

    Ruby on Rails не язык программирования, а фреймворк. Вообще как-то все свелось к рекламе…


  1. dariaamir
    01.03.2019 12:39

    Как тестировщик, не понимаю смысла этой статьи :)
    Что-то в духе: «Чтобы найти работу, нужно что-то знать и иметь какой-то опыт, но вообще не обязательно»