Subject:

Рамки тестирования // Test framing

Issue ID #118 

Reported at 11.01.2014

Reported byNatalya Rukol

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

1. Ограничение тестовой задачи

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

  • Зачем нам это тестировать? Что от нас хотят получить по результатам тестирования? На что повлияют результаты тестирования?
  • Как это должно работать? В каких условиях это должно использоваться? Какие требования, документированные и не очень, нам известны? Что нам непонятно и хочется спросить?
  • Как это будет использоваться? В каких условиях работают наши пользователи, на каких окружениях, с какими данными? Что это за люди, с какой квалификацией? Что им важнее всего? Какие проблемы/задачи они будут решать при помощи этого продукта / фичи?
  • Какие риски? Что менялось в продукте? С какими типами данных и в каком функционале чаще всего встречаются проблемы? Что могло быть затронуто изменениями? Какие ошибки вам чаще всего встречались в похожем функционале? Какие особенности есть у конкретного разработчика?
  • Какие у нас ресурсы? Сколько у нас есть времени? Сколько человек? Когда от нас ждут поверхностных, а когда более детальных результатов? Есть ли у нас достаточно окружений, оборудования, ПО?
  • Какова наша квалификация в тестировании подобного функционала? Какими техниками мы владеем? Какие инструменты тестирования знаем? Каких знаний нам может не хватить?

Каждый раз, приступая к задаче, мы должны отвечать на эти вопросы. Это минимальный и базовый набор вопросов, не зная ответы на которые мы не сможем тестировать хорошо! Доверитесь ли вы врачу, который пропишет лекарство без анализов и распросов? Сможете ли вы тестировать продукт, не зная его пользователей и целей? Конечно, ответ на оба вопроса — твёрдое НЕТ. Если вдруг вы понимаете, что какой-то информации по любому из пунктов не хватает — значит, надо идти и выяснять. У бизнес-департамента, у своего руководителя, у менеджера проекта, у разработчика, — у кого получится, у того и выясняйте.

2. На что вляют рамки?

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

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

Допустим, вы вообще не тестировщик, а аналитик или разработчик, и вам надо проверить ПО. Как вы сможете это сделать? Что проверить будет важнее всего? Ответы на вопросы покажут вам, с каких тестов начинать, и что важно не пропустить.

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

3. Тестируем себя

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

Вы тоже хотите быть непрофессионалами?

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

  • Andrey Myasnikov

    Блинский блин. Написал огромную простыню почему я не согласен по многим пунктам, но глюканул браузер, поэтому скажу вкратце.

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

    • Аноним

      Было бы очень интересно посмотреть как можно сократить список вопросов. У меня его сократить не получается.

      Первый вопрос проясняет ЦЕЛЬ.
      Второй и третий ОБЪЕМ работ.
      Четвертый проясняет КЛЮЧЕВЫЕ моменты.
      Пятый и Шестой проясняет существующие РЕСУРСЫ

      Практически 1 в 1 по классике менеджмента.

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

    • http://natalyarukol.ru Natalya Rukol

      Хочешь обсуждать в личке — приходи в личку :)

      Хочешь выкинуть вопросы — предлагай какие. Я бы либо смогла ответить, чем чреват такой пропуск вопросов, либо согласилась бы благодаря твоим обоснованиям.

      А так даже непонятно, что отвечать :)

  • Аноним

    Наталья, большое спасибо за список вопросов.

    Я разработчик, хочу стать консультантом (по решению технических проблем).
    Мне понравилось в вопросах то, что я могу практически 1 в 1 использовать эти вопросы в своей деятельности.

    Т.е. есть техническая проблема, которую нужно решить. Задаем практически те же самые вопросы на прояснение Цели, Объемов, Рисков и Ресурсов.

    В общем, еще раз спасибо. С удовольствием читаю ваш блог.

    • http://natalyarukol.ru Natalya Rukol

      Я ничем кроме тестирования никогда серьёзно не занималась. Но мне кажется, что почти все общие принципы одинаковы везде — и в тестировании, и в разработке, и в производстве удочек. Не могу точно этого утверждать, т.к. в разработке и производстве удочек не работала :) ))

  • Maxim Zakharov

    По вашим вопросам:
    1. «Зачем нам это тестировать?» — чтоб получить сообщение о проблеме или сообщение о их отсутствии, разве нет? Можно пример, на что в моей работе будут влиять разные ответы на этот вопрос? а то мне кажется, что он лишний.

    2,3. «Как это должно работать?» и «Как это будет использоваться?» — эти два вопроса предлагаю объединить один. не вижу смысла разделять.

    4. «Какие риски?» — ок.

    5. «Какие у нас ресурсы?» — отлично.

    6. «Какова наша квалификация в тестировании подобного функционала?»- я бы предложил переформулировать. Что-то вроде «кто будет это тестировать» плюс «как выглядит идеальный тестер этой задачи» плюс «Feel the difference», в позитивном ключе, само собой. Ну и как нибудь покороче, да.

    Канер, 54я лекция, тоже неплохая версия.
    1. Кто?
    2. Что?
    3. Риски?
    4. Способ?
    5. Оракул (как вы будете оценивать результаты)?

    Совет писать маркером ответы на подобные списки вопросов — сугубо мудрый, мое уважение. А вы пишете? А можно фотку с примером? Любопытно ж.

    • http://natalyarukol.ru Natalya Rukol

      Да, 1й вопрос самый хитрый, потому что всем кажется очевидным. А на самом деле, в разных условиях работы совсем по-разному на него отвечают. Примеры из жизни:
      * Стоимость задержки релиза — 2 млн долл в неделю. Продукт не собирается. Зачем мы будем его тестировать после сборки?
      * Про наш прошлый релиз в известном журнале написали гневную статью из-за известных и считавшихся некритичными ошибок, продажи упали. Зачем мы будем тестировать следующий релиз?

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

      А про маркерную доску — пишем, только я до неизвестных пор в тёплой стране, и сфоткать холодную московскую доску пока не смогу :) ))

      • Maxim Zakharov

        Эти предусловия помогают ответить на вопрос — «Что тестировать?», регламентируют объем работ.

        Ответ на «зачем» в любом случае тот же самый: «Найти/не пропустить/исправить».

        • http://natalyarukol.ru Natalya Rukol

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

          Не всегда эта разница в отношении к тестированию очевидна, и искусство — понять её и учесть.

          ВСЕ клиенты парикмахерской ходят туда, чтобы укоротить свои волосы. Но у всех получаются разные стрижки: кому-то они нужны для понта (стильно выглядеть), кому-то для комфорта (быстрее сушить), кому-то по привычке. А кто-то хочет экономить на шампуне :) ))) ХОРОШИЙ парикмахер понимает, зачем стрижка его клиенту.

  • Maria Russkikh

    Я бы еще добавила вопрос «Зачем мы/они это разрабатывали?». Ответ на него может оказать сильное влияние на цели и подходы к тестированию.

    Вопросы безумно полезны, для многих очевидны и стандартны для менеджмента. Но они больше подходят для фазы планирования. А вот для непосредственной подготовки тестов (ручных, автоматизированных) есть свой список вопросов у вас? Т.е. как себе/другому обосновать почему я написала этот тест и именно так?

  • Pingback: Рамки т&#10...

Social Widgets powered by AB-WebLog.com.