Разделы портала

Онлайн-тренинги

.
Готовим тестировщика: кого, зачем, как
17.08.2011 09:42

Обычно мы публикуем материалы конференций после завершения. Но накануне десятой юбилейной конференции SQA Days, которая состоится 2-3 декабря в Москве, мы решили нарушить эту традицию и начать публиковать некоторые материалы ещё до начала конференции. Можно рассматривать это как расширенные анонсы выступлений, возможность заранее заочно познакомиться с авторами и решить, будет ли вам интересно пойти на соответствующие доклады, чтобы послушать продолжение. Начинаем эту серию публикаций мы статьей Святослава Куликова про обучение тестировщиков-джуниоров на внутрикорпоративных тренингах.

Автор: Святослав Куликов.

Тестировщики нужны. Хорошо, когда их много, и все они – профессионалы с многолетним опытом. Но что делать, когда таких профессионалов не хватает?

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

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

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

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

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

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

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

  • Знание Java на уровне написания элементарных приложений.
  • Умение разрабатывать модульные тесты.
  • Умение использовать такие средства как JUnit, TestNG, JMock, HtmlUnit, Selenium RC, 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, Selenium RC, TestComplete 15% 75%

О том, как и почему получаются именно такие цифры, а также о том, как улучшить данные показатели – в докладе «Готовим тестировщика: с нуля и до… (необходимого уровня)». Приходите, нам будет о чём поговорить!

Обсудить в форуме