Люди привыкли к хорошему. От продуктов, которыми мы пользуемся, мы всегда ожидаем, что они будут вести себя нужным образом и не станут ломаться. Если это не так — мы выбираем другие, более качественные продукты.
Основной смысл работы специалиста по тестированию — улучшение качества продуктов. Тестировщиками становятся тайные перфекционисты, которые хотят сделать мир лучше. Если человек — прирожденный тестировщик, то довольно быстро у него открываются особые «чакры» и появляется своя «карма», из-за которой вокруг него всё вдруг начинает ломаться: от дверных ручек до программного обеспечения, которое по идее ломаться не должно.
Тестировщик должен уметь смотреть на продукт глазами конечного пользователя. Ежемесячная аудитория проектов Mail.Ru Group составляет более 142 миллионов пользователей (сomScore, декабрь 2015, весь мир). В России аудитория холдинга охватывает 96% ежемесячной аудитории интернет-пользователей. По сути, практически каждый житель страны, включая пенсионеров и детей, заходит на разные сайты компании каждый день и начинает с ним что-то делать. Вот почему у тестировщика на полную мощность должна работать вся его фантазия и способность перевоплощаться: в 60-летнюю бабушку, в её пятилетнего внука, в безработного слесаря или в менеджера среднего звена.
Тестировщиком, в отличие от программиста, может стать кто угодно. В эту профессию приходят не только «технари» и склонные к точным наукам люди, но и гуманитарии. Часто тестировщиками становятся сами пользователи, особенно фанаты компьютерных игр.
Специалисты Mail.Ru Group рассказывают, что на их практике тестировщиками становились бывший оперуполномоченный уголовного розыска, воспитательница детского сада, испытатель комплектующих ядерных ракет и страховой агент. Оперуполномоченный блестяще выбивал показания из разработчиков, а воспитательница детского сада могла погладить по голове и спросить: «Ну, что ж ты, Мишенька, так накосячил?».
Существует ложное представление о тестировщиках как об «обезьянках-кликальщиках», работа которых не требует усилий, и их, при необходимости, легко можно заменить или и вовсе набрать студентов, так что те за полгода превратятся в профессионалов. Порог для входа в эту профессию действительно довольно низкий, но потенциал для развития огромен.
Большинство дефектов в продуктах наиболее эффективно находятся вручную: по составленному заранее плану или методом свободного поиска. Для этого специалист по тестированию должен обладать отличным системным и критическим мышлением. В этой профессии важно быть максимально дотошным и уметь задавать себе правильные вопросы: «А это что? А что если так? А что будет, если нажать сюда, а потом сюда?».
Очень важный навык в тестировании — умение чётко формулировать свои мысли и работать с документацией. Тестировщик должен уметь грамотно составить план тестирования, а при нахождении ошибок — очень точно и подробно их описать, чтобы разработчики знали, как и при каких обстоятельствах эти ошибки можно воспроизвести.
Для выявления более сложных дефектов существуют специальные методы тестирования, такие как автоматическое, функциональное, модульное и нагрузочное тестирование. Для овладения этими методами требуется серьезная техническая подготовка: хорошие навыки программирования (например, для написания unit-тестов), опыт работы со специальными инструментами (например, Selenium), часто бывает нужно знание SQL, Unix-систем, а также хорошее техническое понимание самого продукта и его инфраструктуры.
Работа у тестировщиков нервная, часто бывает так, что они оказываются крайними. В таких случаях нужно уметь постоять за себя и свою правоту. Тестировщик обязательно должен уметь аргументировать свою точку зрения.
В российских вузах, к сожалению, отдельно специалистов по тестированию не учат. В лучшем случае это может быть пара теоретических лекций в рамках более общего курса по менеджменту качества.
Mail.Ru Group запустила программу бесплатного дополнительного образования «Технопарк» для студентов МГТУ им. Баумана. В эту программу включен полноценный практико-ориентированный курс по тестированию и обеспечению качества в разработке ПО.
Хорошие тестировщики получают огромные возможности для карьерного роста внутри компании. Это может быть как горизонтальный рост, когда тестировщик наращивает свои технические навыки и становится экспертом в этой области, так и вертикальный, когда тестировщик становится руководителем отдела, а потом и директором по качеству.
Часто тестировщики, подобно Буратино, стремятся засунуть свой нос в каждую дырочку, узнать, что там происходит, для чего и почему. Такие люди нередко становятся хорошими product- или project-менеджерами.
Как и в любой профессии, здесь важно понимать, что вслед за амбициями приходит ответственность, которая ложится на плечи тяжелым грузом.
«Тестирование — очень ответственная работа. Однажды я провел эталонное тестирование новой версии игры Tony Hawk, записал диск и отправил его на Урал, где с диска сняли десятки тысяч копий для покупателей. Однако версия, записанная на диске, не позволяла пользователям сохраняться, и это был полный провал.
Мягко выражаясь, это очень печальный дефект, мне было очень больно. Но тем не менее, это была моя ответственность, и с годами я понял, какую ошибку допустил. Именно это превращает тестировщика в специалиста по обеспечению качества, когда он не просто констатирует факт наличия дефекта, а выступает в роли катализатора положительных изменений.
Тестировщик, который начал задумываться о том, как возник дефект и как избежать этого в будущем, перерождается и начинает действовать проактивно: предлагает проводить code-review, внедрять тесты, спецификации, стандарты качества и т.п. Он становится развитой формой «покемона»: раньше он был просто Пикачу, а потом вдруг в Райчу превратился. Так и мы — все время развиваемся».