четверг, 25 декабря 2014 г.

Урок 5. Слайд 252-254

Давненько не было переводов. Надо наверстывать.
Поехали:

Урок 252
Мы можем посчитать все возможные пути используя правила, которые мы изучили несколько слайдов назад.
Допустим, переменная V1 содержит все возможные пути от A до X. Их пять.
Теперь допустим, что переменная V2 содержит все пути от A до X, включающие петлю.
Их 25 если мы пройдем петлю дважды. Из 125 если мы пройдем петлю трижды.
Если у нас будет возможность пройти петлю 20 раз, то мы получим больше 100 триллионов последовательностей.

Урок 253
Очевидно, что все эти пути проверить нельзя.
Большинство людей проверит 5 путей от A до X. Затем добавит случай двадцатикратного прохождения петли по одному и тому же пути.
Этот тест проверит все ветви, все простые пути программы. Но будет ли его достаточно?
Допустим, у нас есть утечка памяти на определенном шаге программы. Если мы пройдем его 10 раз подряд, то программа упадет с переполнением. Если только мы не тестируем, используя мониторинг памяти, мы не заметим утечки, пока программа не начнет себя некорректно вести, например медленно работать или падать. И этот баг обнаружит только тест, проходящий через определенный шаг 10 раз. Тест, проходящий любое количество раз через другие шаги не обнаружит этот дефект.

Если у вас нет подозрений на утечку памяти, как много тестов вы проведете, пока не пройдете определенный шаг программы 10 раз и не обнаружите проблему? Их может быть очень много.
Позвольте мне усложнить ситуацию. Допустим на другом пути есть шаг, вызывающий очистку памяти. И он чистит память, утекшую благодаря багу.  Теперь программа упадет только в том случае, если мы 10 раз прошли по одному блоку и ни разу не прошли по второму.
Только небольшой процент из 100 триллионов тестов обнаружит этот баг, так что у вас должна быть или большая выборка или большое везение, чтоб найти этот баг.
Допустим, что случай еще более особенный и очистка памяти - наиболее вероятный путь использования программы.
Как вы думаете, в таком случае, вы вообще создадите тест, который сможет найти этот дефект?

Урок 254
Когда я задаю этот вопрос, студенты обычно отвечают "нет". Так говорят очень опытные и профессиональные тестировщики. Если вы говорите нет, что этот тест слишком сложный, слишком редкий и специфический, то вы в хорошей компании.
Итак просуммируем. Я показал вам, что вы не сможете проверить все возможные пути. И продемонстрировал случай, при котором, в теории, вы пропустите серьезный баг.
Но многие люди считают этот случай нереалистичным. Он никогда не случится в реальной жизни и представляет лишь академический интерес.
Отличный момент вспомнить правило о редких случаях. "Никто не будет этого делать" не означает, что никто не будет этого делать. Это значит "Никто, кого я сейчас могу себе представить не имеет причин, которые я сейчас могу себе представить, чтоб так сделать".
Тестирование - опыт скромности, оно раз за разом показывает нам, как на самом деле ограничено наше воображение.

среда, 24 декабря 2014 г.

Подарков пост

Комрады из сети подкинули идею для подарка.
Устремился и немедленно приобрел:

вторник, 23 декабря 2014 г.

Памяти пост

Конец года - время отдавать долги.
Сегодня отдал один долг.
Наконец сходил и починил часы, которые носил мой дед, а затем отец.
Теперь они у меня.

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

Представительскую функцию часов всерьез не воспринимал и, надеюсь, не буду.

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

А еще эти часы - прошедшее через полвека рукопожатие деда, которого я не видел.

Часы Слава, 21 камень, механизм 2414, если я не ошибся. Сделано в СССР.

суббота, 20 декабря 2014 г.

О книгах

Дочитываю Богадельню Олдей.

Не ахейский цикл, но тоже достойно. Кроме прочего, разница - в атмосфере.
Богоравные - под ярким солнцем, ихор вместо крови, гроза над морем.
Хенингцы не хуже, но уже немного устали.
И идет дождь.
Как-то так:

Скиталась осень в слепом тумане -
Дождь, град, и пуста сума...
Тропа вильнет, а судьба обманет -
Ах, в пути б не сойти с ума!

Иди, бродяга, пока идется -
Дождь, град, и пуста сума...
Луна упала на дно колодца -
Ах, в пути б не сойти с ума!

Грехи черствеют вчерашним хлебом -
Дождь, град, и пуста сума...
Хочу направо, бреду налево -
Ах, в пути б не сойти с ума!

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

Монах стращал меня преисподней -
Мол Мор, и глад, и вокруг тюрьма!
Монаху - завтра, а мне - сегодня!
Ах, в пути б не сойти с ума...

Господь Всевышний - моя опора!
Дождь, и град, и пуста сума...
Приют неблизко, покой не скоро,
Ах, в пути б не сойти с ума!..

К чему скорбеть о судьбе бродяги?
Дождь, град, и пуста сума...
Я гол и чист, словно лист бумаги, -
Ах, в пути б не сойти с ума!..

Мне нет удачи, мне нет покоя -
Дождь, и град, и пуста сума!
Пожму плечами, махну рукою -
Ах, в пути б не сойти с ума!..

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

среда, 17 декабря 2014 г.

Международных стандартов пост

Вот тут ребята шутят, позволю себе уточнить и дополнить:

Предлагаю при оценке сложности реализации архитектурных решений пользоваться международной классификацией
  • МКБ-10 R51 Головная боль
  • МКБ-10 I84.9 Геморрой без осложнения не уточненный
  • МКБ-10 I84.8 Геморрой с другими осложнениями не уточненный
  • МКБ-10 R98 Смерть без свидетелей
Вообще, с практикой архитектурных решений я познакомился немногим больше года назад и с тех пор крайне уважаю практикующие их коллективы и оставляющие на пути разработки артефакты подобного рода.
Жаль, что перечислить их можно по пальцам одной руки.

пятница, 12 декабря 2014 г.

Сомнений пост

Как думаете - выстрелит?
Я не знаю. Наверное, нет. Жаль.

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

среда, 10 декабря 2014 г.

Ненависти пост

Вот тут гражданин описывает как он шел к успеху.

И сперва советы относительно адекватные, но тут мы замечаем:
Чтобы зарплата росла быстрее, необходимо прыгать
однако после года работы в одной компании всё же есть смысл оглянуться по сторонам 
Это меня всего лишь насторожило, но чем дальше в лес...
Учиться лучше по туториалам, а не по книгам
... тем толще партизаны:
Для работы в Украине в ИТ профильное образование НЕ НУЖНО вообще
И финальное:
Но если ваша цель звучит приблизительно как «стать .NET\Java\Javascript разработчиком с зп 2500$+», то ни математика, ни С++, ни знания алгоритмов вам не нужны.
Здесь уже ничего не исправить, Господь, жги!

вторник, 9 декабря 2014 г.

Документированности пост

От коллег, прекрасное:

"То чувство, когда вики страничка по Тайному Санте полнее вики твоего проекта"

четверг, 4 декабря 2014 г.

Низкой эрудированности пост

Ну, как-то так:

Нужно больше читать. И верить людям.

вторник, 2 декабря 2014 г.

Наступающего будущего пост

Я один слоупок, а вы все наверняка уже слышали о функциональности Хрома "Окей, гугл".
Ну это штука, которая при активной вкладке поиска в гугле возбуждается на вышеупомянутую фразу и начинает искать ее.

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

Затем было установлено, что передачи данных не идет и распознавание именно этой фразы встроено в браузер, передача данных идет уже после произнесения фразы.

Тем не менее - на камерах есть прекрасная фича - горит красная лампочка, когда идет запись. Неплохо бы такое прикрутить и на микрофоны.

Ну и  еще одно замечание, гугл.
Сука - не мат.

понедельник, 1 декабря 2014 г.

Урок 5. Слайд 244-251

Лейтмотив этого месяца - hotfix driven development.

Поехали
Слайд 244-251
Все эти слайды - примеры покрытия веток.

Отличного фильма пост

Намедни был просмотрен фильм Предопределение, он же Патруль времени, в оригинале - Predestination.
Патрулирования, времени и прочей фантастики - в нем совсем немного. Весь фильм - игра всего нескольких актеров в не таком уж большом количестве декораций.

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

После просмотра захотел узнать, кто так лихо закрутил и тут же обнаружил, что фильм снят по рассказу Хайнлайна "Все вы, зомби". Это многое объясняет.

Само собой, рассказ тут же был прочтен. Сразу стало ясно что снимали с большим уважением к оригиналу, но не отказали себе в возможности немного переосмыслить.

Итого - фильм рекомендую к просмотру. Затем - рассказ к прочтению.