О работе тестеров программного обеспечения рассказывает Наталья Руколь, за спиной которой — огромный опыт выстраивания процессов QA. С её участием выполнено более 10 крупных проектов по разработке ПО, включая крупномасштабные решения по резервному копированию данных True Image, коммерческую операционную систему Lynx OS, системы документооборота крупных правительственных организаций России и США, антивирус Касперского.
Начало карьеры
Я очень долго искала себя: чувствовала интерес к
Хорошо помню, как мне трепетно передали синенькую потрёпанную книжечку и сказали: «Это — Библия». Так я прочитала Сэма Канера.
В его книге было описано столько интересного и на тот момент не очень понятного, что я перечитала её дважды. В компании, в которой я на тот момент работала, я увидела все описанные им проблемы, недоработки. Ужаснулась: как можно знать об этом и не исправлять, не улучшать, не совершенствовать? Тогда я и почувствовала, что преодолеть это и прийти к идеальному тестированию — возможно, и есть моё призвание.
Начав с тестирования, я вскоре занялась автоматизацией тестов, а после перешла в
Переход на руководящую должность сместил ориентиры: я почувствовала необходимость развивать абсолютно новые навыки. Один из моих друзей и наставников, Дима Обрезков, принёс мне тогда 10 книг и сказал: «У тебя есть две недели. Читай!».
Я очень боялась допустить
какие-то ошибки, поэтому внимательно всё читала и тренировалась. Управление проектами, персоналом, постановка задач, делегирование, мотивация…
Голова от массы новой информации шла кругом, но всё надо было усвоить: чтобы попрактиковаться, я составила по этим книгам карту мотиваторов моей мамы и устроила собеседования всем друзьям!
С управлением непосредственно тестированием было сложнее: информации на русском языке тогда почти не было, и приходилось самой экспериментировать и учиться на боевых задачах: как оценить качество? почему мы пропустили ошибку? как помирить разработчиков и тестировщиков? как успеть выполнить все задачи вовремя? До этого стояла простая и понятная цель: найти максимум ошибок. А тут вдруг оказалось, что целей значительно больше, и поиск ошибок — только средство для их достижения.
Сейчас я нахожусь «в свободном плавании» — провожу тренинги, консультирую, пишу статьи. Очень много читаю англоязычной литературы по тестированию: в Америке эта отрасль находится в значительно более развитом состоянии. Ищу интересные подходы, разрабатываю новые, адаптирую их для наших условий. Это безумно интересно — видеть своё влияние на отрасль, предугадывать её развитие.
У меня два повода для гордости.
Второе и, возможно, самое важное для меня — это сформированные команды. Вкладывая душу в развитие сотрудников, помогая им понять себя и формируя действительно успешные мотивированные команды, я развиваю и отрасль в целом и помогаю многим людям найти себя. Разве не повод гордиться?
Работа QA
Следует разделить понятия QA и тестирования. Тестирование — процесс оценки качества продукта, а QA — это формирование процессов, которые обеспечивают высокое качество ПО (в том числе и процессов разработки, аналитики, документирования).
В основном, когда говорят о QA, имеют в виду тестирование: во многом потому, что процессное управление пока что не очень распространено в России, многое делается по интуиции.
Лишь некоторые крупные компании уже начали управлять процессами: в них QA проводят системные исследования всех проблем и временных задержек, выявляют необходимые улучшения, документируют процесс. В таких компаниях обычно утверждены все шаблоны документов, а сотрудники точно знают, кому что надо делать и каковы критерии эффективности выполнения задач. Кстати, многие считают, что в таких формальных процессах работать скучно: отнюдь не так! У сотрудников остаётся не меньший уровень свободы и творчества. Задачи, которые они решают, доступны только на этом уровне зрелости, и становятся сложнее и интереснее!
Если же говорить о тестировании, классифицировать задачи непросто. В некоторых (обычно, небольших) компаниях тестировщику предоставляют рабочее место, доступ к сборке продукта, оставляя организацию работы на его усмотрение.
В компаниях, где используются более формализованные процессы, есть четко заданные роли:
И, кстати, не стоит считать, что тестирование — отличная работа для социофобов: тестировщики не сидят круглые сутки, упёршись в монитор и пытаясь напакостить разработчикам.
Тестеры очень много общаются с аналитиками — для лучшего понимания продукта и проверки требований. Зачастую они и сами выступают в роли аналитиков, выявляя новые требования и предлагая улучшения для продукта. С разработчиками тем для обсуждения не меньше: они помогают в проектировании тестов, рассказывают об архитектуре продукта.Наоборот! В работе тестировщика очень важно понимать общие проектные цели и работать в одной слаженной команде с аналитиками, разработчиками, руководством проекта.
Это только в анекдотах и редких негативных исключениях тестеры и разработчики ведут войну, как собака с кошкой. В большинстве же случаев все понимают общие цели и работают друг другу только на помощь. Взаимодействие происходит в дружеской атмосфере, и ошибки не воспринимаются разработчиками как
Не все мои ожидания от профессии оправдались. Я думала, что в процессе тестирования нет особых сложностей. А оказалось, что это далеко не так. Любую задачу выполнить просто, если делать её плохо, спустя рукава. Если же мы хотим поработать на славу, придётся постараться: непрерывно искать оптимальные пути решения всё новых и новых задачек, пробовать новые техники, адаптировать используемые подходы.
В тестировании ничего не поддаётся алгоритмизации: в каждом проекте надо проявлять творческий подход, и, зачастую методом проб и ошибок, продвигаться вперёд.
Движущие силы
О
Я очень радуюсь, когда «выпускники», обращаясь с
каким-то вопросом, заодно рассказывают о достижениях: что из рассказанного мной они внедрили, как это получилось, что они поменяли — здорово, когда удаётся «зажечь огонь в глазах» и помочь выйти на некий новый уровень.
Но и самой ни в коем случае не хочется останавливаться, передо мной всегда стоят
А вообще, что касается двигателя, один очень мудрый человек мне однажды посоветовал почаще делать то, чего я боюсь — почти как в фильме «Всегда говори „Да“!» Постепенно это входит в привычку, в итоге не бывает
Путь тестировщика
В тестировании ни в коем случае нельзя полагаться на теорию. Она важна, но мало что дает без дополнения практикой. Поэтому самое главное — эксперименты! Исследовать себя, чтобы понять, чем больше всего хочется заниматься. Опробовать методики, чтобы действительно уметь их использовать. Поработать в разных компаниях и проектах, чтобы понять, какие окружения в работе больше «Не верь — проверь!» — девиз тестировщика, и в карьере это так же важно, как и в тестировании.
В тестирование достаточно легко попасть, поэтому многие начинают свой карьерный путь в ИТ именно с работы в роли тестировщика. Многие уходят, понимая, что это «не моё». К сожалению, некоторые остаются, работая без перфекционизма и блеска в глазах. Те же, кто находит в тестировании себя, обычно развиваются очень быстро. В первую очередь это «горизонтальная» линия
Хороших специалистов в тестировании очень мало, а истинных
джедаев-профи ещё меньше.
Поэтому, крупные компании, ориентированные на качество своих продуктов, всегда гибко подходят к зарплатной политике и могут предложить такому сотруднику очень хорошие условия, которые, помимо прочего, зачастую подразумевают свободный график работы, обучение на рабочем месте и высокий уровень свободы действий.
Вторая перспектива развития специалистов в тестировании — вертикальная, подразумевающая управление проектами по тестированию и, соответственно, командами тестировщиков. В этом случае, помимо высокой методологической подготовки, требуются знания управления персоналом, ведь команда — самое главное, что есть у руководителя!
Также, тестирование можно рассматривать как «взлётную площадку»:
От компании зависит очень многое: не рекомендую в начале карьеры формировать своё мнение обо всей отрасли по первому опыту. Многое зависит от уровня зрелости процессов, многое от приоритетов — есть компании, нацеленные на выпуск качественных продуктов, а другие готовы выпустить чего угодно, лишь бы вовремя. В разных компаниях и продукты, и задачи, и атмосфера разная, классифицировать сложно, важно искать то, что по душе. Один мой бывший коллега поменял за пару лет, наверное, мест десять работы, и для HR’ов казался «летуном». А года два назад он устроился в крохотную компанию, занимающуюся
Что касается заинтересованности в наших специалистах за рубежом — это, к сожалению, не про тестирование.
В то время, как русские разработчики хорошо ценятся по всему миру, тестирование явно отстаёт: бывают иногда вакансии с релокацией, рассчитанные на обучение, но их очень мало.
Зато некоторые русские глобализованные компании предлагают перспективы работы в других странах: к примеру, россиийский NetCracker помогает своим сотрудникам с переездом в страны внедрения проектов, а это Австралия, Германия, Канада и другие.
Напутствие начинающим
Не бойтесь неудач! Мне часто было сложно, иногда
Куда копать?
Тестировщикам, в первую очередь, необходим опыт. Локализация и заведение ошибок, генерация тестов на лету, «понимание» продукта — это непросто и изучить по книжкам невозможно! Но методологическая подготовка тоже необходима, для её получения помогут чтение книг и развивающихся в последнее время блогов по тестированию.
Из русскоязычных книг я могу посоветовать только уже упоминавшегося Сэма Канера, хотя, к сожалению, эта книга порядком устарела. Тем же, кто готов читать на английском, можно посоветовать более современную книгу Рона Пэттона, которая является очень хорошим введением в мир тестирования ПО. И, конечно, тестировщикам очень важно общаться, и для этого становится всё больше возможностей: форум тестировщиков, регулярные конференции SQADays и региональные тестерские сообщества.
Изучение
Что касается автоматизации, то здесь в качестве необходимых навыков выступает как методология, хорошо описанная в посвящённой автоматизированному тестированию книге, так и знание инструментов и языков программирования.
Выбор инструментов огромный: IBM (Rational), Segue Silk Test, HP QTP, Test Complete, Selenium — лишь основные из них.
При этом, будет большой ошибкой освоить
Наконец,
Эти знания не живут в виде теории — любая прочитанная книга, любой пройденный тренинг должны быть апробированы в реальных условиях, чтобы их можно было использовать действительно эффективно.
Я приведу некий минимальный набор литературы, которую, на мой взгляд, должен прочитать любой уважающий себя