Какова же цель/задача тестировщика?

Алексей Баранцев здесь говорит:

«Главная деятельность тестировщиков заключается в том, что они предоставляют участникам проекта по разработке программного обеспечения отрицательную обратную связь о качестве программного продукта.»
Ту же самую идею недавно описал Д. Спольски в своей статье «Why testers?»
«A great tester gives programmers immediate feedback on what they did right and what they did wrong.»
Это здорово, но думаю, что это не абсолютная истина. Ведь в зависимости от размера проекта и ролевого распределения цель и задача тестировщика меняется, причем достаточно явно.

Может быть на самом деле несколько вариантов (список не ограничен — ваши версии всегда уместны в комментариях):

1. Тестировщик — не влияет на проект.
В данном случае, на самом деле, от тестировщика ждут всего лишь информации.

2. Тестировщик влияет на проект.
Тестировщик добывает информацию для себя, чтобы определить, может ли он САМ выпустить релиз и взять на себя ответственность за качество выпускаемого продукта. Такая ситуация не менее распространена, чем первая. Причем, считаю её более важной. Ведь сама постановка вопроса: дать информацию или подписаться под выпуском продукта — ведет к более серьезному подходу. Люди разные, воспринимают мир индивидуально, но если тестировщик не несет ответственности за релиз, его руки развязаны — задержки релиза, выпуск не достаточно качественных версий и т.д. Конечно, гильотину не стоит показывать в качестве возможного исхода событий, но серьезная доля ответственности вполне приемлема.

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

Из-под пера Maksim Grinevich

Тэги: , , , ,
Нашли ошибку в тексте? Выделите её мышкой и нажмите Ctrl + Enter.

Ещё по данной теме:


26 ответов, оставьте свой...:

  1. Alexei Barantsev отметил:

    Максим, зачем смешивать роли?

    Да, один человек может совмещать роль тестировщика и "выпускающего" или "релиз-менеджера". Может совмещать роль тестировщика с ролью руководителя проекта.

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

  2. Maksim Grinevich отметил:

    Алексей,

    Разделение ролей хорошо - но возможно зачастую только на бумаге.

    На практике же, если мы говорим о действительно толковом специалисте, мы говорим о целом комплексе ролей, выполняемых одним человеком с title тестировщик.

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

  3. Alexei Barantsev отметил:

    >> На практике же, если мы говорим о действительно толковом специалисте, мы говорим о целом комплексе ролей, выполняемых одним человеком с title тестировщик.

    Ну тогда почему бы просто не написать ему title -- "толковый специалист", и пусть занимается всем подряд?

    Я, конечно, немного утрирую, но описанному в посте специалисту я бы таки повесил ярлык "руководитель проекта", а не "тестировщик". Потому что если тестировщик занимается тем, чем описано -- что же тогда делает руководитель проекта?

  4. Maksim Grinevich отметил:

    >>Я, конечно, немного утрирую, но описанному в посте специалисту я бы таки повесил ярлык "руководитель проекта", а не "тестировщик". Потому что если тестировщик занимается тем, чем описано -- что же тогда делает руководитель проекта?

    Руководитель проекта пожинает плоды работы команды :):)

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

  5. Alexei Barantsev отметил:

    Я бы на месте руководителя проекта обиделся, если бы мне была отведена такая бесполезная роль :)

  6. Maksim Grinevich отметил:

    :)

    На самом деле работы хватает всем, особенно руководителям - Вам ли не знать?

  7. Alexei Barantsev отметил:

    Так и я про то же!

    Либо работы реально мало, и тогда всё может делать один человек, какую этикетку на него ни наклей.

    Либо работы хватает всем, и тогда непонятно, с чего бы тестировщику узурпировать задачи, характерные для руководителя проекта, ему что ли своей работы мало? Или руководитель не справляется со своей работой? А чем же он тогда занят?

  8. Maksim Grinevich отметил:

    Не все так однозначно.

    Работы хватает всем - от этого никуда не уйти.

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

    Четкое разделение ролей и не влияние одной роли на другую возможно лишь тогда, когда эти роли находятся на нижних ступенях производственного цикла.
    Т.е. младшие тестировщики с младшими девелоперами просто передают информация/кодируют. А вот выше все интереснее. Не может один руководитель все делать(кентавры конечно же есть, которые не благоджаря, а вопреки). Только в результате командной работы как минимум лидера тестеров(e.g. старшего тестера), лидера девелоперов и руководителя проекта - получится результат. А вот если одни "сделали то, что написано", вторые преподнесли информацию о том, что "сделано неправильно", а ПМ пусть потеет - нет, "это не наш путь".

  9. Алексей Булат отметил:

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

    А вообще, думаю, что прав Алексей - попытки мешать роли вводят сумятицу. Если вы делаете все и плюс тестируете, то вы никак не просто тестер, а скажем Software Engineer.

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

  10. Alexei Barantsev отметил:

    >> На мой взгляд при жестком выделении ролей происходит ситуация подобная истории про "мая хата скраю".

    Не надо путать два понятия -- 1) разделение ответственности за результат, и 2) распределение работы между участниками проекта в соответствии с их ролями.

    Они вообще никак не связаны.

  11. Maksim Grinevich отметил:

    Алексей Булат, на данный момент я не относил себя к 3ей описанной мной категории. Но такое я видел и не раз.

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

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

    Если Вы назовете это "неправильным" или "ненормальным" - Ваше право.

    Другими словами: существует много разных бизнес моделей, многие из них приносят прибыль и результат. И только крупные игроки аутсорсного рынка могут позволить себе условия, при которых существует четкое разделение ролей в производстве.(на текущем моем месте работы именно так)

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

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

    Что-то я много буков написал уже :)

    Think different.


    ------------------------
    ------------------------
    ------------------------

    Alexei Barantsev, как же так не связаны? Я отвечаю только за то, что делаю/какую роль занимаю. Разве нет?

  12. Alexei Barantsev отметил:

    >> как же так не связаны? Я отвечаю только за то, что делаю/какую роль занимаю. Разве нет?

    Нет.

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

    Возможна личная ответственность даже в ситуации, когда все делают кто во что горазд, но если что случится -- отвечает один, потому что он начальник (ну или "стрелочкик", смотря по ситуации).

  13. Alexei Barantsev отметил:

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

    Есть ли какие-нибудь границы этого "большего"? Или подход такой, что тестировщик может делать всё что угодно -- управлять проектами, кодировать, продавать, мыть полы, бегать в магазин за пиццей и варить кофе, лишь бы в душе он оставался тестировщиком?

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

  14. Maksim Grinevich отметил:

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

  15. Alexei Barantsev отметил:

    Это верно, крутимся.

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

    Предлагаю принять мою точку зрения как более продуктивную с точки зрения возможности дать ответ на вопрос "какова же цель/задача тестировщика?" :)

    Ваше определение того, что есть тестировщик, принципиально не даёт возможности ответить на этот вопрос.

  16. Maksim Grinevich отметил:

    Алексей,

    Мы сейчас с Вами разговариваем про сверического коня в вакууме (роль тестировщика в идеальном мире) или про реальные проекты?

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

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

    И я отвечаю на вопрос: "Какова же цель и задача именно тестировщика?" - человека (со всеми его возможными действиями), а не теоретической роли "тестировщик" в беспроектном вакууме.

    --- прошу прощения, если я резок ---

  17. Alexei Barantsev отметил:

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

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

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

  18. Maksim Grinevich отметил:

    Я говорю о том, что специальность тестировщика не ограничена только "натуральным тестированием" - обобщенные требования к позиции тестировщика неумолимо содержат кроме всего прочего ещё и описанные выше особенности...

  19. Алексей Булат отметил:

    У меня возникает такое чувство, Максим, что вы работаете по "Аджайл" - именно в кавычках. Только там могут сделать из бедного тестировщика и программиста, и менеджера, и директора т.д. И прикрыть этот бардак модным словом Agile, которое в принципе не так и плохо, если уметь грамотно им пользоваться.

    Я не буду с Вами спорить, что роль тестировщика важна, и что он должен многое понимать и уметь. Но давайте подумаем, что же он ДОЛЖЕН уметь и выполнять, именно должен (must have). Не даром есть такие документы, как "Должностные инструкции", которые были очень модны во времени великого "Совка", а некоторых организациях и до сих пор их можно встретить. В них обычно пишут, что та или иная должностная единица должна выполнять, кому отчитываться и как. Если у вас таковой нет, советую написать, хотя бы для себя, тогда многое встанет на место.

    Что-то много написал, и как-то все на нервах получилось. Извините, плохо спал ночью... :(

    P.S. Я бы на Вашем месте статью назвал: "Какова же цель/задача тестировщика в условиях жуткого дефицита ресурсов"

  20. Alexei Barantsev отметил:

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

    >> если тестировщик не несет ответственности за релиз, его руки развязаны — задержки релиза, выпуск не достаточно качественных версий и т.д.

    Давайте представим себе, что тестировщик __несёт__ ответственность за выпуск релиза. Что это означает?

    1) Вариант первый -- "коллективная ответственность" (см. мой коммент выше). В этом случае он несёт ответственность не большую и не меньшую, чем другие участники. Поэтому нет смысла говорить, что это он САМ выпускает релиз. Тестировщик должен просто хорошо делать свою работу, как это делает каждый футболист, чтобы его команда выиграла матч. И это не означает, что защитник должен бегать и пытаться помочь то нападающему, то вратарю. Он должен делать __свою__ часть работы.

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

    2) Вариант второй -- "личная ответственность" за выпуск релиза. Чтобы тестировщик не превратился в "стрелочника", который повлиять на ситуацию не может, но на которого можно свалить все проблемы, в дополнение к ответственности он должен обладать соответствующими полномочиями.
    Это означает, что он должен иметь возможность принимать решения. Он должен иметь возможность говорить программистам и прочим остальным, что им следует делать, а что нет. Он должен иметь право "вязать и решить". То есть становится руководителем проекта, который ещё и тестированием занимается. Чистое совмещение двух специальностей с практически непересекающимися наборами профессиональных навыков.

    Но надо понимать, что в этом случае он влияет на проект не потому, что он тестировщик, а потому, что он руководитель проекта!

    Теперь представим себе, что тестировщик не несёт ответственность за релиз (даже коллективную), а несёт её руководитель проекта.

    Действительно ли в этом случае он не несёт вообще никакой ответственности и может безнаказонно делать всё что угодно?

    Отнюдь нет!

    Тестировщик несёт личную отвественность за качество предоставленной информации, на основании которой затем кто-то другой принял решение.

    В частности, он несёт ответственность перед руководителем проекта за качество информации о текущем состоянии продукта. Эту информацию руководитель использует для принятия решения о выпуске релиза. И если недостаточно качественная или недостаточно полная информация будет причиной неудачного решения, и при этом тестировщик __мог__ раздобыть и предоставить более качественную информацию -- это его вина.

  21. Галина Галкина отметил:

    Соглашусь с Алексеем. Тестировщик НЕ может "не влиять" на проект. Если это так, то он в проекте просто не нужен.
    Информация, предоставляемая тестированием - это ценный артефакт проекта, и чем точнее и полнее информация, тем ценнее.
    Тестировщик не должен думать что он Не влияет на проект, это же жуткая демотивация.

  22. Maksim Grinevich отметил:

    Алексей Булат, про аджайл в ковычках или без никто не говорит.

    Галина Галкина, говорить конечно же не надо, ведь это ТАК демотивирует. :):) Но ведь горишь вслух или нет, сути это не меняет. Все прекрасно понимают как обстоят дела.

    Alexei Barantsev, Похоже мы на самом деле с Вами приближаемся к пониманию. Осталось только и Вам меня услышать.

    Групповая ответственность - сродни ситуации, когда никто не отвечает. "Все вокруг советское, все вокруг мое." - помните к чему это в итотге привело.

    Личная ответственность - вот тут интереснее. Лидеру тестировщиков ставится задача проверить и отдать заказчику такой скоуп софта.
    1. СО СВОЕЙ стороны он в рамках отпущенного времени ограничивает предложенный скоуп (пример: все проверить и выпустить не успеем/не можем/и т.д.)
    2. Затем при получении скоупа от программистов происходит оценка(тестирование) а то ил это, что требовалось и в надлежащем ли качестве - готов ли я подписаться под этим и отдать это заказчику?
    3. После тестирования и анализа результатов: релиз или возврат на доработку.

    Естесственно, что на третьем этапе не всегда тестировщик сам может принять решение.

    -----------
    Я не говорю, что так долэжно быть всегда. Но такой подход, основанный на взаимном уважении и доверии между ПМ, лидером девелоперов и лидером тестеров приводит к результатам.

    ------------

    Можно говорить много, что теоретически это неверно. Но не стоит железно уповать на теорию, если практика показывает, что она не всегда права.

    Алексей, Вы же сами прекрасно знаете, как появляются научные открытия в "реальных" науках. Помните про черные и белые шары.

    Далеко не всегда бизнес от тестировщиков ожидает широкой информации о качестве продукта. Чаще требуется одно слово "гуд или негуд"/"будет жить или г..."/ваш вариант подходящих терминов.

    ---------------------
    Тестировщик может добиться такого джоверия со стороны девелоперов/менеджеров/и т.д. - всего лишь не стоит самим себя ограничивать!

  23. Alexei Barantsev отметил:

    >> Галина Галкина, говорить конечно же не надо, ведь это ТАК демотивирует. :):) Но ведь горишь вслух или нет, сути это не меняет. Все прекрасно понимают как обстоят дела.

    Максим, что означает этот намёк?

    Означает ли это, что, по Вашему мнению, деятельность тестировщиков (когда они тестированием занимаются, а не подменяют собой руководителя проекта или ещё кого-нибудь) в действительности не оказывает никакого влияния на проект, а в итоге и на качество продукта, но "говорить про это не надо"?

  24. Галина Галкина отметил:

    Максим, давайте не будем обобщать. Если где-то тестирование "не влияет", это не значит что так везде и всюду.
    И "думать" самому и "говорить" кому-то не одно и тоже :)

  25. Maksim Grinevich отметил:

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

    На мой взгляд это зависит от процесса разработки.

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

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

  26. Alexei Barantsev отметил:

    Предлагаю заменить в исходном посте слово "тестировщик" на слово "аналитик". Ну или на слово "разработчик". Можно и на "руководитель проекта". Почему бы и нет?