Практика большинства QA-курсов выхолощена и проходит в стерильных, отдаленных от реальных условиях. Бесконечным потокам студентам дают тестировать один и тот же функционал одного и того же сайта. Никакого погружение в требования, необходимости понять, это глюк стейджинга или реальная бага, взаимодействия с командой и представителем заказчика. Как правило, и никакого полноценного тестирования трехзвенки.
Я в тестировании уже третье десятилетие. Примерно столько же лет я смотрю на обучение новых тестировщиков сразу с обеих сторон баррикад - и со стороны работодателей, и со стороны обучающих центров.
Прекрасно помню времена, когда я тестировала код Ады Лавлейс, когда курсов тестировщика не существовало в принципе (курс Портнова - не в счет) и это была тихая профессия для своих. С тех пор многое изменилось. Но не изменилась главная проблема для новичков. В любой профессии при старте карьеры есть синдром "трудоустраиваем только с опытом, а чтобы получить опыт, нужно трудоусториться". Но для айтишных специальностей это тем более значимо - прослушавший голую теорию новичок иногда так же бесполезен, как не слушавший вообще ничего.
Нормальную же послекурсовую интернатуру организовать сложно. В отдельных случаях - невозможно. На какой реальный проект можно устроить поток из 100 и более студентов?
Поэтому стоны нынешних трейни, что "никуда не берут из-за политической ситуации" не очень обоснованы. Всё, на что способен выпускник с вышеуказанным объемом практики - это бесконечный регресс. Кстати, этим же он обычно занимается, даже если попадет в какую-нибудь компанию на стажировку. Ведь то, что массовые курсы рано или поздно перезаполнят рынок людьми с такой "квалификацией", было лишь вопросом времени.
Но давайте расскажу из первых рук про то, что представляет из себя нормальная послекурсовая интернатура, когда ее все-таки организовывают.
Если вам удобнее смотреть/слушать, весь текст статьи представлен в этих русскоязычных (часть 1, часть 2) и англоязычных (часть 1, часть 2) видео.
Подготовка к невозможному
Заказчика находим примерно за два месяца до старта интернатуры в очередной студенческой группе. Это обычно небольшие компании. Еще нет своего отдела тестирования, но продукт уже в высокой степени готовности, и они начинают задумываться над его качеством. Да, Quality Assurance должен начинаться еще до написания первой строчки кода, но не будем о том, как обычно обстоят дела с тестированием в стартапах до третьего раунда.
Итак, им нужны тестировщики, а студентам - практика. Договариваемся с ними на берегу обо всех условиях. Обычно это краткосрочный проект, в пределах 2-3 месяцев. С точки зрения компании этого достаточно, чтобы задать стандарты качества и пофиксать первый миллион багов. С точки зрения студента, двух-трех месяцев более чем достаточно, чтобы вылезти из гнезда, встать на крыло и записать в резюме эти летные испытания в качестве первого опыта.
Также обязательно договариваемся с компанией о том, что конкретно интересно им, что они хотят получить в результате от проекта. Просто какой-то набор багов, описанные кейс-тесты или какие-то другие артефакты по качеству продукта. В ответ мы тоже выдвигаем перечень условий – например, продукт должен быть обязательно в активной разработке.
Договариваемся о доступах для студентов, потому что это очень болезненный вопрос для многих компаний. О том, какие это будут доступы - доступ для каждого студента отдельно или какая-то общая учетка для всех студентов. А если общая учетка, то как студенты будут персонализировать свои баги, где они будут вписывать свое имя. О том, будут ли они подписывать NDA. И так далее.
В конце концов, договариваемся о том, что в такую дату всё это начнется.
Старый лид, молодой лид
С нашей стороны обычно команда состоит из 6-8 студентов и крутого лида со стороны курса с опытом от 20 лет. Лид топовой квалификации - гарантия для заказчика, что всё мероприятие действительно причинит принимающей компании пользу, а не съест и без того ограниченные ресурсы команды на необходимость с утра до вечера отвечать на тупые вопросы.
Итак, лид от курса имеет опыт в отрасли от 20+ лет и, естественно, опыт руководства командами. Лид планирует, организовывает, коммуницирует, мотивирует и контролирует. Он распределяет задачи, контролирует их выполнение. Он подсказывает студентам в случае каких-то непонятных моментов. Он проверяет тест-кейсы. Он ревьюит дефекты. Он общается с заказчиком и предотвращает проблемы в случае недоработок команды или непонятных моментов со стороны заказчика. То есть выполняет обычные обязанности лида.
Но это не единственный лид на проекте. В команде студентов присутствует и собственный лид. Как сказал один из заказчиков, староста группы.
Кто это лид от студентов? Во-первых, это человек, который обычно лучше всех занимался на самом курсе. Потому что, если у человека были одни «четверки», то лидом ему стать не получится. Во-вторых, это человек, чьи управленческие задатки позволяют ему руководить командой - ведь психотипы бывают разные, и кому-то руководство абсолютно не интересно, он хочет горизонтального роста, он хочет больше получать технических знаний и при этом не стремится кем-то руководить. А кто-то наоборот – в будущем видит себя сначала лидом команды, потом менеджером, потом - выше. Таким людям интересно попробовать свои силы уже на интернатуре. И мы даем им такую возможность.
Лид от студентов в конце первого месяца начинает потихонечку принимать дела у "старого лида", лида от курса, и последний месяц интернатуры начинает лидить уже сам. Лид от курса не самоустраняется при этом, он остается в роли консультанта, он отвечает на вопросы. Но теперь он коммуницирует уже с лидом от студентов. А лид от студентов теперь делает основное: контролирует выполнение задач, ревьюит тест-кейсы, ревьюит дефекты и общается с заказчиком. И, конечно, в случае затруднений, обращается к лиду от курса.
Таким образом, на интернатуре выигрывает и заказчик, потому что он фактически получает работоспособный отдел тестирования, и выигрывают студенты, потому что они получают практику. И не просто практику, а возможность стать лидом и попробовать свои силы.
Как идет интернатура
Тем, кто уже работает в IT, эту главу можно пропустить - речь про типовой Agile-процесс тестирования.
Принципиальный момент интернатуры - мы всегда работаем по Agile. Мы хотим подготовить студентов к реальной жизни, а в реальности больше 80% компаний сейчас на рынке работают именно по какой-то Agile-методологии.
Чем занимаются студенты? Очевидно, работой тестировщика. Студенты анализируют требования заказчика. Либо, если таких требований нет, что бывает нередко, разбираются с приложением путем исследовательского тестирования, и требования пишут сами. Дальше обязательно идет работа с тестовой документацией. То есть тест-кейсы с разделением на виды: smoke-тестирование, regression-тестирование, и так далее. После написания тестовой документации студенты проводят несколько раундов тестирования, и те дефекты, которые обнаружили, записывают уже в багтрекинговую систему заказчика.
После ревью этих дефектов лидом дефекты поступают к заказчику, и заказчик работает с ними так, как принято работать в Agile. То есть какие-то критические дефекты берет в очередной спринт, чтобы их оперативно пофиксать, какие-то дефекты откладывает на следующие спринты.
Организационно мы встраиваемся в процесс заказчика, но при этом, конечно, у нас есть собственные мероприятия. Во-первых, ежедневные Daily Stand-up, на которых студенты обсуждают, что они сделали вчера, что они будут делать сегодня, есть ли у них какие-то проблемы, нужна ли какая-то помощь. Одна такая встреча длится обычно 15-20 минут и проходит с утра, перед началом рабочего дня. Мы не требуем от всех студентов фулл-тайм загрузки на интернатуре. Есть и те, кто могут уделять ей всего несколько часов в день. Но присутствие на Daily Stand-up обязательное.
Кроме того, есть и другие регулярные встречи, как того требует Agile. В первую очередь, это, конечно же, обязательное планирование спринта. Спринты у нас длятся две недели, если только заказчик не пожелал иного. И в спринт мы изначально берем те задачи, которые к концу спринта обязуемся сделать. Соответственно, эти задачи берутся из бэклога и разбираются в начале спринта на Grooming Planning. Анализируем, обсуждаем, оцениваем время на выполнение.
В конце спринта или в самом начале следующего проводим ретроспективу. Смотрим ретроспективно на прошедший спринт и определяем, что в этом спринте было хорошего, что было не очень хорошо, а если что-то было не очень хорошо, то что мы должны сделать, чтобы это нехорошо больше не повторялось. Соответственно, следующая ретроспектива начинается с того, что мы возвращаемся к проблемам предыдущего спринта, и определяем, смогли ли мы это исправить в этом спринте или нет, а если нет, то что мы еще можем попробовать сделать.
Конечно же, Agile предполагает постоянное общение с заказчиком. Заказчик должен быть на связи – это одно из условий нашего прихода к нему на интернатуру. И с заказчиком можно коммуницировать, можно и нужно задавать ему вопросы. На второй месяц необязательно коммуницировать только через лида – если заказчик дал добро, то можно писать вопросы напрямую владельцу продукта или разработчикам.
Как результат, фактически студенты выполняют работу тестировщиков на реальном проекте и учатся, что немаловажно, коммуницировать еще и с командой – программистами, заказчиком и друг с другом.
Этот опыт студенты могут и должны включить в свое резюме. Иногда это даже несколько мест работы, так как студенты из нескольких наших интернатур имеют возможность поработать сначала на одном, а потом другом проекте.
Про конкретные проекты дальше и поговорим.
Проект #1 - Тестируем деньги
В 2022-м году мы проводили три интернатуры. Две из них проходили сразу на двух проектах разных компаний.
Первый проект – это проект для международного заказчика, сервис для финансовых профессионалов. Он предоставляет возможность не только проводить операции, но и предлагает обучение и тренажеры. Физически это веб-сайт, трехзвенное приложение с бэком и базой данных. Это открытый веб-сайт, на котором все желающие могут проверить свои знания и получить новые.
Проект готовился к следующему раунду финансирования, и для этого нужно было показать инвесторам работоспособный продукт. Соответственно, заказчик и обратился к нам, чтобы в рамках краткосрочного контракта получить команду тестирования.
Заказчик предоставил доступ к сайту – как к тестовой среде, так и к продакшн. Сначала сайт тестировался на тестовой среде, а финальное тестирование было уже на проде. На проде, конечно, некоторые функции были урезаны, поэтому полное тестирование провести было невозможно. В общем, абсолютно типовая ситуация в реальной жизни.
Студенты проводили исследовательское тестирование данного продукта, организовывая техтолки, чтобы вся команда была в курсе того, как весь продукт работает. До нас тестирование сайта не проводилось, соответственно, никакой тестовой документации не существовало. Поэтому команда писала тестовую документацию с нуля.
Потом по тестовой документации, то есть по тест-кейсам, было проведено несколько раундов тестирования. Первый раунд тестирования, естественно, выявляет дефекты. Дальше происходит их фикс и затем - следующие раунды для проверки фикса дефектов и регрессии после фикса.
Проблемы
Конечно же, полностью идеальных интернатур не бывает. И, как и на любом проекте, на этом тоже возникали проблемы, которые пришлось решать. В частности, студентам не сразу были выданы доступы к бэкенду и базе данных. Локализация багов в трехзвенных приложениях обязательно нужна для адекватного тестирования и на курсе мы подробно обучаем тому как это нужно делать. Из-за проблемы с доступом какое-то время пришлось тестировать только с UI и баги не удавалось адекватно локализовать.
Пришлось с заказчиком решать эту проблему отдельно, но все закончилось хорошо - доступы в бэкенд и базы были в конце концов выданы и студенты смогли локализовать баги уже на профессиональном уровне.
Достижения
Выше я рассказала о том, кто такой лид от курса. На этой интернатуре лидом от курса был человек с опытом больше 20 лет в тестировании, работавший в таких компаниях как Borland, Oracle. И с огромным опытом не только как лида команды, но и как менеджера, архитектора и других высоких должностях в QA.
Лидом от студентов была прекрасная девушка Надежда, которая по своим профессиональным и личным качествам отлично вписалась в эту должность. С последнего месяца интернатуры лид от курса выполнял только роль консультанта, а Надежда организовывала и проводила встречи, ревьюила документацию, осуществляла выдачу задач и контроль над их выполнением, то есть фактически была лидом. Очевидно, что ей это очень сильно помогло - потому что Надежда нашла работу еще до окончания интернатуры.
Другие студенты тоже получили неоценимый опыт.
Заказчик же получил результаты в виде, во-первых, самих дефектов, во вторых – тестовой документации, и, в-третьих – отчетов по тестированию. По этим результатам заказчик принимал решение о том, как эти дефекты исправлять и как вообще в дальнейшем действовать. Подготовленная тестоваая документация поможет, если по результату заказчик наберет в себе штат QA-специалистов.
В рамках этой интернатуры, а также следующей, с другой группой студентов, количество выявленных дефектов в сумме оказалось выше способностей разработчиков, поэтому заказчик получил большую пищу для размышления и задел на будущее.
А мы пошли работать на другого заказчика.
Проект #2 - Тестируем окна
Второй заказчик – это промышенное производство ПВХ-окон. Предприятие разрабатывало собственный софт для проектирования окон. Тестирования у них не было, если не считать тестирование от собственных технологов. Технологи знают все про производства окон, но при этом не разбираются в том, как все правильно протестировать софт. Поэтому они тоже обратились к нам и попросили команду, чтобы адекватно это все организовать.
Этот проект оказался для студентов сложнее, потому что выяснилось, что разобраться в финансовых операциях проще, чем в технологии производства окон. Из-за этого на исследовательское тестирование потратили больше времени, чем на изучение первого проекта. Но для них это тоже был очень хороший опыт - потому что хороший тестировщик уметь погружаться в новую предметную область достаточно быстро.
Здесь тоже начали с написания тестовой документации. Все шаги, которые до этого проверяли технологи, были фактически только у них в голове. Поэтому к ним пришли студенты и начали задавать множество вопросов и заносить это все в тестовую документацию.
Также внутри команды были проведены техтохи - чтобы все участники начали быстро разбираться в тестируемом продукте. Далее был проведен цикл тестирования.
Лидами на втором проекте первой интернатуры были те же самые лица. Со стороны курса - лид с опытом 20+ лет и Надежда - со стороны студентов. Все ребята справились, все молодцы. И все, кто хотел найти работу, ее уже нашли.
Следующая группа студентов (интернатура №2) у нас проходила на тех же проектах, что и первая, то есть для профессионалов в области финансов и на производстве окон. Если мы говорим про первый проект, то все проблемы были решены уже с первой интернатурой, поэтому второй интернатуре оставалось писать тестовую документацию, участвовать во встречах и тестировать.
Проблемы
Некоторые проблемы возникли на втором проекте второй интернатуры. Между первой и второй интернатурами была пауза, во время которой был перенастроен staging. И настроен он был в этот раз не очень хорошо, поэтому проблемы с конфигурацией порождали проблему с локализацией дефектов. То есть студент находит какой-то дефект, но не может при этом понять – это дефект действительно приложения или это дефект конфигурации staging. Для того чтобы это выяснить, каждый раз приходилось дергать программиста, разбираться с этим, поэтому и написание, и локализация дефектов были затруднены. Но во второй половине интернатуры это удалось решить.
С другой стороны, разбираться с приложением второй группе было немножко проще, чем первой, потому что первая интернатура оставила второй в наследство и записанные видео о том, как работает система, и тестовую документацию, которую вторая интернатура могла посмотреть, почитать и применить уже к проекту.
Достижения
Лида от студентов на второй интернатуре зовут Наталья. Она не только прекрасно училась на курсе, сдала экзамен на «пятерку», но и, как выяснилось, способна действительно отлично руководить командой. Она прекрасно ведет встречи. Она очень спокойная. Она всегда докапывается до сути любого вопроса. И она в то же время способна и коммуницировать с заказчиком даже в случае возникающих сложностей. В частности, она добилась того, чтобы staging был в конце концов настроен правильно. И лид от курса (в данном случае я) уже принципиально в этом не участвовала, а только наблюдала со стороны и давала Наталье советы что как правильно организовать.
Так что Наталья у нас молодец. Мы с Натальей вместе составили резюме, в котором написали, что она была лидом – я надеюсь, что это ей поможет. Наталья как раз сейчас начинает искать работу. Если вы читаете этот текст и вам нужен действительно хороший специалист – пишите мне в ЛС, я дам ее координаты.
Вторая интернатура завершается в данный момент. И сейчас идет работа над формированием окончательного отчета и окончательного списка дефектов для заказчика.
Заказчик по результатам обеих интернатур получил более совершенное приложение для производства окон, и, надеюсь, что это принесет им ощутимую прибыль, потому что теперь окон можно производить больше, а недочетом при их изготовлении будет меньше.
Проект #3 - Тестируем американское здоровье
Данная интернатура проходит на английском языке, потому что соответствующая группа курс проходила на нем же.
Это проект для калифорнийского MedTech заказчика в B2B-сегменте. Проект интересный и сам по себе и технически - в частности из-за широкого использования микросервисной архитектуры. Больше о нем ничего сказать не могу, потому что как я, так и все наши студенты, подписали NDA.
Начали мы с того, что студенты провели исследовательское тестирование в приложении. И тоже, как первых двух интернатурах, устроили техтолк примерно на полтора часа для своих коллег, чтобы все немножечко разбирались в том, как работает приложение со всех точек зрения.
После чего начали активно тестировать само приложение. У нас есть несколько задач на тестирование, которые были завершены в предыдущем спринте девелоперами. Согласно Agile, наши студенты могут сами брать таски в тестирование, которое находится в статусе QA на Agile-доске. И в данный момент четверть студентов работают над тасками, а остальные - над разработкой smoke and regression-suite, для того чтобы иметь возможность не только проверять новую функциональность, но и проводить регрессию.
Как и в предыдущих двух проектах – мы первая команда тестирования. И мы фактически занимаемся не только непосредственно тестированием, но и налаживанием процесса тестирования в команде. Соответственно, мы «с нуля» пишем тестовую документацию. Мы покрываем кейсами не только новую функциональность, но и делаем regression-suite. Вот буквально сегодня у нас ребята проводят smoke-тестирование в новой версии приложения, потому что новая версия изменилась очень сильно, и без smoke-тестирования, даже в случае нормальной работы новой функциональности, мы не можем позволить ей выходить в релиз. А релиз будет буквально сегодня вечером. В планах покрыть тестовой документацией все приложение к концу интернатуры и протестировать всю новую функциональность.
Наши ребята имеют доступ не только к UI, но и к бэку, и к базе. Мы учли опыт предыдущих интернатур и проверили еще до старта интернатуры, что все доступы есть и работают. В ходе тестирования студенты иногда общаются даже с CTO, который подсказывает им какие-то неясные вопросы по глобальным моментам.
Проблемы и достижения
У ребят горят глаза. Ребята счастливы, по крайней мере пока что. И я надеюсь, что мы так весело и с огоньком мы будем и дальше в этой интернатуре работать.
Лидом со стороны курс на этой интернатуре тоже являюсь я. А вот лид с команды студентов пока еще не определен, потому что начали мы не так давно, и наша основная задача – это встроиться в процесс разработки, организовать процесс тестирования и быстренько сделать regression-suite и протестировать вот эту новую функциональность. Так что к выделению лида мы где-то через пару неделек вернемся. И тогда уже кто-то из наших прекрасных студентов будет не только тестировать, но и руководить командой.
Все три проекта интернатуры разные и на каждом из них в какой-то момент возникали те или иные проблемы. И хочется верить, что когда мы успокаиваем студентов "именно вот такие проблемы постоянно и происходят на реальных проектах" это подсознательно не побуждает нас специально устраивать форс-мажоры на следующих интернатурах. :)
Итого
В этом месте должен был быть мем "сиба-ину Доге после идеальной QA-интернатуры и Чимс после просмотра видеоуровов про тестирование".
Бесполезно растекаться по древу о том, кому легче будет найти работу. Выпускнику, который уже побывал в огне, искупался в воде и немного поиграл на медных трубах. Или тому, кто про них только слышал.
Если в непредвиденной ситуации кому-то потребуется неотложное хирургическое вмешательство и рядом окажутся двое, один из которых "резал пять человек под наздором профессора, но один, правда, умер" и второй, который "на пятерку прошел курс по хирургии по видеолекциям", то выбор будет очевидным.
Перед началом обучения на QA обязательно думайте о том, где как и когда вы получите практику.
Это важно.