В программисты или в тестировщики (идти)?
===========================================

 Приветствую всех! Может быть кому-то мои вопросы покажутся странными, но я и в самом деле озадачен. Ознакомился с требованиями к вакансии тестировщика ПО (QA), почитал про эту профессию и пришёл к выводу что:  
  

-- выучится на тестировщика гораздо проще;  
  

-- довольно часто на это место берут даже людей с улицы, достаточно знать лишь общие теоретические вопросы в сфере IT (как в том анекдоте про цвет учебника на экзамене), обучают прям на месте, а бывшего программиста вообще оторвут с руками;  
  

-- знание ООП, алгоритмов, синтаксиса ЯП является бонусом, но не всегда это обязательно;  
  

-- тестировщики постоянно востребованы, почти так же как и программисты;   
  

Может быть я ошибаюсь, если это так, то с готовностью выслушаю критику.   
  

И в связи с этим у меня возникло несколько вопросов:  
  

-- почему тогда все не идут в тестировщики, вместо программистов? Из-за любви к программированию? Или лишь потому что программистам платят немного больше?  
  

-- можно ли устроится тестировщиком после 34 лет (в вакансиях конечно требования к возрасту не пишут, по понятным причинам)? Слышал, что это в основном для молодёжи..  
  

-- правда ли то что тестировщики с опытом работы так же востребованы за рубежом как и программисты?  
  

-- если кандидат пройдёт онлайн курсы тестировщиков, это повысит его шансы при приёме на работу в IT компанию?  
  

-- и верно ли то что раньше (лет 10 тому назад) тестировщиком легче было устроится без опыта, "с улицы"? В России, по крайней мере. 

 Какая работа по душе, туда и идите. Если бы грузчики получали больше инженеров (а иногда так и есть), я бы все равно не пошел работать грузчиком потому что не люблю рутинную монотонную изнурительную работу. С другой стороны, кто-то не любит напрягать мозг - он идет грузчиком. Это ничего не значит, просто каждому свое. Из своего опыта добровольного и бесплатного опыта бета-тестера могу сказать, что это рутинное и неинтересное занятие, от которого сильно тянет в кроватку. Но есть прекрасные тестировщики, балдеющие от своей работы. Кто прав? Тот кто сделал для себя правильный выбор. 

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

> почему тогда все не идут в тестировщики, вместо программистов?

  

Действительно, в тестировщики более чем реально попасть не умея программировать. Некоторые, поработав какое-то время, учатся программировать и становятся программистами. В целом, это неплохой старт карьеры в IT без опыта.  
  

> Слышал, что это в основном для молодёжи..

  

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

> правда ли то что тестировщики с опытом работы так же востребованы за рубежом как и программисты

  

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

> если кандидат пройдёт онлайн курсы тестировщиков, это повысит его шансы при приёме на работу в IT компанию?

  

Разумеется.  
  

> и верно ли то что раньше (лет 10 тому назад) тестировщиком легче было устроится без опыта, "с улицы"?

  

Думаю, что как и в любой сфере, чем больше кандидатов тем сложнее. Хотя, и фирм 10 лет назад было меньше. 

**Кратко: тестировщик - это своего рода экзаменатор/фильтр качества выпускаемого продукта, которое прямо влияет на репутацию компании этого продукта на рынке.**  

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

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

Тестировщики - тоже бывают разные: реакция приложения на последовательные действия пользователя (обычный тест), удобство использования(UI/UX), тестирование на реакцию приложения при возникновении различных случайных событий и ситуаций (нет интернета, приложение/окно не закрыли как положено и т.д.).  
  

Есть низкоуровневые тестировщики (или элитные тестировщики): они проверяют отсутствие утечек памяти, нагрузку на CPU/GPU, тротлинг, корректность создания потоков, процессов, race-condition и прочее. Как правило - это дебаггер с ассемблером и прочие страшные вещи для отладки при использовании программного продукта.  
  

Всё зависит от Ваших способностей погрузиться в глубины обработки информации: от банальной реакции приложения на экране до регистров процессора/ячеек памяти/отслеживания системных вызовов.  
  

Могу сказать, что это большое отдельное направление, которое набирает обороты, т.к. качественный и стабильный продукт, работающий без ошибок - это репутация компании, которая его произвела, и чем он будет стабильнее и качественнее работать, тем больше людей перейдёт от конкурентов на продукт этой компании.  
  
**Стоит ли это направление изучать?**   

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

Если же компания экономит на тестировщиках, значит она просто не набрала нужный опыт и/или уровень на рынке и, как следствие, не может/не хочет вкладываться в таких специалистов, как тестировщики. Вот туда - лучше и не пытаться даже. 

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

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

10 лет назад тестировщиком было устроиться проще, компании, которые начали специализироваться на тестировании и компании, которые вводили у себя профессиональное тестирование, находились в начале своего активного роста. Профессия, особенно в странах СНГ, как таковая была еще не очень устоявшаяся.  
  

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

При этом требования все равно ниже, чем к программистам, поэтому конкуренция на вакансию весьма высока.  
  

Куда вам идти выбирать лично вам. Работать можно вообще в любой сфере, где вы можете работать. 

 У меня на предыдущей работе был глава тестировщиков, которому 63. Он 30 лет проработал программистом. Сейчас нашел особо ненапряжную работу, для которой он чрезмерно квалифицирован, но его устраивает. К тому же, он новичков-тестировщиков натаскивает довольно хорошо. Особо в офисе не появлялся но "сложные/спорные" вопросы, помню, решались через него. Ах да, он там еще в роли UX-эксперта выступал.  

По профессии, это действительно востребовано. И оплачивается нормально. Спокойно можете начинать) 

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

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

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

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

 -- почему тогда все не идут в тестировщики, вместо программистов? Из-за любви к программированию? Или лишь потому что программистам платят немного больше?  
  

Потому что программист "раскрученная" профессия. Человек не из IT сферы знает что есть сисадмин, а есть программист и все.   
  

-- можно ли устроится тестировщиком после 34 лет (в вакансиях конечно требования к возрасту не пишут, по понятным причинам)? Слышал, что это в основном для молодёжи..  
  

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

-- правда ли то что тестировщики с опытом работы так же востребованы за рубежом как и программисты?  
  

Да, что QA, что Software tester.  
  

-- если кандидат пройдёт онлайн курсы тестировщиков, это повысит его шансы при приёме на работу в IT компанию?  
  

Если это какие-то Noname курсы - нет, nobody cares. Если это курсы при Epam/какой-то другой фирме, то по завершению курсов могут взять в эту фирму.  
  

-- и верно ли то что раньше (лет 10 тому назад) тестировщиком легче было устроится без опыта, "с улицы"? В России, по крайней мере.   
  

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

 У нас тестировщики получают значительно меньше чем программисты, но и их набирают почту с улицы - курсы и немного здравого смысла в голове.  
  

Плюс у разных людей разные темпераменты.  

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

 Это твоё решение.Но тестировщиком быть труднее.Постоянно проходить одно и то же, искать маленькие баги, хоть и платят, но оно того не стоит.Я бы на четвёртом дне тестирования прыгнул из окна.Почему из окна?Да это же самое весёлое занятие после тестирования!!!Программистом быть легче, но тоже есть подводные камни в плане того что если тестировщик нашёл баг тебе это придётся переписывать.И тестировщик не востребован потому что люди не хотят.Я уже говорил какое это муторное занятие, но тебе решать.Твоей судьбой мы не распоряжаемся.Тем более я тоже упрямый))0) 

> -- выучится на тестировщика гораздо проще;

  

> -- довольно часто на это место берут даже людей с улицы, достаточно знать лишь общие теоретические вопросы в сфере IT (как в том анекдоте про цвет учебника на экзамене), обучают прям на месте, а бывшего программиста вообще оторвут с руками;

  
  

Порог вхождения в тестирование ниже, чем в программирование - это правда. Но ближе к Senior-уровню ситуация меняется: хорошим тестером быть дано не каждому. И я даже не говорю по Automation. И не буду говорить что есть три уровня тестеров: Tester, QC, QA (последних вообще мало).   
  

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

Тестирование - во многом:  

1) Про умение писать техническую документацию: тест-планы, тест-кейсы, баг-репорты. Писать нужно очень много - это 70 процентов работы.  

2) Про коммуникацию. Необходимо общаться и эффективно получать информацию от BA, Dev, Customers, Stakeholders  

3) Про способность докапываться до сути и понимать потребности бизнеса. Dev может делать только свой кусочек работы, а QA должен понимать как это работает в целом.  

4) Технические навыки и хотя бы общее понимание того, как пишется код - тоже обязательны.  
  

И, в целом, в QA много рутинной работы, с которой не все справляются.  
  

>   
> 
> -- знание ООП, алгоритмов, синтаксиса ЯП является бонусом, но не всегда это обязательно;

  

Чем больше вы знаете, тем больше вы стоите. Конечно ООП нужно знать.  
  

> -- тестировщики постоянно востребованы, почти так же как и программисты; 

  

Безусловно  
  

> -- почему тогда все не идут в тестировщики, вместо программистов? Из-за любви к программированию? Или лишь потому что программистам платят немного больше?

  

Читайте выше - работа QA не для всех в виду ее специфики.  
  

> -- можно ли устроится тестировщиком после 34 лет (в вакансиях конечно требования к возрасту не пишут, по понятным причинам)? Слышал, что это в основном для молодёжи..

  

Можно, но сложнее, кто бы вам не говорил иначе. В странах СНГ средний возраст айтишника пока около 28-30 лет, хотя в штатах уже давно значительно выше.  

>   
> 
> -- правда ли то что тестировщики с опытом работы так же востребованы за рубежом как и программисты?

  

Да  
  

> -- если кандидат пройдёт онлайн курсы тестировщиков, это повысит его шансы при приёме на работу в IT компанию?

  

Сомнительно. Лучше почитайте Коупланда (Copeland)  
  

> -- и верно ли то что раньше (лет 10 тому назад) тестировщиком легче было устроится без опыта, "с улицы"?

  

Скорее всего да, хотя тех, кто шел в тестирование было меньше, но и IT-компаний было тоже в разы меньше. 

 Предлагаю вам проверочное задание-шутку для профориентации:  

Посмотрите на этот  
**юнит-тест**
```
public class ListMapTest {

    @Test
    public void testListMap() {
        ListMap<String, String> listMap = new ListMap<String, String>();
        listMap.put("bob", "hello");
        assert "hello".equals(listMap.get("bob"));
        assert "hello".equals(listMap.remove("bob"));
        assert listMap.size() == 0;
        assert listMap.isEmpty();

        listMap.put("abc", "1");
        listMap.put("def", "2");
        listMap.put("ghi", "3");
        listMap.put("jkl", "4");
        listMap.put("mno", "5");
        assert "3".equals(listMap.get("ghi"));
        assert listMap.size() == 5;
        assert !listMap.isEmpty();

        // check iteration order, should be consistent
        for (int i = 0; i < listMap.size(); i++) {
            String expectedValue = Integer.toString(i + 1);
            String key = listMap.getKey(i);
            String value = listMap.getValue(i);
            Entry<String, String> entry = listMap.getEntry(i);
            assert key.equals(entry.getKey());
            assert value.equals(entry.getValue());
            assert expectedValue.equals(value);
        }
    }
}
```
  
  

([из опенсорсного игрового движка jmonkeyengine .](https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/jme3-core/src/test/java/com/jme3/util/ListMapTest.java))  
  

Что можно в нем улучшить ?  
  

Варианты ответов:  
1. ничего
2. использовать junit
3. разбить на несколько тестов и добавить недостающие проверки

  
  

Ключ: если вы ответили 1. или 2. - вам в разработчики. 

 в тестировании легче построить карьеру ;) 

 на мой взгляд, тестировщик - это тот "невезучий" человек, который способен на раз вляпываться в такие ситуации или проблемы, где большинство просто пройдет мимо. Как раз именно эта его особенность позволит придумать такие кейсы, которые 'проверят' ваш предрелиз на прочность и дадут вашему будущему релизу гарантию успеха на 99,9%.  

Карьерные пути неисповедимы, полагаю, что из тестировщика можно вырасти в программиста и наоборот. Думаю, что это вопрос места, на котором вы будете работать.