OpenQuality.ru

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

Записки охотника

• Martin Fowler: manual scripted testing should be a human rights violation. Есть две альтернативы: автоматизировать все что можно и/или в каждой сессии ручного тестирования идти нехоженными тропами.

• Почерк мастера. Дональд Кнут платил за ошибки, найденные в его программах TeX, Metafont и книгах об искусстве программирования. Вознаграждения удваивались каждый код (с $2.56 до $327.68), но большинство чеков остались непогашенными – люди оставляли их себе как сувенир.

• Этимология термина "жучок" (bug) намного прозаичнее эпизода с заблудившейся бабочкой, севшей на реле компьютера Mark II Aiken Relay Calculator. В 1848 году Томас Эдисон, описывая механические неисправности, записал: "Сначала работает интуиция и приходит озарение, но затем возникают трудности – вещь перестает работать, и тогда проявляют себя "жучки" – маленькие поломки и проблемы…" Очевидно, что этот термин уже был жаргонным во времена Эдисона (IBM developerWorks).

• Все-таки десятки различных дистрибутивов Linux – палка о двух концах. С одной стороны, это свобода выбора, но с другой стороны – нет эффекта синергии, когда результаты отдельных энтузиастов многократно улучшаются за счет совместной работы над проектом. Лебедь, рак да щука? Хорошо, что телега (ядро) одна.

• Смешанные чувства: заново найти баг, который уже находил три года назад. Оба раза детальные исследования, одни и те же результаты. За это время баг вырос, возмужал, его актуальность повысилась, а он ползает себе потихоньку среди десятков таких же счастливцев. "Как же так? У нас есть такой баг?" – "Ага, три года, уже совсем взрослый".

• Мелочная обида программиста: сидеть полночи, перелопатить кучу данных в поисках бага, последовательно отсекать разные гипотезы, пока наконец не проясняется, что дело в факторе X, на первый взгляд безобидном, чтобы утром, зайдя в почту, чтобы отправить об этом письмо, наткнуться на только что пришедшее, от product manager'а: "Да, кстати, я тут подумала, а не может быть, что наш баг происходит из-за X?" (C) avva.

• Работа хорошего тестировщика не сводится к поиску багов. Скорее, он специальный корреспондент или даже папарацци – найти "жареные факты" в приложении и представить их на суд общественности.

• За двумя багами погонишься – ни одного не поймаешь. Начинаем с самого грозного, второй далеко не убежит.

• Интересно, есть ли в архитектуре и строительстве инженеры по качеству? "Туда не ходи, сюда ходи", "Здесь у тебя крышу снесет".

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

• У "правильного" решения всегда есть один недостаток – скрытые риски. Если с "плохим" решением все ясно, то с "хорошим" возможны большие сюрпризы.

• Высшая точка в карьере бага – признание законной функциональностью продукта (It's THE feature, not a bug). Как багу взойти на пьедестал? Надежно прятаться до тех пор, пока уничтожить его не станет дороже чем оставить.

• Парадокс. С одной стороны, информационные технологии развиваются гигантскими темпами. Достаточно вспомнить ЭВМ "ЕС" двадцатилетней давности. С другой стороны, практически ничего не изменилось в методиках обеспечения качества систем. Та же неопределенность, те же риски.

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

• Your customers ... are not buying a product, they are buying your assurances that their expectations for that product will be met. You haven’t got anything to sell but ‘Quality’. (Source: John Guaspari, "I know when I see it" 1985, p77)

• Ведь нам нужна одна победа – мы за ценой не постоим. Пиррова победа в разработке ПО – выпуск продукта с коротким жизненным циклом. Мелькнул, засветился и канул в Небытие.

• У каждого бага своя судьба, своя биография. Баг, получивший "high priority" и "low severity", уничтожается мгновенно. Багу с "low priority" и "high severity" уготована долгая счастливая жизнь.

• Недалекий человек считает себя умным, а умный – недалеким. Какой тестировщик не считает себя великим программистом? Какой программист не знает, как правильно тестировать? Объективная самооценка еще никому не повредила. У каждого из нас есть время и пространство для роста.

• Нильс Бор: "Волновая функция описывает не атомный мир, а наши знания об атомном мире." Найденные баги не характеризуют функциональность продукта, но служат индикацией понимания его работы. Скажи мне твои баги, и я скажу, что ты знаешь о продукте.

• Даниил Гранин: "В науке ценен не вопрос, а ответ, его возможность... В искусстве важен не ответ, а вопрос, да такой, чтобы загнать в тупик, чем безвыходнее вопрос, тем он ценнее." Тестирование находится где-то посередине: вопрос-ответ, вопрос-ответ, вопрос-ответ.

• Забавно, что профессия тестировщика накладывает печать на его мышление. Трудно доверять системам бронирования билетов ("э, а как там у них с резервным копированием"), электронным платежам ("ничего потом не докажешь") и даже барышне на телефоне, которая записывает тебя к врачу ("Enter нажала?").

• Всегда ли поломка системы означает наличие бага? Есть сайт Гарри Поттера. Сайт простой, для общения друзей. Гарри держит сайт на самом дешевом тарифе. Про сайт узнают маглы и, сгорая от нетерпения, рвутся посмотреть. Service unavailable. Еще бы. Гарри и не рассчитывал на такую нагрузку.

• Интересно, есть ли будущее у ReactOS? На случай, если Microsoft прикроет Windows XP. Будем ли мы нахваливать Vista после выхода Windows 7, которую считают прорывом? Когда-то прорывом считали Vista...

• Чем сильнее прижимают сроки, тем меньше времени остается для вдумчивого, творческого анализа. И тем менее важным это кажется в такие минуты.

• "Я волком бы выгрыз бюрократизм". Маяковский еще монополизм не видел. Google в обязательном порядке переводит все feeds с FeedBurner на Google. Изумительная цитата: "Our vision when FeedBurner joined Google was to help bring the best of what FeedBurner offered in syndication publisher tools and solutions to the AdSense platform, and vice versa." Пустячок: а всем ли нужен AdSense? Обещают поддерживать редирект до скончания века, но лучше бы Google не трогал тех, кто пришел на FeedBurner не ради рекламы. Интересно, сколько времени понадобится Google, чтобы протащить рекламу в посты? Microsoft просто котенок по сравнению с Google.