Тестирование и автоматизация

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

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

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

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

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

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

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

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

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