Тестировщик ПО
Мы поинтересовались у представителей компаний, каким требованиям должен удовлетворят кандидат-тестировщик
1. Какими знаниями и навыками должен обладать тестировщик ПО?
2. Каков инструментарий тестировщика ПО?
3. Каковы требования компании к уровню образования потенциальных сотрудников?
4. Какие требования предъявляются к опыту работы?
5. Есть ли особые требования, которые обусловлены спецификой деятельности компании?
Тимофей Сургученко, начальник департамента контроля качества в Parallels
1. Для нас самое важное – это общая компьютерная грамотность, аккуратность и коммуникабельность. Без коммуникабельности никуда, тестировщику вообще постоянно приходится что-то у кого-то узнавать, с кем-то о чем-то договариваться, обосновывать неправильность того или иного поведения системы и т.д. Без аккуратности, само собой, тоже в тестировании делать нечего. Кстати, самый простой способ НЕ попасть к нам на собеседование – это сделать опечатку (подчеркиваю – именно опечатку, а не орфографическую или грамматическую ошибку) в резюме, для тестировщика это недопустимо. Без общей компьютерной грамотности тоже никуда – спектр задач, решаемых тестировщиками, очень широк, и, если он будет постоянно лазить в Google, чтобы понять, что такое ошибка 404 или чем отличается IP-адрес от MAC-адреса, его продуктивность будет сильно ниже желаемой.
2. Голова и руки – вот основной инструментарий тестировщика ПО в нашей компании. А помогают ему в его нелегкой работе такие инструменты, как Atlassian Jira (где у нас построен весь технологический процесс работы с дефектами, задачами и функционалом), Atlassian Confluence (где мы храним требования, а также всю внутреннюю базу знаний), TestLink (переписанный нами чуть менее чем полностью – там мы храним и выполняем тестовые сценарии), а также огромное количество самописных сервисов и тулзов (от редакции: tools-инструменты) для автоматизированного развертывания тестовых инфраструктур, написания и прогона автоматических тестов, аналитики тестовых результатов и покрытия продуктов тестами, сбора метрик по проектам и людям и много каких еще задач. Современные подходы к QA постоянно эволюционируют, как и наши инструменты, поэтому мы постоянно что-то дописываем, докручиваем и пробуем новые. Не думаю, что когда-либо мы сможем заявить, что текущим набором тулзов мы удовлетворены.
3. Специфических требований к образованию кандидатов у нас нет. Конечно же, как и любая другая компания, мы рады видеть у себя на собеседованиях выпускников ведущих технических вузов, таких как МФТИ, МГУ, МИФИ, Бауманка и т.д. Но на собеседование к нам может попасть выпускник или студент любого вуза, будь то технарь или гуманитарий, известный вуз или неизвестный техникум. У нас в штате есть люди даже и вовсе без высшего образования. А далее все зависит от самого кандидата, как он покажет себя на собеседовании. Ради интереса поднял резюме нанятых к нам в отдел за последний год – там выпускники МехМата МГУ, МФТИ, МИЭТа, МАДИ, Бауманки, МГСУ, МФПА, НГУ, БГУ, Кемеровского государственного университета, Хакасского государственного университета и т.д.
4. В идеале нам, конечно же, хотелось бы видеть у себя людей с 5+ годами опыта работы по специальности в одной из ведущих продуктовых ИТ-компаний России и мира. Увы, в реальности таких кандидатов на рынке труда почти нет, или за ними ведeтся настоящая охота и идет бескомпромиссная борьба между потенциальными работодателями. А люди нужны. Поэтому к себе в отдел мы часто принимаем новичков совсем без опыта работы по специальности. И дальше растим их сами. В основном такие люди имеют солидный опыт работы в другой интересной нам специальности (например, в системном администрировании или программировании) и какие-то достижения, а также отвечают общим требованиям.
Кроме того, мы практически не нанимаем людей со стороны на ведущие должности, а также на менеджерские позиции, предпочитая растить таких специалистов сами. И это дает результат, карьерная лестница и в отделе, и в компании работает достаточно хорошо. За последние четыре года из отдела тестирования выросли один директор по разработке и два вице-президента.
5. Конечно же, такие требования есть. Думаю, в той или иной мере они есть у любой компании. Наша специфика заключается в том, что наш софт предназначен для виртуализации и управления ИТ-инфраструктурой облачного провайдера, поэтому тестировщик обязан на хорошем уровне знать, что это за инфраструктура и как ею управляют. Для наших тестировщиков не составляет труда развернуть и настроить Microsoft Exchange или Lync, разобраться в дебрях конфигурации Apache или изолировать хитрую ошибку где-то в системных компонентах Linux. Поэтому часто на должность тестировщика мы ищем людей с серьезным опытом в системном администрировании или тех, кого принято называть «линуксоидами». На последнем собеседовании, например, у меня был сисадмин с восьмилетним опытом работы.
Кроме того, у нас необходимо знание английского языка, хотя бы на уровне pre-intermediate, поскольку весь внутренний документооборот ведется на английском.
Кирилл Фальк, тест лид .NET-команды в JetBrains
1. Для нас самое важное, чтобы тестировщик любил свою работу, любил тестируемый продукт, глубоко и широко понимал его возможности, какие проблемы он позволяет решить в боевой обстановке у пользователей. Без понимания тестируемого продукта ничего не получится.
Так как мы живем в мире .NET, то тестировщик также должен понимать, как в этом мире все устроено, что такое CLR, garbage collector. В линейке .NET-продуктов есть разные (ReSharper, dotTrace Performance, dotTrace Memory, dotCover). Ведущим продуктом в .NET-департаменте у нас является ReSharper, соответственно человек, попадающий в команду тестирования ReSharper, должен понимать, как устроены IDE (в частности, Microsoft Visual Studio), иметь хотя бы общее представление о различных .NET-технологиях, языках программирования. С другой стороны, если человек – профессионал в своей области, то изучить новую технологию или новый подход для него не проблема.
Соответственно мы также рассматриваем людей с опытом тестирования Java/веб-ориентированных проектов.
Тестировать люди могут по-разному, иметь разный опыт (ручное/автоматизированное тестирование/performance testing), но мы в первую очередь смотрим на то, как тестировщик думает, рассуждает, готов ли он к самообучению, может ли сам ставить себе задачи и успешно их решать, насколько комфортно он чувствует себя при работе в команде.
2. Главное – это голова. А инструментарий у нас различный – начиная от всей линейки MS Visual Studio, различные VCS, и заканчивая тулзами для изучения крешдампов, например, WinDbg. Используем, конечно, свои же тулзы для профиляции памяти и производительности программы.
3. Особых требований у нас нет. Мы обращаем внимание на то, что человек умеет и чему обучился. На наличие диплома (красный/синий) мы смотрим в последнюю очередь.
4. Повторюсь, нам важно, что человек знает и что умеет. Но мы стараемся набирать людей уже с опытом тестирования больших коммерческих продуктов.
5. Большинство наших пользователей – программисты, и соответственно тестировать все продукты надо стараться с позиции программиста. Если говорить, например, о ReSharper, одну и ту же задачу разные программисты могут реализовать по-разному, соответственно нам это надо учитывать при тестировании функциональности.
Олег Строкатый, руководитель отдела тестирования компании «1С-Битрикс»
Мы работаем в основном в области веб-технологий, поэтому рекомендации даются с этой поправкой.
1. Необходимо понимание специфики среды и объектов тестирования. Если говорить о веб-разработке, то нужны знания работы веб-технологий, схемы работы веб-сайтов, веб-серверов, баз данных, умение их конфигурировать, хотя бы на базовом уровне.
Знание английского языка на уровне выше начального, а лучше среднего, что позволит читать различные мануалы.
Наличие грамотного русского (или английского) языка и умения также грамотно и понятно излагать свои мысли. Это позволит быстрее донести до разработчика суть найденной проблемы и прийти к ее решению
Необходимо обладать фантазией, чтобы сгенерировать максимально разумное количество прецедентов работы с продуктом.
Мы ведь говорим о квалифицированном тестировщике. Такой тестировщик должен уметь работать с инструментами автоматизации, то есть должен уметь программировать на уровне «выше базового», а лучше «хорошо». Это позволит разработать различные фреймворки, скрипты и инструменты автоматизированного тестирования, которые в итоге помогут сэкономить много времени и избежать рутинного труда.
2. Система трекинга ошибок. Есть как платные, так и бесплатные, например, Mantis, Redmine, Bontq. Установленные популярные браузеры необходимых версий с консолью веб-разработчика. Сегодня это Google Chrome последней версии, FireFox последней версии, Internet Explorer 8 и 11, Safari последней версии. Утилиты для быстрого снятия скриншотов с возможностью рисования на них. Например, бесплатный FastStone или Joxi. Инструменты автоматизации. Их набор определяется спецификой разработки автотестов. Это могут быть установленные фреймворки и библиотеки. Например, установленный Eclipse или MS Visual Studio с подключенными библиотеками Selenium. Если разработка автотестов ведется серьезно и долго, то не лишней будет система контроля версий проекта по автоматизации.
3. К сожалению, уровень образования и знаний большинства современных выпускников вузов и средних специальных учреждений не дает никакой возможности полагаться на имеющийся у них диплом. Мы не предъявляем особых требований к образованию. Решающее значение имеют опыт и навыки.
4. Опыт работы в тестировании необходим. Это более говорящий показатель, нежели наличие диплома. Желателен опыт работы в профильной среде от года.
5. Особых специфических требований нет. Как наиболее важное я бы выделил наличие достаточной самостоятельности у кандидатов, способности довести проблему до ее решения, а также умение работать быстро.
Юрий Трухин, эксперт по облачным технологиям InfoboxCloud
1. Хороший тестировщик должен уметь понимать устройство сложных систем. Должен обладать навыками общения с коллегами. Быть устойчивым к рутинной работе и справляться с резко возрастающей нагрузкой в работе. Должен обладать не только навыками автоматизации тестирования, но и иметь и реализовывать новые идеи в сфере тестирования ПО, проявляющиеся в разработке ПО для тестирования, оптимизированного под конкретную задачу. Тестировщик всегда и разработчик.
2. Jenkins/Teamcity, базовые инструменты UNIX-систем, знание методик всех видов тестирования и умение аргументировать выбор инструмента в каждом из видов. Инструментов много, например, JUnit, WebDriver, Maven, Thucydides и др.
3. Выполняется проверка знаний в выбранной области до начала работы. Если вы обладаете необходимыми, у вас большой шанс. Плюс – участие в открытых проектах, где можно увидеть ваш реальный вклад в работу. Вы должны обладать умением объективно оценивать трудоемкость задач и координировать команду тестировщиков.
4. Плюсом является опыт программирования на Python, Java, PHP, C++ (умение читать и понимать код, лучше – опыт промышленной разработки). Необходимо знание основ ООП. Важнее умение тестировать, а не красивая запись в трудовой книжке. Минимум год работы по специальности – необходимое условие. Нужен опыт работы с UNIX (Linux, FreeBSD).
5. Мы стремимся максимально эффективно использовать человеческие ресурсы, поэтому автоматизация всего, что возможно, очень важное качество. Из-за специфики деятельности компании сфера работы тестировщика может пересекаться с программистской, сферой сетевого администрирования и оценки качества работы больших систем. Важна высокая внутренняя мотивация. Каждый сотрудник должен быть небезразличным к качеству работы всей системы в целом и внимательным к мелочам, не ограничиваясь кругом ежедневной работы.
Подготовил Игорь Штомпель