30.12.2016 Свои люди

Интервью: Никита Макаров

Сегодня, в канун Нового года, у нас в гостях — Никита Макаров, руководитель отдела тестирования в «Одноклассники.ру»: «В последнее время больше руковожу, чем пишу код. Хотя регулярно тянет “взять шашку в руки “ и “тряхнуть стариной”.

Как тебе пришла идея стать тестировщиком? Это была случайность или ты намеренно искал подобной профессии?
С одной стороны, она никогда и не приходила, но с другой — не могла не прийти. Мои родители были связаны с обеспечением качества — отец занимался приемкой военных автомобилей, а мама работала в ОТК на заводе, где делали бронетехнику. Но у меня цели как таковой никогда не было. Я пришел в IT в качестве разработчика-джуниора в аутсорсинг и спустя год мне предложили попробовать себя в тестировании на довольно сложном проекте, где работать приходилось больше “через код”, чем “руками”. Было это в 2007 году, в Ауриге. Проект мы делали для большой компании, которая делала самолетное ПО, и именно там я понял, что тестирование может быть намного сложнее и интереснее, чем “пялиться в Excel и кликать мышкой”. Потом был разный опыт в тестировании. Какие-то проекты были более, а какие-то — менее интересными. А с 2009 года я стал всецело заниматься автоматизацией тестирования.
559902_604128509602028_1431204902_nРасскажи вкратце что такое “автоматизированное тестирование”? Ликбез на тему “что это, и с чем его едят”.
Автоматизированное тестирование — это процесс верификации одного программного обеспечения с помощью другого программного обеспечения. Мы пытаемся проверить одну программу, написав другую, точнее множество других — автоматических тестов. Из этого, собственно, вытекает вся его суть: автоматизация тестирования — прикладная дисциплина, теория которой относится в большей степени к тестированию, а практика — к разработке программного обеспечения. Существовала она в том или ином виде, наверное, с тех пор как существует сама разработка ПО, но расцвела в тот момент, когда стоимость привлечения каждого следующего человека стала выше, чем стоимость покупки еще одной “железки”, то есть не так давно.

У кого ты учился премудростям как ручного, так и автоматизированного тестирования? Были ли какие-то наставники, литература?
Михаил Павлов (он переводил книгу Рэкса Блэка на русский) был моим наставником в Ауриге, и про тестирование я узнал от него. Автоматизированным тестированием я стал заниматься там же, в Ауриге, на проекте под руководством Славы Ванюлина и Дмитрия Дорофеева. А вот уже полностью в него погрузился, когда мы с Дмитрием Сидоренко пилили проект вдвоем и никаких тестировщиков нам не полагалось. И запилили же! Наставники были, и все они были инженерами и менеджерами очень высокого уровня. А вот с литературой — швах. Книги в нашей отрасли устаревают быстрее, чем их выпускают в тираж. Это, правда, не означает, что их не нужно читать, но видеть в них единственный или даже фундаментальный источник знаний — не получается. Из интересных могу вспомнить только довольно небольшую книгу Linda Hayes Automated Testing Handbook.

С Романом Ивлиевым (слева) и Дмитрием Сидоренко (справа)
С Романом Ивлиевым (слева) и Дмитрием Сидоренко (справа)

Как ты попал в «Одноклассники»? Сложно ли было выстраивать отдел автоматизированного тестирования “с нуля”?
Три буквы в резюме иногда определяют то, чем вы будете заниматься следующие 5 лет — без шуток. Меня нашел Антон Федчин — новый, на момент 2011 года, технический директор «Одноклассников». Он нашел меня в “Моем круге” по трем буквам технологии, которую мы использовали в Ауриге и которая сейчас используется в «Одноклассниках». Встретились, поговорили, и Антон предложил поднимать автоматизацию тестирования в ОК. К этому моменту у меня уже был суровый опыт поднятия автоматизации тестирования в ИнфоТеКС, заниматься меньшим уже не хотелось.
Сложно ли было выстраивать с нуля ? Это никогда не просто, но тем и интересно.

Учитывая самостоятельность проведения тестов машиной, сколько человек требуется, чтобы разрабатывать автомат.сценарии/тестировать такую крупную сеть, как «Одноклассники»?
Около 30. У нас тестировщики и автотесты пишут, и руками проверяют. И разработчиков к этому уже привлекать начали.
14753366_1315984685088133_5314803839890247554_oНасколько эффективна автоматизация тестирования проекта целиком? Приходится ли добавлять ручное тестирование?
Без этого никак. Автоматизация мобильных приложений сдвинулась с мертвой точки, но до вэба и десктопа инструментам еще далеко, поэтому доля ручного труда будет высокой. По моим прогнозам — еще лет пять, если с отраслью ничего не случится. Кроме того, мы живем в эпоху пользовательских приложений — OK, VK, Instagram, Twitter, Facebook — все они ориентированы на миллионные аудитории, и User Experience здесь становится на первое место. (Это в корпоративных системах 10-15 лет назад можно было сделать отвратительный интерфейс, отдать это заказчику и он бы заставил своих сотрудников пользоваться этим.) Тестировать UX автоматически, по крайней мере — пока, не получается, поэтому люди будут нужны — не все понимают, что сам по себе UI — это ключевая фича.

Насколько эффективна полная автоматизация тестирования проекта? Пожалуй, не эффективна вовсе. Это как раз вопрос выбора стратегии, управления качеством и стоимостью.

Какие типичные ошибки допускаются при автоматизированном тестировании?
Все 🙂 Серьезно, абсолютно все. Весь вопрос в том, какие из них непоправимы. На мой взгляд, самая тяжелая в исправлении ошибка — это ситуация, в которой автоматические тесты рассматриваются командой как некий отдельный артефакт и уделяется им время по остаточному принципу. На практике выглядит обычно так: выкатили код, упали автотесты. Реакция команды или отдельного разработчика: ок, будет время — поправлю, сейчас надо делать таски дальше.

Если не секрет, какими средствами/инструментами ты пользуешься при автоматизации?
Всегда стараюсь пользоваться головой. Когда не справляется голова — ручка и бумага. Если не справились они — whiteboard, маркеры и головы коллег. Это если про средства. Инструменты разные, но обычно без экзотики — Java, JUnit, Jenkins и много других. Для организации работы — MaxDone, порисовать майндмапы — Xmind/MindMap. Jira, конечно.
13161952_1750945695121000_9092589737061100316_oКак тесно разработчики и тестировщики взаимодействуют? Бывают моменты конфликта из-за кода?
У нас — очень тесно. Пару раз видел как тестировщик водил разработчика по его же (разработчика) коду и показывал где там баг :). Вообще, спаривание разработчика и тестировщика для продуктовых компаний становится нормой. Конфликты из-за кода бывают редко. Если только разработчик что-то куда вкоммитил и не сказал об этом тестировщику, а скоуп проверки для тестировщика при этом не очевиден.

Каким ты видишь будущее тестирования?
Нелегкое это дело — предсказывать, особенно будущее (с) Йогги Берра.
Тестирование меняется, но никто до конца не понял в какую сторону. Почти все и всюду хотят автоматизировать тестирование, но не столько потому, что это модно, сколько по причине простоты масштабирования кода по сравнению с масштабированием людей.
Мир изменился в сторону распределенных систем — они уже вошли в нашу жизнь и никуда не уйдут, с этим придется учиться жить. Ну и значимость ПО в жизни людей будет расти. Уже сейчас все обеспокоены тем, что софт есть в каждом утюге, и обществу хочется каких-то стандартов тестирования. Проблемы безопасности софта стали выходить на первый план, например.
12002848_1157597784255095_1504600368388847824_nВ данный момент ты являешься руководителем отдела тестирования «Одноклассников». Какая у тебя следующая ступень?
Миллиардер, наверное 🙂 Если без шуток, то, наверное, технический директор, рассматривая управленческое направление развития. Если же взглянуть техническое направление,  то тут можно называться как угодно, важно лишь, прет ли тебя то, чем ты занимаешься.

Как ты считаешь, ты превратил работу в жизнь или жизнь в работу? Каков твой распорядок дня?
Скорее, увлечение превратил в работу, жизнь — точно нет. Распорядок дня примерно такой: подъем около 7, стакан воды, 3 минуты спорта, в дороге на работу — читать статьи, книги, смотреть видео с конференций, писать свой код, с 10 до 18 — офис, иногда дольше, но двое детей учат управлению временем круче любого тренера. По дороге домой — опять же читать, смотреть. Один день в неделю стараюсь не открывать компьютер вовсе.