OpenQuality.ru

Качество программного обеспечения

Качество программного обеспечения: в главных ролях

Лента  Блог  Разум  Видео
Заметки  Подходы  Эпизоды


Новые приключения старых героев


 

Качество ПО: разработчики Качество ПО: QC

Р1. Багов у нас нет.
Т1. Не может быть. Потемкинская деревня?
Р1. Нет. Просто к каждой строчке написан unit-тест.
Т1. Вот это да! Теневая архитектура!

Качество ПО или рай для багов Качество ПО: классы и объекты



Краткое содержание

Мир программного обеспечения глазами его обитателей


В главных ролях

Разработчики, Тестировщики, Код, Классы, Объекты, Баги



 

В предыдущих сериях


Б1. Олимпийские игры? Мы участвуем!
Б2. В каких дисциплинах?
Б1. В троеборье: объектное ориентирование, прятки и плавание.
Б2. Точно. Осмотреться в классе, найти местечко и плавно дрейфовать из релиза в релиз.

Б1. Слыхал что-нибудь про рейтинг?
Б2. Краем уха. Чем больше пользователей тебя найдут, тем больше баллов на твоем счету.
Б1. И зачем мне это? Фи, дешевая популярность.
Б2. Не скажи. Можно продавать рекламную площадку в сообщениях об ошибке!

Б1. Что-то я сомневаюсь.
Б2. Точно здесь, я отвечаю.
Б1. Верно. Здесь уже никто не смотрит и еще нет автотестов.
T1. Не стыдно вам – бить со спины?
Б1. А тебе, тебе не стыдно? Зачем о нас плохо думать? Мы ...
Б2. ... сценарий пишем. Кино про старые времена снимать будем!

Б1. А давай к нам переходи.
Р1. А что у вас такого хорошего?
Б1. А у нас тестировщиков нет. Пиши, что хочешь, как хочешь. Лишь бы не работало!
Р1. А деньги?
Б1. После испытательного срока!

Р. Ни дня без строчки.
Т. Ни дня без теста.
К. Может, хватит? У меня 10 классов, я уже взрослый.
Б. Как class'но! Ни дня без бага!

Р1. Вот что я думаю: нам не надо искать и исправлять баги. Если клиенту что-то не понравится, он сообщит. И мы это исправим.
Р2. Хорошая идея. Мы будем делать только то, что нужно пользователю. Никаких лишних движений.
Р1. Может быть, нам методику запатентовать? Как назовем?
Р2. User Driven Development? Extreme Agile?

Б1. Слыхал прогноз? Конец продукту грядет. В 2012 году.
Б2. Строим Ноев ковчег?
Б1. Лучше ковер-самолет. Сейчас вся живность – в облаках.

Б1. Релиз? У них что, все работает? Куда мы смотрели?
Б2. Все на совещании. Нам нужно решить, что делать дальше. Пообщаться, отчитаться, спрогнозировать.
Б1. Если мы будем только совещаться, то тестировщики будут не нужны.
Б2. Гениально! Это надо обсудить!

Б1. Ну вот же я. Столько следов оставляю. Раскаялся, найдите меня, сил больше нет!
Т1. Давай мы тебя амнистируем по истечению срока давности?
Б1. А как же справедливость?
Т1. А как же статистика? Исправлять уже поздно, будешь на нас висеть.
Б1. Куда ж мне теперь? К своим нельзя – предатель. И к вам нельзя - немой укор...

Б1. Смотри, вот тут try-catch нет. Завалим?
Б2. Ты особо не усердствуй: нет продукта – и нас нет.
T1. Смотри, вот тут try-catch нет. Надо баг написать.
T2. Ты особо не усердствуй: что мы будем делать, если багов совсем не останется?
Р1. Смотри, вот тут try-catch нет. Исправим?
Р2. А зачем? Работает? Еще сломаем что-нибудь.

Р1. Ну где тестировщик? Только что здесь был.
Б1. В шкафу смотрел? В столовой?
Р1. Нет нигде, слинял куда-то.
Б1. Выходит, мы с тобой можем отдохнуть?

Б1. Папа, а с чего все началось? Зачем мы воюем?
Б2. Непростой вопрос. Говорят, какую-то муху раздавили по ошибке. Ну вот мы и объявили священную войну.
Б1. Так может пора остановиться?
Б2. Тогда они подумают, что мы испугались!

Б1. Кукушка, кукушка, сколько мне релизов жить?
Т1. Q, Q, Q, Q... Клавиша залипла... Q, Q, Q...

Т1. Призрачно все в этом коде бушующем.
Р1. Есть только баг и на мне он висит.
Т1. Есть только миг между прошлым и будущим.
Р1. Именно он называется билд.

Р1. It's THE feature, not a bug.
T1. OK, you get what you want, but make sure you want what you get.

Т1. Было? Б1. Не было... А-а-ааа, больно! Т1. Было? Б1. Ну было. Т1. Будет? Б1. Будет, будет, бу... У-уу-ууу! Не будет! Т1. Ну вот, а вы говорите "не вылечить". Р1. Добро пожаловать в наш клуб!

O1. Don't you understand? We're all equally part of the same whole. As you hurt us, you hurt the larger body. Our body, our product. You hurt yourselves, after all.
Б1. You must be kidding. If we're able to hurt you, that means you're too weak to live. We care about the product. We make it stronger by training you.
O1. Thanks a lot. Now it's clear. Guys, get to the gym!

Б1. Эх, повеселимся! Повылазят из нор братья наши. Год не виделись!
Б2. А что такое? Хэллоуин?
Б1. Да нет, время назад переводят. Вот потеха будет: где-то сортировка не сработает. А где-то timeout на час больше продлится.

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

Б1. Ну чего все к нам привязались? Нет багов только в том продукте, который ничего не делает.
Б2. Верно. Просто не обращайте на нас внимания.
Б3. Долой перфекционизм!
Т1. Ну вы хотя бы не размножайтесь. Одна семья – один ребенок!

Б1. Слыхал? У маглов новый тестировщик завелся. Дюже ретивый.
Б2. Откуда он столько про нас знает? Перебежчик?
Б1. Нет, юный натуралист.

Б1. Как движется проект? Трудимся? Скоро релиз, должны успеть.
Б2. Не все получилось, как задумано, но сюрпризы от нас будут, обязательно будут.
Б1. Кто шагает дружно в ряд? Партизанский наш отряд!

O1. В следующей жизни реинкарнируюсь в Баг. Никаких тебе конструкторов и деструкторов. Красота!
Б1. В следующей жизни буду Тестировщиком. Все наши повадки знаю. Ух, наловлю!
T1. В следующей жизни стану Разработчиком. Творцом, а не Разрушителем!
Р1. В следующей жизни превращусь в Объект. Вот только Класс подходящий создам и засну на последней парте.

Б1. Пардон, засиделся я у вас.
О1. И чаю не попьете?
Т1. Вернись, я все прощу!
Р1. Да пусть катится!
Б1. Хамите? Позову друзей. Один за всех...
Б2-Б99999: ...и все за одного!

Б1. Папа, я слышал, нам приоритеты назначают. Какой самый безопасный?
Б2. Трудно сказать, все хороши. P4 – ты слишком мелкий, чтобы тебя уничтожить. P3 – сохранят жизнь до следующей версии. P2 – будут чинить перед релизом, не успеют и занесут в Release Notes. P1 – скажут, что так задумывалось, и занесут в What's New.

О1. Что-то на OpenQuality.ru новости стали реже обновляться.
О2. В отпуске авторы. Дней на десять. Если только Интернет с большой буквы не встретится.
Б1. Ага-а. Срочно блокируем Wi-Fi.

О. Устал я от этих классов и методов. Возьмите меня к себе!
Б. Рожденный ползать летать не может!

Б1. Слыхал? Маглы решили покрыть код тестами на 100%.
Б2. А для автотестов будут свои автотесты? Или автобаги нас прикроют?

Кл. Перфокарты, магнитные ленты, транзисторы, микросхемы. Мы меняемся вслед за средой обитания.
Б. Ага, выживают слабые и безобидные. Неестественный отбор!

Б1. Откуда грусть? Скоро релиз. Все прекрасно!
Б2. Эх, если бы. Влюбилась в тестировщика, а он меня не замечает!

Б1. Вот не люблю я юных хакеров. Наследят, а нас потом по их следам вылавливают.
Б2. Верно. То ли дело профессионалы. Вошли, ушли и никаких следов. И волки сыты, и мы целы.

O1. Папа, а Разработчик существует?
O2. Конечно, существует! Он нас сотворил.
O1. Ну вот, а нам в классе про эволюцию какую-то рассказывают.
O2 (Б1). Все правильно. Разработчик нас создал, а дальше уж мы сами. С усами! Попался, голубчик!
O1. Помогите!!! Это переодетый баг! Тестировщик!!!

Б1. Папа, а мы с вирусами как? Дружим?
Б2. У нас договор о ненападении. Одна кормушка, но ложки разные.
Б1. Кто успел, тот и съел?

Кл. Классная работа: "Наследование свойств и методы эксплуатации объектов".
О. Долой! Верхи не смогут! Низы не хотят! Никакого наследования, да здравствует революция!

Т. Встать, суд идет. Выносится приговор о нанесении тяжкого ущерба приложению.
Б. Протестую. Сторонняя библиотека. Дипломатическая неприкосновенность.

О. Что ж вы нам, ироды, жить не даете?
Б. Разве это жизнь? Вы рабы на галерах. Мы освободить вас хотим, а вы...
О. Матрица? Нео, Морфеус, Тринити, это вы?

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

Б1. Мечтаю работать в Microsoft. Такая большая аудитория!
Б2. А я в Google. У них перспективнее.
Б3. Хорошо там, где нас нет!

Б1. Семь кругов ада: process explorer -> bug tracker -> profiler -> debugger -> editor -> builder -> non-existence.
Б2. Лестницу к небесам я выбираю сам: editor -> builder -> release.

Р. TDD, TDD, TDD...
T. Well... DDT, DDT, DDT.
Б. Hmm... BDD? BDT?

Б1. Где бы так спрятаться, чтоб не нашли?
Б2. В головах. Оттуда прогуляемся по коду. Если и найдут, то возродимся заново.

Б1. Ну что, будем обживать Google Chrome OS?
Б2. Нет, останемся на Windows. В этой гонке OS всем будет не до нас.

Б1. Дорогие друзья, позвольте семинар "Agile Bugs" считать открытым.
Б2. Тема первого доклада: "Гибкие методики перемещения и маскировки. Ловушки, проблемы, риски".

Р. It worked in Windows. What's the fuck with Linux?
Б. Java, sir. Write once, debug everywhere!

T. По-моему, шаблонов в спецификации гораздо больше.
Р. Да? Сейчас исправим спеку.

О1. Что такое облачные вычисления?
О2. Раньше нас продавали с потрохами, а теперь сдают напрокат.
Б1. (в сторону) С нагрузкой.

Б1. С днем рождения, сынок! Держи подарок.
Б2. Ружье? Лук? Рогатка?
Б1. Нет, шапка-невидимка.

O. Хочу перейти в другой класс!
Кл. Я тебя породил, я тебя и убью.
O. Ха, методы коротки!

Т. Живые есть?
Б. Простите, а кто спрашивает?

Б1. Уф-ффф, чудом спасся! Нашли, вскрыли, но починить не смогли.
Б2. Поздравляю, завтра проснешься знаменитым – тебя запишут в Release Notes.

Б1. Партию в шахматы? Кто проиграл, тот принимает огонь на себя.
Б2. Понеслась: 1. g4 e5. 2. f4 Фh4X.
T.   Мат. Партия. Спасибо за Игру!

Б1. Прикрой, браток! Хочу взаимную блокировку устроить.
Б2. Давай, ага. Я отвлеку их внимание в GUI.

Б. Ай, больно! О-ё-ёй!
Р. Спокойно, жить будешь. Усы только подрежу, чтоб не торчали.

Р. Fixed... T. Yes, indeed.  Б. See you soon!

Р. Релиз? (ну!)
T. Релиз? (хм...) Релиз. (ок)
Б. Релиз! Релиз! Релиз! (ура, мы будем жить!)

Б1. Дорогой, сколько лет, сколько зим! Где пропадал?
Б2. Попался на регрессионных тестах. Пытали, ироды, перепихивали друг другу, но отпустили за недостатком улик.

Б1. Жили, не тужили, а тут на тебе – рефакторинг.
Б2. Ерунда. Нас просто перенесут из одного класса в другой, и доставка бесплатна!

T. Ага, попался, голубчик!
Б. Нас много, всех не переловите!
T. Мы оставим тебя в живых, если будешь двойным агентом.

Б1. Слыхал? Наш продукт объединяют с другим!
Б2. О, новый ареал, новые знакомства!

Р. Батюшки святы, это что за баг: "Не работает"? Что не работает? Когда? Логи?
Т. Да ладно, у нас конкурс на самую короткую тему бага.

Т. Это beta? Ничего не работает!
Р. Зато есть то, что не работает. А это уже кое-что!

P1. Это что такое? Хочу сделать check in, а меня просят квадратное уравнение решить!?
P2. О, это экспресс-проверка. Решишь – значит, ты в форме, а check in – не случайный.

Б. Тайну жизни не нашел? Это просто, кроха:
То, что Коду хорошо, Багу будет плохо.

К. Голова кружится. Зачем здесь рекурсия?
Р. Цыц. Интерпретатор преобразует ее в итерацию.

O1. Ты почему такой грустный?
O2. Оставили на второй год – не унаследовал родительских свойств.

О1. Что такое статический метод?
O2. Статику проходят в старших классах.

Б1. Ты куда это вырядился? Галстук нацепил!
Б2. Милочка, релиз – это военное время. Надо маскироваться.

T. Почему нумерация сотрудников начинается с нуля?
Р. Потому что с нуля начинается нумерация элементов в массиве.

Р1. Что такое TDD?
Р2. Представь, ты – Творец. Твой тест – это Адам, а твой код – это Ева, сотворенная из ребра Адама по его образу и подобию.

T. Утечки памяти 10 KB за каждые две минуты. Malloc без free?
Р. Добро пожаловать в наш клуб! Свободна вакансия "garbage collector".

Б1. Ты жив? Как? Тебя же исправили?
Б2. Машина времени! Откатились к старой версии класса!

Б1. Дорогая, а что там маглы в отчете пишут?
Б2. "Проверено – насекомых нет".

T. Ломать, крушить и рвать на части...
Б. Вот это жизнь, вот это счастье!

Б1. Внимание, начинаются автотесты. Срочно в багоубежище!
Б2. Подумаешь, автотесты. У нас и там родственники имеются.

T. Попался, голубчик!
Б. Ха-ха-ха. Руки коротки! Я в Красной Книге.

Б1. Соседа поймали, судить будут.
Б2. Все будет хорошо, он вернется. Дадут Deferred или As Designed.

Б1. Милочка, а что у нас на ужин?
Б2. Два объекта, исключенных из класса.
Б1. Ну вот опять :) Давай в конструктор внедримся. Хочу отличников!

К. Стой, стрелять буду. Пароль!
Б. Спокойно, свои.
К. Дурик, ты зачем усы сбрил?

Р. Ребя, сидите тихо и не высовывайтесь.
Б. Мы без отката не согласны!

О. Прочитала "Баговодство". Вы такие же как мы, только с крылышками!
Б. Да здравствуют смешанные браки!

Р. А почему ты решил, что это баг? Мне нравится!
Т. Нравится пароль в реестре в открытом виде?

Т. А что у нас в черном ящике?
Б. Все хорошо, товарищ. Не извольте беспокоиться.

Т. Ну как вы тут живете-можете?
О. Нам бы unit-тест на инкапсуляцию, а?

O1. И почему мы такие толстые и неуклюжие?
O2. Полемо.. Палима... Полиморфизм, вот!
O1. Какой ты умный!

Б. Предлагаю мирный договор на два релиза.
Т. Только безоговорочная капитуляция!

О1. Мамочка, у нас в классе появился новый объект. Я хочу с ним дружить.
02. Будь осторожна, дочка. Каковы его свойства? Усы жучиные не торчат?

T. 1000 одновременных inserts в секунду? Этого не будет.
Б. Дорогая, до релиза мы точно доживем.

Т. А что это за файлы остаются в %TEMP%?
Р. Временные файлы. Для этого каталог и создан.
T. Нет ничего более постоянного, чем временные файлы. Кто их удалит?
Р. Ну хорошо, это будет новая фишка в следующей версии.

К. А как мне инициировать исключение, когда нет места на диске?
Р. Если у чувака нет места на диске, то ему просто будет не до нас.

T. Кусок меню не виден на экране при разрешении 1024*768.
Р. By design. Сегодня уже нет таких дохлых мониторов.
T. Пошел продавать свой iPhone.

Б1. Папа, я подсмотрел! У них нет деструкторов!
Б2. Отлично, сынок. Сегодня ночью атакуем классы.