Легко ли быть тестировщиком?
Задача тестировщика — проверять программы и сайты: нет ли там багов, работает ли пользовательский интерфейс и все ли процессы идут так, как задумали разработчики. Для многих именно эта профессия оказывается точкой входа в IT, а у новичков всегда множество вопросов. Так ли легко стать тестировщиком и что именно должен знать и уметь такой специалист? Что такое «порочный круг тестирования» и каковы перспективы тех, кто полностью посвятил себя этой профессии? Обо всем этом рассказывает Александр Шиповалов, старший инженер по тестированию поисковых интерфейсов Яндекса.
1. Тестировщик — это исследователь
Работа в тестировании — это не борьба с багами, это сбор информации о состоянии продукта. К ней могут прилагаться баг-репорты, а могут не прилагаться. Так что суть профессии заключается в исследовании.
Любому, кто хочет заняться тестированием, рекомендую роман братьев Стругацких «Понедельник начинается в субботу»
В одном из эпизодов главный герой Саша Привалов получает неразменный пятак и начинает изучать его возможности. По сути герой генерировал таск-кейсы: сначала просто проверял как работает пятак, затем стал проводить сложные тесты, например, попытался положить пятак отдельно от других монет и отследить его перемещение в пространстве.
2. Опыт и способность рассуждать важнее знаний
Довольно легко овладеть базовыми знаниями о тестировании. Несколько книг и короткие курсы в этом помогут. Конечно, нужно осваивать языки программирования. В идеале три: JavaScript как главный язык веба, Python или Java — языки общей автоматизации и третий язык той оболочки, на которой вы работаете, я рекомендую bash.
На интервью я смотрю не столько на решения задач, сколько на то, как человек размышляет, готов ли он столкнуться с нетипичной проблемой и как он себя при этом поведет.
Часто на собеседованиях в Яндексе в качестве заданий я прошу протестировать зажигалку
Так проверяется способность выявить главные аспекты тестируемого предмета, определить тестовый базис. Для зажигалки ты его извлекаешь на основе собственного опыта или того, что ты видишь вокруг, для неразменного пятака приходится брать тестовый базис из сказок.
3. Существует порочный круг тестирования
Из-за того, что этой профессии достаточно легко обучиться, она оказывается для многих точкой входа в IT. Низкий порог входа позволяет людям, не обладающим техническими навыками, начать с тестирования, получить там необходимые навыки и уйти в разработку или в менеджмент.
В результате высококлассных тестировщиков остается очень мало. Отсюда и более высокие зарплаты у старших или ведущих инженеров по тестированию, особенно если они владеют навыками автоматизации, по сравнению, например, с аналитиками такого же уровня.
Порочный круг приводит к быстрому карьерному росту тех, у кого есть голова на плечах, и тех, кто понимает, что это интересная работа, в которой можно заниматься самыми разными вещами.
Но этот же порочный круг формирует предвзятое отношение к тестировщикам внутри компании. Молодой специалист приходит и быстро уходит. Его место занимает другой, всегда новый и всегда необученный тестировщик. Отсюда отношение, которое несправедливо к тем, кто действительно посвятил себя этой профессии.
4. Всегда есть способы сделать свою работу интересной
Одна из причин порочного круга в том, что на начальных этапах тестирование — это монотонное выполнение очень простых операций. У тебя есть набор инструкций, по которым ты идешь и прокликиваешь, прокликиваешь, прокликиваешь... Это действительно скучно, хотя и не более скучно, чем писать юнит-тесты, именно этим, зачастую занимаются начинающие разработчики.
Но даже на этом этапе тестировщик может сделать свою работу интереснее: внедрить повседневную автоматизацию, написать скрипты и тулзы, которые помогут сэкономить время, проанализировать свой график и понять, как оптимизировать рабочий день. Даже если ты сэкономил пять минут, это может быть поводом для гордости: до этого никто так не делал.
Тестировщик — это первый пользователь любого продукта, и он собирает самые интересные проблемы и ошибки
Со временем работа в любом случае становится интереснее. Тестировщикам приходится гораздо больше посвящать себя проекту, чем другим специалистам. Для разработчика что разрабатывать код для атомной станции, что для беспилотника — все одно. Код пишется в одних и тех же условиях. А вот тестировщики беспилотников гоняют на них без конца с риском для жизни. Приходится работать в полевых и подчас неожиданных условиях.
5. Тестировщик должен уметь общаться с другими людьми
Общение — важная составляющая нашей работы. Конечно, умение общаться не помешало бы и разработчикам, но тестировщику оно совершенно необходимо. И это не всегда упрощает жизнь новичков.
Как показывает опыт стажировок в Яндексе, чаще всего приходится обращать внимание ребят на социальные навыки, учить их правилам делового этикета и эффективной коммуникации.
У ребят отсутствует привычка адресно задавать вопросы, обычно они обращаются непонятно куда со словами: «эй, кто подскажет?». Естественно, никто не подсказывает, а новички обижаются, хотя, если подойти адресно, то я, например, всегда помогу.
Общение нужно и для того, чтобы сделать свою работу прозрачнее. Часто возникает такая ситуация: молодой специалист застопорился с какими-то таск-кейсами и непонятно, когда он закончит. Нужно сообщать коллегам: мы взяли в работу, мы занимаемся твоей проблемой, мы закончили работу — это и означает сделать работу прозрачной. Чтоб другие знали, что ты делаешь и как это им поможет.
6. Тестировщику есть куда расти
У меня есть мечта — вырастить из начинающих тестировщиков «черную команду тестирования». В начале 2000-х существовала такая команда очень любящих свою профессию, очень изобретательных и очень профессиональных тестировщиков. В случаях особо крупного релиза они приходили все в черном и находили в продукте самые немыслимые баги. Они изобретали самые невероятные проверки для кода. Хочется собрать такую же команду, чтобы люди знали, что если эти ребята вышли в черном, то будет битва с ошибками, недочетами и дефектами. Битва за настоящее качество!