«Что желаете на гарнир к тестам?»

http://www.developsense.com/articles/2005-05-DoYouWantFriesWithThatTest.pdf
  • Перевод
Так получилось, что завершение перевода этой статьи Майкла Болтона удачно совпало с появлением на хабре заметки Натальи Руколь «Почему тестирование — это тупо и скучно?», которая вызвала достаточно бурное обсуждение. Эта статья призвана в какой-то степени объяснить, почему одним тестирование кажется скучным, а для других людей это самое интересное занятие в мире.

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

Выяснилось, что мистер Фрейни описывал не технику, а свою философию приготовления еды.

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

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

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

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

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

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

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

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

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

Итак, что же нам делать, если у нас нет навыков?

Учиться :)

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

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

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

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

А вот если у тестировщика есть навыки:

1. Он начнет тестирование с выяснения цели своей работы. После этого он начнет действовать независимо, но в нужном направлении.
2. Если спецификация нечеткая или недоступна, он сделает разумные заключения о продукте. Здравый смысл еще никто не отменял.
3. Он выберет и разработает тесты, выявляющие риски, и рассортирует их по важности.
4. Он не будет ограничиваться только спецификацией, а сможет найти и другие источники, которые помогут выявить проблемы.
5. Он будет уделять внимание и другим критериям качества – удобству и простоте использования (usability), производительности, надежности, тестопригодности.
6. Вместо того чтобы думать об абстрактном «пользователе», он создаст набор различных профилей пользователей.
7. Он посмотрит на продукт как на часть более крупной системы и подумает о целях тестирования достаточно широко.

Эта широта очень важна.

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

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

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

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

Об авторе

Майкл Болтон является одним из наиболее активных евангелистов школы контекстно-ориентированного тестирования. Он имеет более чем 20-летний опыт работы в области тестирования. Майкл регулярно выступает на конференциях, проводит тренинги и семинары, с 2005 года является постоянным колумнистом одного из самых популярных журналов в области тестирования Better Software (где и была впервые опубликована вышеприведённая статья) и ведёт замечательный блог о тестировании www.developsense.com/blog.shtml

17-18 ноября Майкл Болтон проведёт в Санкт-Петербурге двухдневный тренинг «Rapid Software Testing», разработанный им совместно с Джеймсом Бахом. Подробности тут: habrahabr.ru/blogs/testing/105133
Поделиться публикацией
Похожие публикации
Ой, у вас баннер убежал!

Ну. И что?
Реклама
Комментарии 27
    +8
    А где можно взять «гурман за 60 минут»? что-то не гуглится
    +2
    Ух. Думаю теперь будет проще договориться с руководством на тренинг Майкла Болтона
      0
      Жаль ссылки на оригинал нету :(
      Честно говоря, до этого перевода, думал что тренинг Майкла Болтона будет о том же о чем и книга Роберта Калбертсона «Rapid Testing» ( www.ozon.ru/context/detail/id/1219909/ ).

      Ан нет — у Болтона гораздо прогрессивней.
        +2
        www.developsense.com/articles/2005-05-DoYouWantFriesWithThatTest.pdf

        В топиках-переводах ссылка на оригинал находится внизу, на имени автора оригинала.
            +4
            Это не просто прогрессивней — это просто несравнимо. Книга Карлбертсона как раз являет собой прекрасную иллюстрацию контраста между техниками и навыками — полкнижки занимают шаблоны документов! А оставшиеся полкнижки рассказывают, как эти шаблоны быстро заполнять. Ну и чуть-что про тестирование тоже написано, конечно :)

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

            И одна из идей, которая пропагандируется в этой тусовке — примат навыков над техниками.

            А тренинг «Rapid Software Testing» — это самый лучший тренинг, который вообще существует в области тестирования в настоящий момент.

            Когда я организовывал прошлый приезд Майкла, одной из моих основных мотиваций было желание самому принять в нём участие. И мои весьма высокие ожидания оправдались на все сто процентов. Вот тут я изложил свои впечатления: software-testing.ru/events/review/971-rapid-software-testing
              0
              «На данный момент тусовка, сложившаяся вокруг Кема Канера, Джеймса Баха, Майкла Болтона и Бреда Петтикорда является наиболее активно развивающимся оазисом»

              Ещё одного человка упустили.
              *Человек из России ;)
                0
                В России тестировщики сидят в изоляции от «ревущих широт», ващще-то.
            +1
            Все бы хорошо, но обычно работа тестировщика ценится и оплачивается ниже работы разработчика того же продукта. В институте не учатся специально на тестировщика, в эту профессию идут программисты, которым не хватило знаний, опыта или просто везения. Возможно, поэтому многие тестировщики предполагают не задерживаться на этой должности долго, ставя себе цель перейти в разработчики по достижении необходимого порога знаний/навыков/опыта. А раз работа временная, стараются больше узнать об интересующем направлении, чем о том, чем приходится заниматься сейчас. Есть исключения, ставшие экспертами в тестировании.

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

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

              При подготовке программистов тоже чаще всего учат техникам, а не навыкам. Навыки практически все вынуждены приобретать самостоятельно — делают какие-то свои проекты, фрилансят, устраиваются работать параллельно с учёбой или ещё где-то и как-то, но точно не в институте.
                +1
                Попробую продолжить мысль. Техникам можно научиться, используя чужой опыт. Навыки появляются в результате собственного опыта, набивания шишек. С отступлением от правил, как приготовление пищи не по рецепту. Это и есть творчество, новый рецепт только так и может появиться.

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

                Я считаю что хороших тестировщиков мало потому, что многие из них проявляют творчество в программировании, а не в своей области. Причина в том, что оплата труда разработчика выше тестировщика, что вынуждает тестировщика стремиться к «повышению». А для этого ему требуются другие навыки. Замкнутый круг.
                  +7
                  Ну вот, сейчас опять сюда прибегут тестировщики и будут с пеной у рта доказывать, что про зарплату всё неправда, что это поиски врагов :)

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

                  Это действительно замкнутый круг, который тестировщикам самостоятельно разомкнуть достаточно сложно — они не могут перестать стремиться туда, куда их неявно подталкивают. Большинство следует по течению, лишь немногие способны преодолеть эту тенденцию, но зато потом уж они получают свою порцию плюшек сполна :)
                    0
                    Надо сразу рассказывать, где в тестировании плюшки лежат, а не обещать их появление «когда-нибудь, может быть».
                      +1
                      Так про то и статья — что надо делать, чтобы максимально быстро наступили плюшки: надо не рецепты заучивать наизусть, а развивать навыки, позволяющие быстро адаптировать техники под имеющийся набор ингредиентов и инструментов.
                        0
                        Наверное, стоит это вывести в резюме статьи?
                0
                Тестировщик как дегустатор — очень хорошая мысль.

                Хотя это как-то подразумевает, что он отстраненный от готовки, и оценивает только результат. Я, например, всегда воспринимал тестировщика как одного из разработчиков. То есть, такой же повар, как и все другие.
                  +1
                  Если представить, что этот дегустатор член команды, нанятый рестораном перед приемом высоких гостей, тогда все становится на свои места. Он проверит, что блюда не пересолены, вкусны и аппетитно выглядят. И поварам не придется краснеть перед гостями.
                    +1
                    Дорого и рисковано дегустировать ПОСЛЕ приготовления. Лучше в процессе. Поэтому дегустатора надо сажать на кухню — можно в отдельный уголок.
                      +1
                      Это будет только часть тестирования =) приемочное
                      0
                      Он почти такой же как все, плюс имеет эталон вкуса :-)
                        +1
                        Я бы сказал иначе — он почти такой же, только не боится ЭТО пробовать :)
                          0
                          Во времена оно такое тестирование выглядело как проба всех новых яств за падишаха с целью выявления яда :(
                            0
                            И еще в Японии специальные самураи жевали еду сёгуна, размышляя над своими внутренними ощущениями.

                            Те ещё тестировщики.
                              0
                              Да, но неопытные тестировщики долго не задерживались на этом свете :)
                                0
                                Есть ещё такая замечательная легенда про собачек-тестеров породы чихуахуа:

                                По свидетельствам испанских хроникеров, цари ацтеков чрезвычайно любили грибы. Грибы очень ценились среди индейцев и были дороги. Однако, они несли в себе и опасность. Не было ничего легче, чем подбросить в царское блюдо кусочек ядовитого гриба и таким образом убрать его. Поэтому, перед трапезой, царские блюда давали сначала попробовать рабам, а затем священным «немым собакам» течичи (тихихи). Вкушая пищу, собаки тем самым освящали ее. Течичи являлись предками чихуахуа. Испанцы, и, в частности, Колумб, так и называли их — «немые собаки», т.к. они почти не подавали голоса.

                                Источник: chihuashka.ru/
                        0
                        Буквально вчера посмотрела кино 90-х «Office Space» (там еще «ошибку 2000 года» решали), где одного из программистов звали Майкл Болтон, и ему ужасно не нравилось то, что известного певца зовут так же как и его.

                        Вижу статью, и первая мысль: «Так он не программист был, а тестировщик!»

                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                        Самое читаемое