Обратной дороги нет: личный опыт тестировщика
Хочу рассказать о работе тестировщика с нетипичного ракурса, который вряд ли покажут в учебных заведениях или профессиональной литературе. Становясь профессионалом в этой области, ты неизбежно начинаешь жить концепциями, заложенными в саму основу тестирования. И это очень по-разному отражается на обустройстве жизни. О том, как именно это происходит у меня, под катом.
Немного о себе
Тестированием в том или ином виде я занимаюсь уже более 10 лет.
Путь в ИТ, как и многие, я начинал с разработки «для себя». У меня всегда был миллион идей, что написать, и таким образом я постепенно развивался. Мне нравилось разбираться в деталях проектов и делать их отказоустойчивыми, и уже тогда было более-менее все равно, на каком языке писать: я умел алгоритмировать, а погуглить синтаксис – вопрос недели.
Где-то в 2005 году я познакомился с человеком, который в буквальном смысле открыл для меня отрасль тестирования. Мне уже тогда показалось, что ее идеология полностью соответствует моим внутренним стремлениям. Человек тот в итоге прошел путь от рядового тестера до технического директора и уже тогда звал меня к себе работать. Но по разным причинам попал я в эту отрасль лишь год спустя, устроившись в компанию Smartbear (на тот момент – Automated QA Corporation), чей инструмент для автоматизированного тестирования TestComplete известен, пожалуй, всем тестировщикам. Правда, попал я не на сам TestComplete, а на другой продукт, Automated Build Studio – по сути, сразу в автоматизацию. В его GUI-подход к автоматизации, кстати, я буквально влюбился, даже написал для себя аналог, когда ушел из компании.
Впоследствии я успел поработать и на зарубежных заказчиков, и на российских. А на данный момент автоматизирую тестирование в российской полностью удаленной компании (на формате работы еще остановлюсь далее).
За время, проведенное в профессии, я понял, что тестирование — это не просто работа, но и своеобразный стиль жизни, который влияет на все аспекты твоей жизни. Будучи тестером, ты просто не можешь жить иначе.
У этого подхода есть как позитивные, так и негативные стороны.
Чем проще задача, тем хуже ты себя чувствуешь
Поиск сложных задач – это не только пристрастие, но и неизбежность.
Сколько бы ты ни учился, в любом инструменте, в любой технологии всегда найдется тот, кто знает больше тебя. И если ты условно «едешь по колее» простого проекта, об этой разнице знаний тебе будут постоянно напоминать. Со всех сторон будет сыпаться критика, что здесь можно было сделать иначе или даже лучше.
Единственный способ этого избежать – искать более сложные задачи, где нет очевидных решений, но есть бессонные ночи в поисках проблем.
К примеру, на одном из последних проектов я столкнулся с разработкой библиотек для Robot Framework в связке с Jython. Конкретно в том случае можно было использовать стороннюю библиотеку для работы с базой данных, и она вроде бы должна была работать, но не работала. Три ночи я потратил на то, чтобы в итоге, читая код самой библиотеки, найти ошибку в документации, которая неверно указывала типы и количество значений на входе. Это была победа и настоящий кайф от ее достижения! И мне нравятся подобные моменты. Это гораздо интереснее, чем «колея» типичного проекта.
Однако стремление к сложным задачам несколько ограничивает круг возможных работодателей. Еще больше его ограничивают дикое тестирование фронтэнда, работодатели без внятного ТЗ на тестирование или имеющие какие-то смутные представления о том, кто такой автоматизатор. Я встречал тех, кто, приглашая на автотестирование, ставит ручные задачи или подключает тестеров к support. Еще довольно много тех, кто экономит на покупке нормального инструментария, предлагая работать чуть ли не в Google Docs. И надо быть готовым к тому, что рынок потенциально интересных работодателей уже, чем тебе кажется.
Высшее образование не тождественно трудоустройству. Важна техническая база и интерес к профессии
На текущем месте работы в число моих обязанностей входит техническое собеседование тестировщиков, поступающих к нам на работу. В ходе беседы я никогда не задаю вопрос о наличии высшего образования, потому что уверен: оно абсолютно не гарантирует присутствие логического мышления. Может быть, мой собеседник имеет докторскую степень, но ни в зуб ногой в тестировании.
Откровенно говоря, я вообще считаю, что тестером нужно родиться. Для этого требуются природная внимательность, усидчивость и какая-то специальная тестерская жилка, когда ты из 1000 документов можешь наобум попасть в один из трех ошибочных. Правда, не все разделяют это мнение.
Важно то, что даже при наличии этой самой жилки нужна хорошая техническая база, которую вряд ли можно получить, закончив двухнедельные онлайн-курсы. Сложно сказать, что обеспечило техническую базу в моем случае. В 90-е доступа к Интернету у меня не было, нужной литературы в библиотеках — тоже, поэтому знания я черпал из FIDO (до сих пор поинты свои помню — 2:5022/5.102 и 2:5022/123.222). А базой именно по тестированию я обязан сертификации International Software Testing Qualifications Board (ISTQB). Кажется, ничего лучше пока не придумали.
Однако довольно редко я встречаю знания по ISTQB у кандидатов на вакансии. Более того, иногда мне кажется, что люди вообще не интересуются отраслью. На собеседованиях у меня есть вопрос про конференции: посещает ли кандидат какие-то мероприятия в сфере QA. И традиционный ответ на него отрицательный. Для меня это показатель серьезности и заинтересованности самого кандидата, а заодно и компаний, на которые он работал. Участие в мероприятиях типа SQA Days, куда я поеду в ближайшее время, стоит денег. И какая-нибудь «шарашкина контора» не будет тратить их на своих сотрудников. Из своего кармана же заплатит лишь тот, кому по-настоящему интересно.
Без опыта никуда
Каждый проект в тестировании заставлял меня изучать новые технологии. Выше я рассказывал о своей «героической битве» с Jython, но ведь придя на тот проект, я не знал ни Robot Framework, ни, собственно, самого Jython (ни даже Python, на котором есть много всего для Robot Framework). Теперь же я, пожалуй, лучше всех в компании разбираюсь в роботе, потому что база в тестировании подсказала подход, а опыт разработки на разных языках и тестирования предыдущих проектов позволил быстро переключиться на новый стек.
Кроме того, опыт позволяет правильно распределить усилия. Я заметил, что новички очень много внимания уделяют негативному тестированию – как бы что сломать. Видимо, стереотипы у них такие относительно профессии. В большинстве случаев их негативное тестирование неважно и ненужно (т.е. растрата ресурсов неоправдана, за исключением тех случаев, когда проект подразумевает необходимость такого тестирования). Лишь с опытом приходит понимание того, что нужно, а что нет, при такой постановке задачи.
Кстати, у меня на собеседованиях есть целый список вопросов, задача которых – выявить наличие именно практического опыта кандидатов.
Все люди раздолбаи. Это вызывает боль, но дает работу
Увы, мир несовершенен.
В разработке это выражается в том, что на тестеров существует спрос. Если бы разработчики замечательно писали код, мы бы остались без работы. С нами же раздолбайство никуда не исчезает, но мы покрываем его тестами.
Сами тестеры, к слову, тоже небезгрешны. Какой бы проект ни попался, вам тоже иногда придется писать «костыли». И с этим ничего не поделаешь – таковы порой условия бизнеса.
Чем лучше ты как тестер, тем больше тебя ненавидят
Разработчики с тонкой душевной организацией, с которыми я сталкивался на прошлых работах, порой очень тяжело относились к багам в их коде, информация о которых появлялась в системе. С их точки зрения, это, видимо, что-то вроде публичного оглашения их ошибок. И чем активнее ты отчитываешься о багах, тем сильнее тебя ненавидят коллеги. В результате в офисе у тебя, конечно, есть какое-то количество хороших знакомых, но примерно треть коллектива начинает тебя избегать, и ты это чувствуешь. Для меня это крайне неприятно.
На удаленке быть тестировщиком легче
Это естественное следствие из предыдущего замечания. Когда ты нажил себе в офисе достаточно «недоброжелателей» с тонкой душевной организацией, ходить по такому помещению становится не очень приятно. Поэтому для себя я уже давно сделал выбор в пользу удаленки. В таком формате непрофессиональные отношения сходят на нет – никаких косых взглядов. Возможно, конечно, я просто не сталкиваюсь теперь с такими характерами. Но здесь и шансов на такое столкновение немного. Мы, к примеру, созваниваемся по видеосвязи только внутри QA-отдела. С разработчиками, на которых я могу повесить баг, общаюсь только в тексте, без каких-либо эмоций. А даже если эти эмоции и будут, в тексте их переживать гораздо проще, чем когда человек по несколько раз в день проходит мимо.
А еще я могу питаться нормальной домашней пищей, оборудовать рабочее место так, как мне хочется. Могу сидеть в жару в одной футболке (помня о видеосозвонах) или даже изменить свои рабочие часы так, чтобы в середине дня выехать в поле и понаблюдать, как начинается осень или природа просыпается от зимней спячки. А самое главное достоинство удаленки – это экономия времени. Я живу неподалеку от областного центра. ИТ у нас существует только там. И если мне работать в офисе в центре, то до рабочего места придется добираться по часу в одну сторону, а по пятницам все полтора. И это время, которое ты просто теряешь: оно не оплачивается, не тратится с пользой. Плюс риск попасть в ДТП и расходники на машину. С удаленкой этих трат и рисков просто не возникает.
Мне кажется, по своей воле я уже не пойду работать в офис. Единственное, чего мне порой не хватает, так это личного общения. Но в целом это вопрос решаемый.
Профессиональная деформация влияет на взаимоотношения с друзьями
К сожалению или к счастью, тестирование – это стиль жизни. Не могу говорить за всех, но именно так это происходит у меня.
Тестирование начинается с требований к проекту. Собственно, его задача – убедиться в том, что продукт этим требованиям соответствует. Целыми днями разыскивая и исправляя проблемы в чужом софте, ты начинаешь заниматься чем-то аналогичным и в своей жизни. Я всегда живу с ощущением того, что все должно соответствовать требованиям. Быть тестером – значит жить по правилам. И если кто-то или что-то выходит за рамки этих правил (законов или собственных норм, сформулированных в голове), у меня это вызывает какой-то когнитивный диссонанс. Я срочно пытаюсь исправить баг или хотя бы заявить о нем. При этом окружающие люди очень часто страдают от того, что ты им постоянно твердишь о неправильных поступках.
Кстати, все это не способствует устранению той самой нехватки личного общения.
Общий комфорт рабочего процесса значит больше, чем кажется на первый взгляд
Выше я говорил по большей части о проектах и взаимоотношении с командой. Но работа, даже удаленная, состоит не только из этих моментов. И вот тут многое зависит от проекта, в который ты попал.
Во-первых, есть банальное материальное обеспечение. Например, удобное кресло, на котором я сейчас сижу, а также 24-дюймовый монитор куплены за счет работодателя. Плюс всякие оплаты спорта и прочие бонусы.
Во-вторых, есть банальная самореализация. К примеру, в одном из проектов, в которых я участвовал (тестирование проекта заказчика на аутсорсинге), меня – единственного из аутсорсеров этой компании – привлекали к собеседованиям сотрудников на данный проект в офис и приглашали на корпоративные мероприятия. Реально ли это в компании, для которой тестеры – безликие винтики механизма? Сомневаюсь.
Так или иначе, мне нравится моя работа. И когда удается решать сложные задачи в интересном проекте, я испытываю настоящее удовлетворение. Однако развиваясь на этом поприще, стоит быть готовым к тому, что подходы к работе затронут все аспекты жизни. А если превратишься однажды в тестера со всеми тараканами, назад дороги не будет.
Автор статьи: Владимир Васяев, Ведущий специалист по автоматизированному тестированию программного обеспечения
P.S. Мы публикуем наши статьи на нескольких площадках Рунета. Подписывайтесь на наши страницы в VK, FB или Telegram-канал, чтобы узнавать обо всех наших публикациях и других новостях компании Maxilect.