Готовим тестировщика: с нуля и до… (необходимого уровня)

Готовим тестировщикаТестировщики нужны. Хорошо, когда их много, и все они – профессионалы с многолетним опытом. Но что делать, когда таких профессионалов не хватает? Как в разумные сроки подготовить «молодую гвардию»? Что можно и нужно сделать? Почему иногда всё проходит гладко, а иногда – нет? Как сделать так, чтобы «иногда гладко» превратилось в «гарантированно успешно»?

Данная статья является дополнением к моему докладу на конференции SQA Days 10.

«Зачем нам все эти люди? Ведь хватает же… Или нет?»

Интенсивное развитие рынка разработки ПО и IT-услуг привело к возникновению ситуации, которой многие с опасением ожидали в последние годы: на рынке труда возникла нехватка не только высококвалифицированных специалистов, но и «новичков».

Особенно остро эта проблема отразилась на тестировании программного обеспечения, т.к. в данном направлении крайне тяжело найти людей, которые «с детства что-то понемножку делали для себя и знакомых».

Немного цифр: по информации, полученной на условиях неразглашения «названий и имён» от HR-отделов и ресурс-менеджеров нескольких крупных IT-компаний, дефицит кадров составляет от десятков до сотен специалистов по тестированию ПО. Более 2/3 этого дефицита приходится на juniorsoftwaretestingengineers (JSTE).

Поскольку вузы в силу различных причин оказываются неспособными удовлетворить имеющийся спрос на JSTE, остаётся несколько решений проблемы:

  • сотрудничество с коммерческими тренинговыми центрами – оказывается эффективным в случае необходимости быстро набрать небольшое количество сотрудников, в долгосрочной перспективе – нерентабельно;
  • сотрудничество с вузами (в контексте изменения программ обучения) – сопряжено с множеством бюрократических проблем и в чистом виде также оказывается неэффективным;
  • подготовка junior-специалистов собственными силами (в контексте сотрудничества с вузами или тренинговыми центрами) – наиболее эффективный вариант, который как даёт «мгновенный результат», так и позволяет сформировать мощную основу для длительного притока начинающих специалистов.

«Что? Зачем? Как?»

Подготовка специалистов силами собственных сотрудников является наиболее эффективной по множеству причин:

  • Гибкая и быстрая адаптация программы тренинга под текущие нужды: отсутствует необходимость согласования содержания, объёма и формы подачи материала с какими бы то ни было внешними инстанциями.
  • Автоматически реализуемая программа лояльности новых сотрудников: с первых минут слушатели тренингов погружаются в атмосферу корпоративной культуры и оказываются максимально ориентированными на продолжение работы в компании, организовавшей тренинг.
  • Ориентация слушателей на конкретные бизнес-процессы без необходимости в дальнейшем переучивать и адаптировать к используемым компанией технологиям и процессам.
  • Работа с реальными практическими примерами и реальными проектными задачами: использование реальных проектных материалов значительно улучшает информационное наполнение тренинга и позволяет дополнительно адаптировать слушателей к работе в проектной команде.
  • Минимизация непродуктивных финансовых затрат: все средства идут непосредственно на разработку и проведение тренинга, и в этом процессе нет посредников, взымающих «комиссионные» просто за факт посредничества.

Эффективность такого образовательного процесса зависит от чёткого понимания ответов на следующие вопросы:

  • Что конкретно должны знать люди, которых мы готовим? Чего будут ожидать от них ресурс-менеджеры? Каковы основные требования?
  • Кто является «конечным заказчиком» – к работе на каких проектах мы готовим людей? С какими технологиями, методологиями разработки и даже «неписанными традициями» им предстоит встретиться на работе?
  • Чему мы можем научить за время, которое можем позволить себе отвести на подготовку новых кадров? Да, хотелось бы научить «всему и сразу», но это – невозможно; а что возможно?
  • Кто должен готовить и проводить тренинги? Какими качествами должен обладать этот человек?

Чего хотят ресурс-менеджеры?

Следующий список составлен путём проведения опросов, анализа результатов собеседований и даже просто «разговоров в курилке». От «усреднённого начинающего тестировщика» ожидается:

  • Умение работать с документацией и требованиями.
  • Умение создавать тест-кейсы.
  • Умение писать баг-репорты.
  • Знание HTML/CSS, SQL, XML.
  • Знание английского и/или иных иностранных языков (как минимум – на уровне чтения и понимания технической литературы).
  • Минимальные навыки автоматизации тестирования.

Еслиречьидётоподготовкеjuniorautomatedsoftwaretestingengineer, то добавляются следующие требования:

  • Знание Javaна уровне написания элементарных приложений.
  • Умение разрабатывать модульные тесты.
  • Умение использовать такие средства как JUnit, TestNG, JMock, HtmlUnit, SeleniumRC, TestComplete.

Это – общие списки требований, которые можно конкретизировать, ответив на следующий вопрос.

Кто является конечным заказчиком кадров, к чему готовить людей?

Составление «универсальных программ обучения» перестаёт казаться заманчивым, как только появляется понимание простого факта: все проекты разные. Тут же появляется ещё один очень мощный аргумент в пользу подготовки персонала своими силами: тренер в начале курса может (должен!) опросить коллег в стиле «ребята, сколько вам нужно людей и с какими навыками?» Получив список проектов с количеством вакансий и пожеланиями к соискателям, тренер адаптирует программу тренинга.

В итоге получается двойная польза: можно подготовить «универсальныхJSTE», пригодных к работе в компании вообще, но обладающих преимуществами при собеседовании на указанные проекты.

А реальна ли такая подготовка?

Вопрос риторический. Но отбрасывать его не следует потому, что тренинги для начинающих в отличие от тренингов для специалистов, обладающих определённым опытом, носят достаточно специфический характер. Игнорирование этой специфики приводит к появлению следующих типичных ошибок.

Ошибка 1. «Ребята, я учился этому 20 лет, а у вас есть месяц. Дерзайте!»

Одной из самых распространённых ошибок при проведении тренингов для начинающих является попытка научить «всему и сразу». Специалист, долго и успешно работающий в некоторой области, видит множество взаимосвязей между различными темами и направлениями, понимание которых позволяет увидеть значительно более полную картину. Но такой специалист часто забывает, что сам шёл к этому пониманию годами. А у слушателей тренинга – несколько недель. Чрезмерное внимание множеству нюансов приводит к сильной информационной перегрузке слушателей и усложняет в разы усвоение основ, на которых в будущем будет строиться понимание специфики отдельных областей специальности.

Твёрдое усвоение необходимого минимума является более приоритетным, чем увлекательный рассказ о «вершках»множества аспектов профессии. Хотя, естественно, уместные отсылки к дополнительным тематическим источникам с пометкой «изучите – будет полезно», очень помогают.

Ошибка 2. «Вот есть классная технология…»

Вторая частая ошибка – углубление в какую-то отдельную область профессиональной деятельности. Не важно, будет ли это «искусство виртуозного тестирования локализации на японский» или «познаниеXMLкак путь к совершенству ПО». Эффективное обучение начинающих подразумевает равномерный охват всех базовых направлений развития. Приоритеты возможны (см. выше про конкретных заказчиков), но увлекаться не стоит.

Ошибка 3. «Рассмотрим определение…»

К сожалению, пережитки академического образования (которое все мы так или иначе получили) часто выражаются в строгой ориентации тренинга на теоретические аспекты рассматриваемых тем. Приводится масса определений, красивых таблиц и схем. Тренер выступает в роли классического лектора. Слушатели привычно засыпают. Да, теория необходима, но – в строго дозированном количестве и преподнесённая определённым образом, о чём будет сказано ниже.

Ошибка 4. «Практика и только практика!»

Второй крайностью, которая пришла на смену «чистой теории», является «чистая практика». «Итак, открываем BTSи пишем баг-репорты! Ну, что не ясно?» Всё. Без «краткого, но мощного» теоретического вступления получается лишь «страх и пустота в глазах слушателей». Даже если тема занятия очень живая и интересная.Если излишним уклоном в теорию часто «грешат» тренеры, пришедшие из университетов, то излишний уклон в практику наиболее типичен для тренеров, долгое время работавших на проектах.

Ошибка 5. «Поняли? Даааа, мы поняли!»

Наконец, есть ошибка, которая может погубить результаты тренинга, даже если до этого всё шло идеально: это остановка на уровне «теперь вы это знаете». Лишь тщательная проверка реального понимания и многократное закрепление через применение полученных навыков позволяет гарантировать долгосрочную эффективность тренинга.

Перечень типичных ошибок можно продолжить. Но куда более интересным является поиск универсального решения, позволяющего изначально минимизировать вероятность возникновения таких ситуаций на тренингах для начинающих.

Кто должен готовить и проводить тренинги?

О роли тренера сказано очень много, а потому в рамках данной статьи я хочу акцентировать внимание именно на тренере, проводящем тренинги для начинающих. В идеале это должен быть:

  • замотивированный лояльный компании сотрудник;
  • имеющий опыт педагогической деятельности с применением современных психологических и технических подходов и средств;
  • имеющий опыт профессиональной деятельности в рамках темы тренинга и нескольких смежных тем;
  • имеющий возможность получить быструю консультацию от сотрудников компании, задействованных в реальных проектах;
  • выражающий явное желание заниматься организацией и проведением тренингов.

Отступление от любой из приведённых рекомендаций возможно при условии понимания причин и последствий такого решения

Так чему же реально можно научить за 40-70-часовой тренинг?

Здесь хочется привести просто статистику, собранную на основе личного опыта проведения тренингов по тестированию для слушателей, не имеющих ранее опыта работы в IT-сфере или имеющих самый минимальный опыт такой работы.В таблице приведён процент слушателей, успешно усвоивших ту или иную тему за время проведения тренинга. Под «успешным усвоением» понимается такой уровень владения темой, который позволяет соискателю успешно трудоустроиться (показатели округлены до величин, на которые не влияет погрешность оценки):

Тема

Группа без предварительного отбора

Группа с предварительным отбором

JSTE

Тестирование документации и требований

35%

90%

Разработка тест-кейсов

25%

90%

Написание баг-репортов

15%

80%

HTML/CSS, SQL, XML

5%

25%

Начальные навыки автоматизации тестирования

5%

45%

JASTE

Знание Javaна уровне написания элементарных приложений

20%

65%

Умение разрабатывать модульные тесты

30%

85%

Умение использовать такие средства как JUnit, TestNG, JMock, HtmlUnit, SeleniumRC, TestComplete

15%

75%

А любого ли можно этому научить? Увы, нет.

«Кого, откуда, как… не брать»

Основные проблемы, с которыми приходится сталкиваться при формировании групп: неподготовленность, непригодность, недостаточная мотивация соискателей, желающих принять участие в тренинге.

Львиную долю нагрузки по первичному отбору кандидатов может взять на себя HR-отдел, отсеяв на первичном собеседовании совершенно случайных людей. На следующем этапе в собеседовании имеет смысл принять участие тренеру, чтобы проверить, обладает ли кандидат:

  • мотивацией к работе по специальности (многим просто «хочется в IT», хотя они слабо себе представляют, что и как смогут там делать);
  • необходимой технической подготовкой (несмотря на то, что речь идёт о тренингах для начинающих, бесполезно готовить на JSTEлюдей, впервые увидевших компьютер или остановившихся в его освоении на уровне офисных игр);
  • способностью к проявлению инициативы (нет ничего печальнее, чем предельно инертный слушатель, бездумно выполняющий строгие указания);
  • гибкостью мышления (ведь работа тестировщика подразумевает в том числе и творческий подход);
  • достаточными коммуникативными навыками и общей адекватностью для того, чтобы вписаться в команду (недостаточно взять «просто хорошего вежливого человека», нужно взять «своего человека»).

Трезвый взгляд на ситуацию приводит нас к выводу о том, что идеальных кандидатов будет не так много, как хотелось бы. И что делать с теми, кто по каким-то критериям не попал в число «идеальных»? Рискуя опуститься до ненаучности предлагаемого метода, всё же дам совет: говорить и смотреть в глаза. Если кандидат хочет (ХОЧЕТ!) на тренинг и, в дальнейшем, на работу – это, как правило, видно. И практика показывает, что такие максимально мотивированные слушатели оказываются по итогам тренинга как минимум в верхней половине рейтинговой таблицы, а иногда – и в числе лучших. В любом случае именно они являются лучшими помощниками тренера, включающими своим примером группу в работу даже тогда, когда «вечер, все устали, задание сложное и вообще хочется домой и спать».

Вопрос о том, где взять подходящих для зачисления в группу кандидатов, хочется рассмотреть в контексте небольшого статистического анализа (показатели округлены до величин, на которые не влияет погрешность оценки).

Образование

Процент успешно закончивших тренинг

Технические специальности, связанные с IT

70%

Технические специальности, не связанные с IT

60%

Специальности, связанные с точными науками

50%

Лингвистические специальности

85%

Экономические специальности

70%

Иные гуманитарные специальности

40%

Иные специальности

50%

Возможно, кого-то результаты удивили, но успешнее всегов подготовке на роль JSTE показали себя учащиеся и выпускники лингвистических специальностей, а хуже всего – студенты, чьим профилем являются точные науки. В данной статистике не приведены данные по кандидатам в разных возрастных категориях, т.к. основной контингент составляют учащиеся 3-5 курсов или недавние выпускники университетов. Впрочем, люди более зрелого возраста также показывают неплохие результаты, которые в достаточной степени коррелируют с данными, приведёнными в таблице.

«Педагогов и слабонервных просим покинуть зал»

Поскольку тренинги, о которых идёт речь в данной статье, финансируются компанией-заказчиком и являются бесплатными для слушателей, важно донести до группы одну простую мысль, состоящую из двух «не»:

  • здесь НЕ университет, и «студенческие фокусы, вошедшие в кучу анекдотов», здесь не работают;
  • здесь НЕ коммерческий тренинговый центр, где за ваши деньги вы можете позволить себе любой каприз.

Здесь – интенсивная работа. Без лени. Без капризов. Без откладывания заданий на последний момент. Без халявы. Возможно, кто-то сразу захочет уйти, и это нормально: тренер не придётся тратить силы и время на такого слушателя, что высвободит дополнительные ресурсы для работы с другими участниками тренинга.

Если же говорить о технологии работы с группой, то основные рекомендации будут такими:

  • Неформальная обстановка. У нас не исправительное учреждение, можно позволить себе свободное дружеское общение.
  • Нацеленность на результат. Что бы мы ни делали, мы делаем это не просто так, а для того, чтобы… И пояснить – для чего.
  • Снятие страхов и напряжения. Особенно при выполнении индивидуальных заданий, прохождении тестов и иных контрольных мероприятий. Спокойный и уверенный в себе слушатель при прочих равных покажет куда более адекватный реальности результат.
  • Поощрение инициативы. Если слушатель уже сейчас может что-то сделать сам, в будущем эта способность будет только развиваться. Такой сотрудник не будет примитивным исполнителем указов или вечно надоедающим «почемучкой», просящим пояснить каждую букву в тексте.
  • Подчёркивание успехов. Даже самых незначительных, и уж тем более – серьёзных. Особенно мощный эффект даёт высокая оценка из позиции «мы с тобой коллеги».
  • Поощрение сотрудничества в группе. Мы ведь готовим сотрудников для работы в команде. Они умеют так работать уже сейчас? Прекрасно!
  • Максимальное вовлечение слушателей. Дискуссия, мозговой штурм, игра в вопрос-ответ – всё это включает в работу куда лучше, чем просто «выступление тренера».

К дополнительным полезным приёмам можно отнести следующее:

  • Смена видов деятельности каждые 15 минут (иначе слушатели «засыпают»). Не обязательно устраивать бег с препятствиями, достаточно давать разнообразные задания, организовывать обсуждения, рассматривать примеры и т.п.
  • Максимум примеров. Поначалу слушателей сложно включить в полностью самостоятельную работу, но готовые примеры они рассматривают с удовольствием. И хорошо запоминают.
  • Обращение к жизненному опыту (работает безотказно!). Например, часть группы может ещё слабо представлять себе, что такое билд, но каждый способен представить себе черновик документа.
  • Создание «графической концепции» темы, постоянное обращение к ней. Если можно представить тему занятия (или серии занятий) в виде некоего графического образа (схемы, картинки и т.п.), обязательно следует воспользоваться такой возможностью: этот графический образ становится одновременно якорем и картой, что в конечном итоге резко усиливает эффект запоминания.
  • Красивые и интересные постеры по теме тренинга. И просто наклеить их на стены. Они привлекают внимание лишь несколько минут в начале тренинга, а потом – просто постоянно находятся в поле зрения. И запоминаются.

В контексте глубины усвоения материала на тренингах для начинающих имеет смысл ограничиться следующим:

  • Дать знание.
  • Проверить понимание.
  • Организовать применение изученного.

 Как дать знание.

Инструменты и способы достаточно просты:

  • Чёткие определения.
  • Примеры.
  • Графический материал.
  • Демонстрация.
  • Максимум главного и важного.

Знание (запоминание) можно проверять как непосредственно по ходу тренинга, так и через некоторое время после рассмотрения темы, используя:

  • Опросы.
  • Тесты.
  • Задания, требующие вспомнить пройденный материал.
  • Ссылки на изученное в предыдущих темах.
  • Дискуссии.

Как проверить понимание.

К сожалению, знаний как таковых недостаточно. Нужно уметь ими пользоваться, а для этого нужно понимать то, что знаешь. Понимание можно проверить, используя:

  • Дискуссии.
  • Задания на «преобразование формы» (блок-схему в словесное описание, картинку в текст и т.п.).
  • Задания на приведение примеров.
  • Задания, в которых необходимо что-то объяснить.
  • Задания на выделение главного и/или обобщение.
  • Любые виды деятельности, подразумевающие обработку информации.

Как организовать применение.

И, наконец: «понятое знание» позволяет решать практические задачи, т.е. применять изученное на практике. При организации применения очень важно соотносить сложность заданий с возможностями слушателей, а потому имеет смысл запастись самыми разнообразными заданиями, которые могут быть интересны как самым слабым, так и самым сильным слушателям в группе. Формы заданий не принципиальны: учебный проект, игра, принятие решений, конструирование и т.п.

И, конечно же, следует подготовить качественный учебный материал: интересные презентации, полноценный конспект для раздачи слушателям, тесты с интересными вопросами, вызывающие энтузиазм задания, простые и понятные видео-пособия и т.п. Конечно, на подготовку всего этого уходит много сил и времени, но мы ведь говорим о качественном обучении, не так ли?

Кстати, об обеспечении качества обучения…

«Test-driven-education«

Выше мы рассматривали типичные ошибки при подготовке начинающих тестировщиков. Одна из них заключается в недостаточном отслеживании «ложного понимания»: пока у слушателей в оперативной памяти находится та или иная тема тренинга, они могут быть искренне уверенными в том, что вполне усвоили её: всё знают, понимают, могут применять на практике. С такой иллюзией можно и нужно бороться.

Одним из самых простых способов является опрос или тест, проводимый до изучения темы. В качестве источников информации можно брать вопросы и задания, которые выдаются соискателям на собеседованиях при трудоустройстве. Да, отчасти такой подход пугает слушателей (вопросы могут казаться очень сложными), но куда более он показывает необходимость прилагать собственные усилия для усвоения материала, мотивирует на внимательное и усердное обучение.

Неоднократное повторение таких вопросов (в разных формулировках) на протяжении тренинга позволяет очень легко выявить тех, кто не хочет или не может ориентироваться в излагаемом материале.

Параллельно мы можем решать ещё одну важную задачу – максимально объективно оценивать слушателей тренинга, добиваясь того, чтобы некоторый балл означал один и тот же уровень подготовки, вне зависимости от того, кому он выставлен. Добиться этого позволяют:

  • максимально разнообразные задания, ориентированные на использование технических, гуманитарных, коммуникативных и иных навыков;
  • чётко прописанная система оценки практических и контрольных заданий – с детализированными критериями и подробными недвусмысленными инструкциями;
  • добавление в систему оценки графы «личные впечатления» (простановка этого балла в отдельной графе позволяет намного более объективно оценивать другие показатели участника тренинга).

Также следует помнить, что наша задача – создание у слушателей долговременных навыков, которые сохранятся и разовьются на рабочем месте. Как этого достичь?

Заинтересовать.

Форма подачи материала (работа тренера, презентации, задания, раздаточный материал) может быть очень и очень разной. Но одно остаётся неизменным: если слушателям интересно, если их внимание постоянно захвачено происходящим, материал усваивается легко и с удовольствием. И хочется узнавать ещё и ещё, что выливается в активную дополнительную самостоятельную работу.

Замотивировать.

Демонстрация реального применения изучаемого материала – неотъемлемый атрибут подготовки начинающих специалистов. Даже «умудрённому опытом» куда интереснее изучать что-то, что можно применить уже сегодня. Для начинающих же это почти аксиома: если от изученного нет быстрой отдачи, оно забывается. Конечно, можно много говорить о том, что «будете много знать и уметь, будете получать много денег», но это «много» наступит не сегодня (и, увы, даже не завтра). А вот сдавать лабораторную или курсовую работу, настраивать домашний компьютер, делать что-то для себя чуть более качественно можно уже сегодня.

Выстроить логически связанную программу.

Даже когда программа представляет собой очень экзотический набор блоков, продиктованный потребностью заказчика в лице ресурс-менеджеров, следует искать связь между темами, выстраивать мозаику шаг за шагом и подчёркивать по ходу тренинга, почему тот или иной кусочек этоймозаики занимает именно это место. И как при этом постепенно складывается финальная картина.

Плавно двигаться от простого к сложному.

Или от сложного к простому. Но – плавно. Резкие переходы от элементарного к сверхсложному нарушают целостность уже упомянутой картины. Образно говоря, от добычи полезных ископаемых до полётов в космос – целая эпоха, и желательно показывать все её этапы, а не только начальную и конечную точки. Иначе всё между ними будет казаться непонятной (ненужной?) магией.

Повторять в разных формах.

Тупое зазубривание – не наш метод. Определение, показанное 200 раз, остаётся 200 раз показанным определением. В то же время разные формы представления (текст, схема, картинка, видеоролик, алгоритм, практическое задание и т.п.) и разные контексты позволяют показать предмет изучения с разных сторон и воздействовать на все каналы восприятия.

«Отделяем агнцев от… перспективных специалистов»

Итак, тренинг успешно завершён. Проделано очень много работы, и вся она сделана хорошо. Но результат зависит не только от тренера: начальный уровень и личный вклад слушателя также играют важную роль. В итоге у нас есть группа людей, из которых следует выбрать представителей как минимум двух категорий: тех, кого можно сразу включать в проектные команды, и тех, кого можно будет туда включить, немного подготовив дополнительно. С остальными, увы, придётся расстаться.

Берём всех? Нет. Даже если очень нужны люди, всегда должна быть некая «планка», ниже которой опускаться при отборе кандидатов нельзя. Даже если перед нами «очень добрый, человек, которого очень жалко». Куда более жалко будет потом его коллег, если им придётся делать работу и за себя, и за него. Столь же важно гарантированно отсеять на данном этапе (если это не было сделано ранее) тех соискателей, которые в совершенстве владеют искусством имитации бурной деятельности при практически полном отсутствии способности приносить реальную пользу.

С другой стороны – не следует отметать кандидата, если он не ответил на пару заковыристых вопросов: мы берём на работу начинающего специалиста, а не магистра всех цветов магии.

Из всего многообразия вариантов итогового собеседования наилучший результат показывает совместная работа тренера, проводившего тренинг, и ресурс-менеджеров, высказавших свои пожелания по подготовке данной конкретной группы. Оценки, выставленные соискателю каждым из интервьюеров, могут сильно отличаться, и это хорошо. Обычно, по лучшим и худшим представителям группы мнение совпадает, а остальные получают шанс попасть к тому менеджеру, который заинтересован именно в них.

Таких соискателей набралось достаточно? Прекрасно! Подготовка начинающих тестировщиков прошла успешно!