воскресенье, 27 апреля 2014 г.

Тренинг Майкла Болтона "Критическое мышление для тестировщиков". Мой обзор.

На конференции SQA Days-15 в Москве было много классных докладчиков, но приглашение на юбилейную конференцию Майкла Болтона - это вишенка на вкусном торте. Полуторачасовой доклад собрал полную аудиторию: в конце второго дня Майкл дразнил пивом, троллил продукты Майкрософт, но главное - разбирался вместе со слушателями, в чем проблема?

А на следующий день, 20 апреля, Майкл Болтон проводил восьмичасовой тренинг "Критическое мышление для тестировщиков". Анонсы про тренинг были еще за 2 месяца до конференции, участникам SQA Days была скидка 10% на тренинг, но народу собралось непривычно мало: всего 15 человек (в том числе я с коллегами Игорем Бондаренко и Сергеем Остапенковым) приняло участие. Довольно неожиданно, ведь нечасто к нам приезжает звезда по тестированию такого уровня...

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

Мой нижеприведенный конспект не отразит все то множество мыслей и идей, затронутых на тренинге, но поможет вам (и мне) восстановить хронологию событий, как это было, и узнать что-то новое. За более подробной информацией обращайтесь к первоисточнику на последующих тренингах, или почитайте статьи Болтона на его сайте - http://developsense.com/

Слайды Майкла Болтона с конференции Eurostar по данной теме "Critical Thinking for testers" можно взять здесь - http://www.developsense.com/presentations/2012-11-EuroSTAR-CriticalThinkingForTesters.pdf

Начался тренинг с двух простых задачек: про биту и мяч и про Стива-библиотекаря-фермера. Затем мы поупражнялись в переводе с 10-ричной системы в 16-ричную, и заодно проверили наши предположения о том, сколько человек в аудитории знают этот алгоритм и сделали задачу правильно :)


Рефлекс важен, но критичное мышление - это рефлексия.
Что ты видишь - это все, что есть (c) Майкл Болтон ("What you see is all there is")
Технологии более сложные, чем вещи, происходящие в реальной жизни. Но тестировщики не должны быть одурачены.
Тестировщик - тот, кто знает, что вещи могут быть разными.

Затем мы решали задачу: есть последовательность, есть программа, которая по введенной последовательности отвечает, удовлетворяет ли введенная последовательность некоторой закономерности или нет. Задача была - обнаружить данную закономерность за наименьшее число тестов. Вначале каждый работал сам, затем мы объединились все вместе (о минимальном количестве тестов речи уже не шло:) ), но даже все вместе мы не смогли полностью, на все 100% описать данную закономерность. И даже после знакомства с исходным кодом программы (буквально 4 строки исходного кода) мы выяснили, что не все нюансы программы были обнаружены.

Алгоритм поиска закономерности - creep and leap.
No experience about the past can logically be projected into the future, because we have no experience OF the future.
Passing tests cannot prove software is good. 
Critical thinking is thinking about thinking with the aim of not getting fooled (c) Michael Bolton.

Затем Майкл говорил о тестировании и проверках (testing-vs-checking) - я публиковал в блоге перевод исходной статьи - http://qastugama.blogspot.com/2013/09/blog-post_6.html И немного о том, что все думают, что делают тестировщики (сравнивают продукт со спецификацией, круги described-actual), и что тестировщики делают на самом деле (круги imagined-described-actual) - вначале мы сами обсуждали данные круги, затем обсуждали свои результаты с Майклом. И на десерт данного блока - задача "сломанный калькулятор": я уронил калькулятор, возможно, он поврежден, как я должен проверить его работоспособность.

Следующая часть - блок про предпосылки, утверждения и выводы. И о том, что делает утверждения более опасными (безосновательными и ведущими к ложным выводам). О помогающих вопросах, чтобы не попасться в ловушки (Huh? Really? So?) - эти вопросы также позволяют восстановить контекст.


It is silly to say “don’t make assumptions.” Instead say “let’s be careful about risky assumptions.”


Book "Perfect Software and Other Illusions About Testing" by J. Weinberg


Следом  - практическая задача-диаграмма с одним ветвлением: A < 70? Если да, то выполняем 1, если нет, то выполняем 2. И вопрос, сколько кейсов. Очевидный ответ 2 неправильный: каждый блок диаграммы может содержать несколько действий, каждое из которых тоже необходимо проверять:

Things that don't appear on diagram are easy to forget.
The feature worked. -> I've not yet seen any failures in the feature.

Далее мы говорили о "безопасном языке" (в тестировании это оценка и использование безопасных формулировок с целью избежания ложной уверенности) и вербальных эвристиках (Unless, And also, Or Not, So far & Not Yet), разбирали статьи с безопасным языком.

The Regression Testing Fantasy “I rerun my old tests to ensure that nothing has broken.”

Books:
Gerome Groopman "How Doctors Think"
Gerd Gigerenzer "Gut Feelings: The Intelligence of the Unconscious"

И на десерт - логические задачи, головоломки, фокусы от Майкла, некоторые нам даже удалось раскусить :) И автографы для желающих и возможность сфотографироваться с самим Майклом Болтоном.

Восемь часов пролетело очень быстро, не хотелось расходиться, да и была еще возможность попить пива с Болтоном второй раз за два дня, но впереди ждали поезд и Минск :) Московские три дня пролетели очень быстро, продуктивно, насыщенно, много знакомств, общения со старыми знакомыми, новые идеи, мысли, пивное афтепати в Гамбринусе, критическое мышление Майкла Болтона... Вобщем, нужно встречаться, хотя бы раз в полгода. До встречи на следующей SQA Days!

Комментариев нет:

Отправить комментарий