Обучаться тестированию, обучая других |
18.09.2017 00:00 |
Автор: Виктор Славчев (Victor Slavchev) Оригинал статьи: http://mrslavchev.com/2017/08/28/learning-testing-teaching-others-one-year-lessons/ Перевод: Ольга Алифанова Я искренне убежден, что лучший способ научиться чему-то – это попытаться научить этому кого-то другого, даже если вы рискуете в результате выглядеть идиотом. Поэтому я начал вести обучающий раздел в моем блоге, и так и родилась моя страсть к преподаванию. Я занимаюсь этим уже год, с тех пор, как я начал преподавать тестирование в местной академии (Pragmatic). Это был отличный год, и я уверен, что впереди меня ждут еще более удивительные вещи. В течение этого года я осознал множество вещей, о которых раньше и не задумывался. Поэтому я решил поделиться своими наблюдениями: некоторые из них – чисто методические вещи, относящиеся к преподаванию тестирования, а некоторые относятся к моему восприятию профессии как таковой. Добавлю контекст вопроса: обычно я читаю лекции на такие темы, как:
Обычно я преподаю группам в 25-30 человек, взрослым людям, изредка – студентам или выпускникам университетов. В норме они хотят перейти в тестирование из другой области, или работают джуниор-тестировщиками и хотят получить базовое понимание профессии. Изредка попадаются и сениор-тестировщики, иногда с опытом, превышающим лично мой. Итак, вот чему я научился за этот год. Учить тестированию тяжелее, чем кажется Кажется, что преподавать легко – подготовь уроки, слайды, дополнительные материалы, а затем просто говори, говори, говори, повторяй все снова и снова, пока не упадешь. Нет, это так не работает! Я изначально это знал, так как преподавал в школе, пока учился в университете. Но за прошедший год я столкнулся с новыми интересными трудностями. Ваших материалов всегда недостаточно В моем случае не было, наверное, даже трех одинаковых лекций, которые я бы читал с теми же самыми слайдами. Как любой приличный тестировщик, я стараюсь стать лучше и читать новые материалы. Зачастую я натыкаюсь на интересную статью, книгу, концепцию, модель, или эвристику, которую хочется включить в лекцию. Проблема тут в том, что я хочу добавлять, но не удалять материалы, и в результате лекция распухает до сотни слайдов. Из этого опыта я вынес полезный вывод: так же, как и в разработке ПО, изменения должны быть инкрементными, но также полезными – нельзя просто взять и впихнуть все знания о каком-то разделе тестирования в одну-единственную лекцию. Также вне зависимости от того, насколько хорош материал, не всегда уместно давать его новичкам, так как он может их запутать. Нельзя просто "читать лекцию" Да, это называется "лекциями", но чтение лекций – худшее, что вы можете сделать со своими студентами. Процесс обучения не работает при использовании модели школ и университетов – лектор вещает, как радио, а студенты-"приемники" обрабатывают эту информацию вне зависимости от того, понимают ли они вообще, что он, черт возьми, несет. И поэтому в образовании столько проблем, и столько людей обращаются к альтернативным формам обучения. Если интересно, посмотрите материалы сэра Кена Робинсона о кризисе в образовании. Я все это знал. Я также знал, что лучший способ научить тестированию – это показать, как это делается, и дать людям возможность попробовать самостоятельно. Более полугода я пробовал вещать как радио – не поймите меня превратно, я неплохое "радио", но это очень скучно. Мои лекции длятся часа три, и говорить три часа без передышки очень тяжело. Вне зависимости от того, насколько интересно вам самому и вашей аудитории, вам очень быстро станет скучно. Самый важный урок, относящийся к этой тематике, я вынес из материалов Джерри Вайнберга про обучение, основанное на опыте. По сути он частично использует теорию Жана Пиаже – студенты не просто пустые стаканы, которые нужно наполнить знанием. Ваша задача – скорее дать им возможность пощупать то, о чем вы говорите, показать им примеры, поставить перед ними реальные задачи. Этот урок перевернул мой подход к обучению тестированию, так как привнес куда больше осмысленности в организацию моих занятий. Итак, я начал разделять свои лекции на небольшие кусочки, делать их интерактивнее, включать диалоги, вопросы, дискуссии, обсуждения стратегий. Это действительно сильно изменило обучение. Очень тяжело найти хорошие практические упражнения Как уже говорилось выше, практика очень важна для тестирования – нельзя сообщать тестировщикам, что научиться тестированию можно, тестируя, и не требовать от них собственно тестировать. Однако оказалось, что найти хорошие упражнения для тестировщиков очень трудно. В программировании дела обстоят куда лучше – хотите научить человека писать цикл, попросите решить задачу с циклами. В тестировании все сложнее – в норме наша работа заключается в анализе и размышлениях, решении проблем, креативности, поиске подспудных сложностей. Все это нелегко объяснить за пару часов практики. Поэтому многие курсы используют подход, при котором студенты пишут тесты или генерируют тестовые данные, однако создание полной тестовой стратегии – это непростая и небыстрая задача. Итак, вот что я вынес на предмет оценки работы студентов и упражнений в тестировании. Или вы идете стандартным легким путем, оценивая знания студентов при помощи анкетных экзаменов, или вы требуете от них решения реальных сложных проблем, ставите реальные задачи по тестированию, требующие навыка – и забываете о свободном времени навсегда. Если все делать правильно и давать студентам приносящие пользу задания, то это занимает неимоверно много времени. На каждом курсе при каждой домашке я трачу каждый божий вечер на то, чтобы оценить работы и дать по ним обратную связь, это заметно даже по моему блогу. Не то чтобы это было оптимальным вариантом, но насколько я понимаю, он единственно верный. Если вы хотите, чтобы обучение имело смысл, будьте готовы вкладывать время и подходить к каждому студенту персонально, потому что все они учатся, понимают информацию и решают проблемы по-разному. И последнее насчет методологии преподавания тестирования. Баланс между теорией и практикой Эта проблема так же стара, как вопрос про курицу и яйцо. Одно не может существовать без другого, но грань между ними тонка, и соблюсти ее очень сложно. Если вы сосредоточитесь исключительно на теории, вашей аудитории будет скучно, и никто не будет вас слушать. Неважно, насколько блестящим тестировщиком или оратором вы можете быть – преподавание – это не доклад на конференции, ваша задача – вовсе не блеснуть интеллектом. Если вам в итоге не удалось никого научить, ваша задача провалена. С другой стороны, если вы сосредоточитесь на практике, студенты будут озадачены, разочарованы, и напуганы нехваткой знаний, потому что они просто не знают, с чего начать и что делать. Про нехватку словаря для объяснений, что именно они делают – даже если они делают это интуитивно – можно уже не упоминать. Итак, эта проблема не имеет решения. Я думаю, что методом проб и ошибок я буду пытаться ее решать, пока не найду приемлемый выход. Помимо методологии обучения тестированию, я также заметил, как именно тестирование воспринимается новичками в зависимости от того, что они слышали, читали, о чем им рассказали друзья. Мне кажется важным поделиться и этим тоже. Множество устаревшей бесполезной информации Возможно, благодаря парням, которые зарабатывают на жизнь продажей сертификаций и производят тестировщиков из ничего за одну ночь – а возможно, из-за постоянного стремления упростить тестирование при помощи инструментов, стандартов, верификаций, тест-кейсов – в мире полно совершенно бессмысленной информации по тестированию, которую приходится выбивать из студенческих голов, чтобы люди не превращались в бездумных прогонщиков кейсов. Если вам интересно, что это за информация, взгляните на цикл постов "чем тестирование не является". Если вкратце, то вот основные проблемы, с которыми я сталкиваюсь среди новичков:
Я могу продолжать довольно долго. Когда вы разобрались с этой путаницей – только тогда можно начинать помогать студентам выстраивать модель тестирования. Самый сложный вопрос тестирования В процессе обучения, а также наблюдая за беседами опытных тестировщиков на конференциях, встречах, интервью, я обнаружил, что самый сложный для обсуждения вопрос – это "Ваша нынешняя стратегия тестирования?" В тот момент, когда вы просите тестировщика углубиться в анализ его стратегии и ее преимуществ, техник, эвристик, методов, возможных рисков, люди стараются все чересчур упростить, полагаясь на инструменты, метрики и тест-кейсы. Мне кажется, что многие тестировщики просто не считают важным пересмотр своего подхода и его анализ, и я думаю, что они неправы. Возможно, это одна из причин, по которой тестирование теряет ценность и рассматривается, как легко автоматизируемая деятельность, а тестировщиков описывают, как мартышек, тупо следующих шагам/сценариям. Чтобы отстоять ценность своего ремесла, мы не должны бояться рассказывать о своей стратегии, пересматривать ее, анализировать ее, выстраивать ее с нуля снова и снова при необходимости. Только так мы становимся лучше. |