среда, 30 января 2013 г.

Тестировщик - это врач диагност в IT?


Сейчас очень модны медицинские сериалы. Доктор Хаус, Клиника, Женский доктор,  Интерны, Склифософский и еще куча подобных сериалов. Работая в IT области, я решил сопоставить  медицину и IT. Если говорить конкретно, то к какой области медицины можно отнести непосредственно тестированиеНе будем ходить вокруг на около, а вспомним книгу  Сема Канера "Тестирование программного обеспечения"Представьте, что с вашим здоровьем что-то не в порядке. Вы приходите к врачу, и он проводит целый ряд анализов. Однако врач ничего не находитон утверждает, что вы здоровы. Хороший ли он диагност? Если вы в самом деле больны, остается признать, что врач некомпетентен, а дорогостоящие анализы были пустой тратой сил, времени и денег. При тестиро­вании диагностэто вы, а программа (абсолютно наверняка) — больной пациент. Так найдите же, что с ней не так!

Давайте выясним, действительно ли это так?

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

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

2) Описание дефекта = это по сути симптомы. Тоже вынужден согласится с этим определением, более того при желании можно сделать классификацию этих дефектов.

3) ???? = Диагноз. Что есть диагноз? Очень интересный вопрос. Я пришел первый раз в кампанию, нашел свой первый баг, при этом видя программу чуть ли не первый раз! Как я могу поставить конкретную причину бага
Тут можно поспорить... Есть логи, есть debug, которым тетстировщик, в идеале должен уметь пользоваться. Т.е. по сути это те же инструменты, которые есть у врача для проведения анализов и выявления точного заболевания. К чему я написал кучу непонятного текста? К тому, что тестировщик в состоянии поставить конкретную причину бага. Т.е???? = Причина бага.

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


Подобно врачу, тестировщик должен смотреть на симптомы бага, так же как врач смотрит  на симптомы человека. Если этих симптомов не достаточно, то врач назначает анализы, а тестировщик использует дополнительные инструменты. Тестировщик должен изучать проект, что бы знать его досконально. Представьте себе врача, который не знает, из чего состоит человек? Страшно да?  А теперь тестировщика, который не знает проект?  Не так страшно, особенно когда вы его только взяли на работу. Но если через 2 – 3 месяца  не знает, как работает функционал – это вызывает вопросы, и за тестирование становится уже страшно.  
Давайте подведем итог статьи. Можно ли тестировщика сравнивать с врачом диагностом? Я думаю, что хорошего врача и хорошего тестировщика можно сравнить. И тому и тому, для того что бы добиться статуса профессионала в своей области необходимо постоянно получать знания и адаптироваться под современные исследования и технические новшества. А для этого и тем и другим необходимо изучать свою предметную область.




Software-Testing.Ru