Баллада о былинном фэйле

Автор: | 03.02.2014

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

Ну, кое-что знаю…

Когда-то один сэр Тестировщик был очень юн и уверен в себе. За большие (для тогдашнего его) деньги он схантился в одну динамично загибающуюся кишиневскую компанию, которая хотела «изменить мир, а не просто продавать сладкую воду». О, да…

Всё же было не просто так. Умный и опытный сэр Тестировщик спросил на собеседовании:

— А svn у вас есть?

Конечно! — ответили ему. — И ещё у нас есть корпоративы на природе!

— Тааак. А программисты у вас опытные?

Конечно! И еще у нас есть премии за хорошую работу!

— А документацию вы где держите? Внутренняя вики есть?

Конечно! И еще у нас полное оформление на работу!

В общем, был сэр сам себе дурак. Если выяснил, что svn в компании есть, то надо было также спросить «А им кто-то пользуется?» А он не спросил.

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

И документацию на вики действительно держали. Точнее, документацию по этой самой вики. По проектам документация хранилась в svn, в виде doc файлов с постоянно обновляемыми планами проектов…

Что там творили (от слова «творчество») программисты-студенты… Ну, представьте себе комнату, в которой сидят вроде бы адекватные молодые люди. Каждый по-отдельности вроде бы умеет писать код. Каждый знает, что существуют все эти svn и вики, но лично ему они ещё ни разу не понадобились. Ну да, программисту-одиночке подобные инструменты действительно не нужны, они крайне необходимы только для совместной работы. Но теперь представьте, что все люди в этой большой комнате работают над одним и тем же проектом, но — каждый по-отдельности. И каждый обоснованно уверен в том, что лично ему все эти фигни вроде svn ему нафиг не упёрлись.

Схема работы у каждого из них идеальная: каждый программист целый день педалит код, решая какие-то ёб*** задачи. Вечером он весь свой код запахивает в zip-файл, и скидывает его по почте главному программисту. И уходит домой.

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

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

А сэр Тестировщик действительно работал медленно. Тестировать предлагалось так: проект у каждого программиста поднят на Tomcat-сервачке на его же машинке. Сэр по сети открывает сайт-проект в своём браузере, и всласть тестирует. А программист в этом время на ходу вносит свои ёб*** функциональные изменения в проект, ведь ему надо работать, ему некогда ждать.

Сэр Тестировщик вдруг понял, почему главный программист (тот, который рефакторит код до трех ночи) больше не хочет быть ёб*** главным программистом.

Сэр Тестировщик начал звереть.

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

Первый же попавшийся программист на них посмотрел, и сказал «Да, не работает, но я не этот функционал делал, я делал вон тот функционал…»

Ок, ответствует ему сэр Тестировщик, в твоем секторе, хм, тоже много красного. Впрочем, я туда ещё не добрался толком…

«Э, ты не то тестируешь! Ты найди мне все места, где вместо рендеринга страницы выпадает только белая страница, где скрипт не генерит контент!» — заявляет этот штырь.

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

Например, один из программистов постоянно закрывал кнопку ‘Register’ заглушкой ‘#’, и забывал к вечеру перед сдачей проекта эту заглушку снять. А чего там проверять регистрацию, ей-богу. Её уже когда-то проверяли.

Другой постоянно оставлял на экране в неожиданных местах строки типа ‘hzhzhzhzh’ – ну просто для того, чтобы ориентироваться, в каком месте должна выводиться информация, которую подкачивал его скрипт.

Тест-кейсы в этой кутерьме совершенно не требовались.

В общем, руки у сэра были, но очередной кино-кадр эти руки к плинтусу прибил. Тестирует сэр Тестировщик очередной проект, разумеется, поднятый на машинке программиста на Tomcat-сервачке. И что-то там нашлось, мелкое, стилистическое. А программист-демон этот баг взял и моментально исправил. А сэр Тестировщик ж не знал! У него ж ВНЕЗАПНО все страницы проекта лишаются ёб*** стилистического оформления! Поскакал сэр Тестировщик к этому волшебному кадру, и начали они три дня и три ночи общаться друг с другом на грамотном румынском языке с применением русской блатной фени:

— Достопочтенный сэр Пеньтьюм, можете ли вы объяснить, в чём проблема?

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

— Но позвольте, уважаемый сэр, в текущем состоянии продолжать тестировать проект не представляется возможным. Не соизволите ли вы откатить изменения к предыдущему состоянию?

Ой, а я ж не знаю, как это сделать, я же уже не помню, какие изменения я сделал.

— А svn на что нам был даден небесным подарком свыше?

А кто этот джентльмен, Эсвээн? Я его не знаю.

— Что ж, достопочтенный сэр Пеньтьюм, имейте хороший день!

Совершенно рассвирепев, сэр Тестировщик переключился на другой проект, и за один час нашел там 22 крупных багов. Из них восемь вообще уж гугенотско-критикальных. Снова оседлал он своего Росинанте, и поскакал к менеджеру этого проекта, и сообщает, мол, девушка, на твоём проекте баги же, баги! Ёб*** б*** с*** баги!

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

— А до этого они на каком языке писали?

Кажется, на C++, я точно не знаю. Они сейчас учат Java, и заново переписывают проект по-новому. В третий раз.

Йоговское состояние «ahooy» вам знакомо? Сэр Тестировщик познал его сполна…

Полностью несгибаемый тестировщицкий дух был сломлен на той же неделе, когда сэр Тестировщик открыл в браузере очередной проект портала по продаже картинок через мобильные телефоны, поднятый на всё том же Tomcat-сервачке. А картинки эти оказались порно-картинками. Ну, что ж… Но понад всеми этими порно-картинками красными буквами совершенно вне дизайна было крупно написано «Liudochka, eu te iubesc!» («Людочка, я тебя люблю!»).

Сделал сэр Тестировщик скриншот этого признания, и понёсся к менеджеру этого порно-картиночного проекта с тревожным донесением. Парень очень оживился:

А, это нормально, это я написал привет моей новой девушке, я недавно влюбился, хочу жениться. Видишь, ее фотография первая в галерее… Сейчас я эту надпись сниму, не заводи это в Jira, это не баг…

Не стал сэр заводить это в Jira. Дело в том, что в тот же день семеро программистов с утра на работу не пришли, и вопросы о проекту, которым они заведовали, оставались нерешёнными. ВНЕЗАПНО они появились, все в костюмчиках с галстучками. Это было действительно эффектно, с ихними-то рожами…

— Вы где были?

А, мы экзамен на бакалавра сдавали…

С какого-то времени в Молдове можно поступать в высшее учебное заведение только при наличии первой ученой степени — бакалавр. Экзамен на эту степень принудительно держат все великовозрастные лицеисты. Но в те доистерические времена в вузы ещё принимали абитуриентов без «бака», однако в течение первого года обучения такие студенты были обязаны отдельно подготовиться и все-таки сдать экзамен на бакалавра, чем наши программисты в тот день и занялись. Атестат зрелости, значит, получили. Мужики, значит, восемнадцатилетние. Они изменят мир.

Вскоре на дежурный вопрос «Как дела у нас в отделе тестирования?» сэр Тестировщик искренне ответил «Очень плохи дела», и был он полностью прав, бо там всё было плохо.

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

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

А что ты знаешь про лютые фэйлы, а, ${username}?

Баллада о былинном фэйле: 7 комментариев

  1. Wolonter

    Хм.
    Процессы.., без человека с револьвером и средне-специальным образованием тоже никуда.
    Тестировщик.. да и не тестировщик даже, а образ собирательный, обезличенный.
    Попал как-то он — в другую команду.
    Опытных программистов в команде было не меньше половины. светлы лицом, умны и добры были программисты, новому открыты. гитом пользовались. Непрерывную интеграцию одобряли. И были процессы. Процессы, которые не просто указатели на дороге, но сугубо рельсы стальные.
    Проблема была только одна. 9 ошибок после релиза клиенты находили.
    И воскликнул тестировщик — будет отныне тестирование перед релизом.
    И было оно. И таски в JIRA помечались нужной версией. И не выпускали релиз, не починив их все. И находили клиенты после релиза… ну скажем 10 ошибок.
    И молвил тестировщик — да будет тестирование фичи после слияния ее с основным кодом.
    И случилось это, ни одна фича не проходила мимо зорких глаз его.
    И нашли клиенты после релиза… ну скажем 12 ошибок.
    И изрек он — да будет тестирование перед коммитом в основной код, да на стенде разработчика. И стало слово его — делом.
    И нашли клиенты после релиза… ну скажем 8 ошибок.
    И приказал тестировщик всем смертным работающим на проекте писать все свои дефекты и мысли в JIRA и дублировать в вики и в постановки (да, постановки там тоже были). И помнить о трассировке с версионированием. И наполнилась JIRA и вики данными полезными.
    И нашли клиенты после релиза… ну скажем 9 ошибок.
    И возопил он — да будут тесты автоматические и приведут нас к покрытию кода полному. Загудели сервера, нагрелись процессоров сотни, гоняя CI непрерывно и осветили тесты каждый уголок приложения.
    И нашли клиенты после релиза… ну скажем 13 ошибок.
    И произнес тестировщик — да не будет релиза без кода, статическим анализом благословленного, И станет каждый программист честен душой перед инквизицией и не загубит ни единого теста и починит сам тесты и напишет новые. И писали тесты программисты… а дальше даже аналитики кейсы писать начали, да не опосля, а заранее.
    И нашли клиенты после релиза… ну скажем 10 ошибок.
    И сказал тестировщик, грустно глядя на все это: Какого, б@#$%ь, хрена?
    И снизошла на него благодать и подсказала ему мысль: Ты, клоун, хоть утестируйся, а программисты от этого лучше работать не станут. И семь этапов тестирования от работы по проектированию взаимодействия, продумыванию архитектуры и управлению программистами никогда и никого еще не спасали.

  2. Алексей Лупан

    Я знавал одного кадра 9х12, который управлял вот такой вот компанией студентов-программистов, особо не врубаясь в то, что они делают.
    Он руководствовался идеей о том, что «Мы не говорим нашим работникам, что и как делать, мы нанимаем лучших и делаем то, что они нам говорят делать» и видел свою миссию в том, чтобы «присматривать за порядком» перед лицом владельца бизнеса.
    Это была вторая работа у этого чувака. А его первая работа была «менеджер на этаже в гостинице». Карьера его была построена в той гостинице с нулей. Программисты или портье с горничными — какая разница-то? Отличный незамутненный взгляд…

  3. Victor Dulepov (vicd)

    » Ты, клоун, хоть утестируйся, а программисты от этого лучше работать не станут.» — ППКС.
    «А борьба за качество? Кому объяснишь, что нельзя сначала производить продукт, а потом начать бороться за его качество? Что такое сыр низкого качества? Может, это уже не сыр? Или еще не сыр? Это сыворотка. А сыра низкого качества не бывает. И велосипед низкого качества – не велосипед. Это все дерь… сырье! Которое должно стать велосипедом.»
    Непереводимая игра. М. Жванецкий, 1986 г.

  4. alexsoftdev

    > Ты, клоун, хоть утестируйся, а программисты от этого лучше работать не станут.
    Именно на этом этапе QC переходит в QA, если я не ошибаюсь. Но тут я вижу что QA уже наступил – есть и автоматические тесты, и статический верификатор, и ограничения по комитам. А это довольно неплохая предпосылка к тому, чтобы понизить количество багов. И если их число не понижается, то пора пойти не от того “как правильно и круто делают в мире”, а от конкретных проблем.
    Т.е. взять тот же кайдзен с его любимым “задать 5 вопросов “почему возникла эта проблема”» и выявить ее корень.
    Например у меня все знают про правила работы, которые красными буквами в вики прошиты. Но это совершенно не мешает их однажды бездумно нарушить и начинается непредсказуемое. Тут уже больше административные меры нужны. Повесили тихонько контроль отработки того же статического верификатора на посткомит и по рукам, если выявлены проблемы. А лучше сразу паяльником. А злостных нарушителей и вовсе с пляжа.
    А еще вполне может оказаться что используемые методики не покрывают найденных клиентами ошибок. И тогда нужно думать не “чего бы еще такое внедрить”, а “чего внедрить такого, чтобы выловило конкретно эту ошибку”.
    Ну и в завершение. Да, после внедрения десятка методик повышения качества процесса клиенты все еще находили баги, причем в том же количестве. Допустим. Но осмелюсь предположить что и проект тоже рос. А другое и не бывает 🙂 И давайте теперь подумаем сколько было бы ошибок, если бы не были внедрены вышеописанные методики качества? Может быть к этому времени их уже было бы не “допустим 10″ а “допустим 100″ ? или “допустим 1000″ ?

  5. Алексей Лупан

    В темной глубине гостинного зала были слышны бряцанье цепей и завывание душ невинно убиенных тестировщиков…

  6. alexsoftdev

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

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.