«Кнут и плетка» для программистов

К одной из тутошних записей в комментариях был вопрос о роли тестировщиков.

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

Кагбэ, да, но…

Роль тестировщиков в программистском быту

В проекте по софтразработке тестирование — такая же нудная и скучная работа, как и программирование, обработка счетов и подметание офиса.

Это просто работа, которую надо сделать.

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

Почему тестированием занимаются тестировщики, а не сами программисты?

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

Работа тестировщиков стоит дешевле, поэтому тестируют — тестировщики, а не программисты.

Не будет тестировщика — эту работу должен будет сделать программист. Или менеджер проекта. Или клининг-менеджер (читаем от английскаго слова «clean» > чистота, а не от слова «клиника»).

На полном серьезе на форуме тестировщиков рассматривается вопрос «Должны ли сами программисты тестировать?«

Да, если речь идет об атомарном тестировании всего того, что они ваяют.

Может быть, если речь идет о той части, которую будет видеть пресловутый «конечный пользователь».

Однако тема растянулась на две полновесные страницы…

В общем, тестировщик — это роль в проекте.

Если нет проектной возможности, то эту роль исполняет кто угодно, как правило, сам программист или же пользователи. Есть целая стратегия, тестировать «на людях» и править ошибки по мере их накопления.

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

Почему тестировщик ценится дешевле программиста?

Идеальный ответ: Потому, что вас много, а мы — одни 🙂

Потому, что без тестировщика программу можно сделать и продать/использовать. Сам по себе тестировщик без работы программиста не ценнее набора скрепок.

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

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

То есть, программисту нужны оппозиционеры и надсмотрщик. Как же…

Сужу по собственным наблюдениям за бытом программистов в их гнездовищах и местах наибольших скоплений:

Программистам не нужен надсмотрщик-проверяльщик, призрак которого где-то маячит, и скоро как придет, да как проверит всё и вся…

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

Ошибка в программе — трагедия и для программиста, и для тестировщика.

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

Пресловутый пользователь на роль тестировщика не подходит. Менеджер проекта — тоже. Голодные дети дома и кредит за машину — тоже нет. Только тестировщик.

Мотивация программиста

  1. Создать продукт, об авторстве которого будет приятно сообщать когда-то потом кому-нибудь, кто отличает бит от байта.
  2. Забрать себе все существующее бабло и пойти домой.

Мотивация тестировщика

Всё та же — деньги и слава.

Вот если тестировщику будет суждено “вариться” ТОЛЬКО в обществе тестировщиков, то да, единственной пузомеркой является количество и важность найденных багов. Причем количество считается более ценным, почему-то…

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

Однако продетализируем.

Деньги — да, нужны. Нужны, как любое средство гигиены, например, наличие зубной пасты в ванной. Она должна быть, причем ее должно быть столько, сколько нужно для того, чтобы каким-то ранним утром не пришлось узнать, что зубной пасты в доме нет…

То есть — много больше, чем «в среднем по рынку».

Когда паста есть, особого внимания к себе не привлекает. Ну, есть. Должна быть. А что, бывает иначе?

Слава — это ориентир того, что до сих пор ты все делаешь правильно, и заслуживаешь признание и одобрение коллег.

Еще раз — коллег. Собратьев по уму-разуму.

Мы стадные существа. Поэтому мнение стада относительно себя самого — неимоверно важно для каждого.

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

У подписчиков и читателей по этому поводу очень-очень другое мнение…

От мнения окружающих зависит не только состояние личного “эго”, но и положение в стаде. Ну, или в обществе.

Деньги ≈ Слава

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

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

6 ответов на “«Кнут и плетка» для программистов”

  1. Вот опять встречаю мнение что квалификация программисто выше чем квалификация тестировщика.
    Это не правда! Если тестировщик занимается юнит тестированием для embedded software или же интеграционными тестами для того же встроенного програмного обеспечения. То он разбирается в коде не хуже человека его написашевго. Помимо этого зачастую документация написана плохо, ему приходится самому разбирать что делает функция. Помимо этого ещё нужно запрограмировать (сейчас это конечно лежит обычно на test tool но понимать что означает вставленный код надо) тестовое окружение и тестовый драйвер.
    По этому считаю что квалификация тестировщика должна быть не меньше квалификации программиста. В идеале если тестировщик сначала работает как программист потом тестировщик потом как системный аналитик, но это в идиале, к сожалению сейчас (например в лётном по ) всё извращенно (обычно прогараммист, а иногда и стажёр пишет low-lewel requrements и причём из кода 🙁 ) и это связано с большой флуктуацией программистов и низким уровнем зрелости программных колективов.

  2. @Shm
    А мне даже кажется, что тестировщик должен быть более квалифицированным в девелопменте, нежели девелопер. Он же «проверяет работу» 😉

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

  4. @borismor:

    Тестер тем и ценен, что зачастую продукт не знает до такой степени.

    Позвольте немного не согласиться, тестировщик, имхо, должен знать продукт, и зачастую знает его настолько, что именно к нему обращаются те ребята, которые пишут доку по продукту. На счет того, что он может «понажимать кнопки, которые не нажмет разработчик», так опять же, по моему мнению, он ДОЛЖЕН проверить на все, что только может удумать конечный пользователь. 🙂

Добавить комментарий