пятница, 29 августа 2014 г.

Урок 4. Слайд 142-145

Какое-то такое лето:
 Поехали:

Слайд 142
Добро пожаловать на 4 урок.

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

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

Слайд 144
У нас есть две основные ссылки, одна Brian Marick о злоупотреблении инструментами структурного покрытия кода и одна моя, описывающая альтернативы структурному покрытию.

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

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

вторник, 26 августа 2014 г.

Урок 4. Введение

Домашний рабочий стол моего дяди. Боюсь представить, что у него в мастерской:



Поехали:

Урок 4: Основы программирования и покрытие
Урок 4 познакомит вас с несколькими темами из основ вычислительной техники, такими как:
  • Как компьютеры хранят числа и текст. Что значит переполнение хранилища данных.
  • Как компьютеры совершают арифметические операции. Основы бинарного хранения и вычисления. Природа арифметики с плавающей точкой.Почему плавающая точка вносит ошибку на этапе проектирования. Почему тестировщики должны знать об этом и не позволять делать из себя дураков, заявляя, что крошечная ошибка в вычислениях с плавающей точкой является багом.
  • Основные типы данных. Мы изучим только их название и основные факты (включая примеры того, как По может некорректно работать с этими типами данных).
  • Основные структуры управления в программах. Структура управления это способ, с помощью которого программа переходит от выполнения одного участка кода к другому. Мы включим сюда прерывания и исключения и несколько примеров ошибок.
Это основной словарь ПО. Большинство программистов ожидают от тестировщиков понимания этих терминов и концепций. Многие баги проще понять, если вы  знакомы с этими концепциями. Многие вопросы программистов по багрепортам будут вам неясны, пока вы не знакомы с этими концепциями хотя бы на базовом уровне.

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

Одна из наших целей - увеличить уровень компьютерной грамотности тестировщиков. Другая - создать мост между материалами урока 3 и более техническими уроками 5 и 6.

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

Многие из этих дискуссий о полноте и завершенности тестирования сфокусированы на структурах управления ПО. Например, покрывают ли ваши тесты все состояния ПО? Каждый путь пройден? Эти вопросы формально описывают структуру программы. Вы не поймете, о чем говорят люди, пока не узнаете о основных структурах управления ПО. Вы не сможете оценить и измерить вашу работу, не сможете объяснить, эффективно ли вы работаете, пока не знакомы с ними.

Список литературы.
Обязательная:
Kaner C. Software negligence and testing coverage
Maric B. How to misuse code coverage

Рекомендуемая:
Goldberg D. What every computer scientist should know about floating-point arithmetic
Kahan W. Интервью со старым человеком о плавающей точке.


понедельник, 25 августа 2014 г.

4 Этап велосипедного Кубка СпортЭк 2014

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

Не спеша добрался до места, погода не огорчала, но и не то, чтобы совсем радовала:
Прибыл одним из первых, к началу регистрации, получил номер (и скидку в спортэк на 25%) и сел загорать и смотреть на участников.


А дальше началось удивление и острое ощущение того, что я попал не туда.


Я один из немногих кто приехал на велике, а не на авто.
Каждый четвертый велосипед найнер.
Велосипедов без контактных педалей я видел всего несколько штук - у одного дедушки и паренька на бэмике, который крутился у финиша.
Ехали с рюкзаками человека два-три, один из них - я.
Человек у 10-15 не было формы в облипочку.

Между тем - время к старту.


Для справки, всего стартовало примерно 90 человек.
Мой трек.
Я предусмотрительно пропустил почти всех вперед, но стартанул все равно достаточно бодро. За моей спиной остались несколько женщин, детей и пенсионеров.
Тем не менее, как раз темп старта меня и подвел - пытался на адреналине гнаться за теми, кто ездить умеет и сдох раньше срока.
К середине дистанции меня обогнали дети, затем пенсионеры и женщины.
Еще один момент - такой трассы как на этом фото было не больше четверти:

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

Чуть дальше середины круга мимо меня пролетело что-то красно-бело-грязное. Так я познакомился с абсолютным лидером гонки и одним из чемпионов России - Антоном Степановым. Прошло прилично времени и пролетели еще двое. Ближе к финишу заканчивающие второй круг быстрее, чем я свой первый пошли уже плотнее, всего человек 15-20.
Но за километр до конца круга я встретил и героически обогнал пару ребят, которые несли велосипеды в разобранном состоянии - и они меня вроде бы не обгоняли. То есть пешеходов, которые несут велосипед я еще способен обогнать на такой трассе.

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


Березовский, тропа здоровья и пески

В субботу катался в Березовский - было у меня в культурной программе посещение песков и тропы здоровья:

Тайная тропа, по которой я мылился добраться до места мимо тракта, порадовала примерно такой картиной:
В связи с чем я убоялся и поехал как все нормальные герои - в обход, через тракт.
Пески посетил. Их действительно дофига. До красивой панорамы переться было влом, поэтому пруф такой:

А вот тропа здоровья порадовала сильно. Пять километров асфальтовой дорожки в сосновом лесу, вокруг скамейки, лыжные трассы турники. Левую пососу дорожки облюбовали мамы с колясками, правую - бегуны. Есть даже пруд, не знаю, как там с купанием:

Расставлены статуи. Лось:
Медведь:
В среднем дорожка выглядит так:
Примерно там я присел отдохнуть, после радостной поездки на пески велосипед выглядел примерно так:
И я примерно так же.
Как водится, трек.

пятница, 22 августа 2014 г.

Урок 3. Слайд 139-140

Прекрасный выходной день, который я устроил себе посреди недели прошел совершенно бездарно.
Выехав утром с твердым намерением намотать на колеса не менее, чем 70 километров, услышал достаточно громкий и звонкий стук в районе заднего колеса.
Перевернуть велосипед и покрутить колеса результата не дало. Опытным путем выяснилось, что стук только на свободном ходу и под нагрузкой в виде моего веса, в других условиях не воспроизводилось.
Сделав сложную рожу я тут же решил, что полюбому дело во втулке. Или в подшипнике. Короче, раз я не вижу, что стучит, значит оно унутре. Короче все равно к мастеру.

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

А еще посетила мысль - а может ну его нахрен это тестирование? Устроиться в сервис... Правильно понятое место под солнцем позволяет занимать это место бесконечно, хм.

Поехали:

Слайд 139
Теперь о экзаменах.

Слайд 140
Это видео используется во многих различных курсах. Я буду говорить только о тех, о которых я слышал в Флоридском техническом и в ассоциации тестирования ПО. В рамках этих курсов мы публикуем инструкцию по обучению, содержащую все вопросы, которые могут быть на экзаменах. Мы также включили ссылки на документы в которых содержится описание эвристик, которые помогут ответить на экзамен в виде эссе и два видео, объясняющие, как мы классифицируем их.

(прим. переводчика, дальше рассказ о том, как проводить экзамен, дни, сроки и т.п.)

Слайд 141
Пустой.

На этом заканчивается 3 урок.

среда, 20 августа 2014 г.

Метафизики пост

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

Кстати, если вы забыли, вот список законов Мерфи, без следствий:
  1. Всё не так легко, как кажется.
  2. Всё тянется дольше, чем можно ожидать.
  3. Если некоторая неприятность может произойти, то она обязательно произойдёт. Более того: если могут случиться несколько неприятностей, то они все обязательно случатся и притом в самой неблагоприятной последовательности.
  4. Если четыре причины возможных неприятностей заранее устранены, то всегда найдётся пятая.
  5. Предоставленные сами себе события имеют тенденцию развиваться от плохого к худшему.
  6. Как только вы принимаетесь делать какую-то работу, находится другая, которую надо сделать ещё раньше.
  7. Всякое решение плодит новые проблемы.

понедельник, 18 августа 2014 г.

Прекрасного далека пост

Занятный текст, почитайте: Постъядерный мир Алисы Селезнёвой, или Как мы станем такими.

Кроме всего прочего там есть мысль:
Представьте себя в 1912-ом - закатном году XIX века (исторического, не математического). Спокойный, комфортабельный мир... Смогли бы вы сообщить этим людям что ближайшие полвека их не ждет НИЧЕГО хорошего - лишь войны, кровь и смерть? Они судят о нашем мире по вам - такому умному, интеллигентному, по Высоцкому - которого они услышали только от вас... И быть может они в свою очередь будут поражаться вашей внутренней свободе... Не задумываясь, как и какой ценой вы к ней пришли. Так что вы им расскажете?
Занятно, да.

пятница, 15 августа 2014 г.

Грустноты пост

Из Дредноутов Гришковца:
Если вы увидите матроса, стоящего на мачте и машущего флажками. Ясно же, что он машет не просто так. Он сообщает что-то важное, что-то страшное, трагическое. Может быть то, что враг уже близко, или что его корабль гибнет. Но, если вы не знаете системы этих знаков, вы никогда не поймете, что все это значит конкретно. Но сразу видно, что машет он не просто так. В нем тоже есть красота и сила знака. Так возьмите и просто, поверьте, что этот матрос сообщает что-то о любви. Что и он сам, и его флажки, и мачта, и корабль – все это знаки любви.
А гораздо лучше вот это:
- Бог, а секс без любви - это грех?
- Да что вы привязались к этому сексу, всё без любви - это грех!
А любят все по разному, вплоть до своеобразного, да.
Что-то в последнее  время все чаще напоминаю себе чебурашку, который ищет друзей, хм.

Из радостного - поговорили с чуваком из велосервиса, порешили, что сезон докатываю на Altus'е, а как начнутся дожди, будем закупать и ставить Shimano Deore, а если жаба не задавит, то и Shimano SLX. Хочу брать сразу комплектом:

среда, 13 августа 2014 г.

Урок 3. Слайд 138

Порекомендовали купить машинку для чистки цепи:
Увидев картинку, коллега тут же вспомнил текст песенки:
Фаллоимитатор 25 на 8
На пальчиковых батарейках
Он не предаст, и никогда не бросит
Его не заберут в армейку
Хм.
Поехали:

Слайд 138
Итак, позвольте подвести итог по оракулам.
Иногда программа ведет себя очевидно неверным способом. 
В таком случае, если мы можем описать поведение и распознать ошибку, мы можем зарепортить ее, не тратя много времени на раздумья.
Но в других ситуациях дефект сложно обнаружить, сложно распознать, объяснить. Если мы думаем об оракулах, как о надежных и твердых правилах, если мы вообще считаем оценку с помощью тестирования надежным и быстрым делом, то мы пропустим много серьезных проблем.
Оракулы тестирования дают нам больше свободы при ответах на нечеткие вопросы, больше возможности работать с подозрительными и нечеткими результатами, и позволяют создавать ситуации, которые могут быть потенциально проблематичными для кода.

вторник, 12 августа 2014 г.

Урок 3. Слайд 137

Поехали:

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

Картинка:

понедельник, 11 августа 2014 г.

Урок 3. Слайд 136

Поехали:

Слайд 136
Статистические модели интересны, так как они позволяют нам работать с выходом, который мог бы быть корректным, но который настолько маловероятен, что подозрителен.

Картинка:

Графомания

Пару дней охотился по подворотням и не очень за более менее приличными граффити Екатеринбурга.
Маршруты, раз:
Два:
Теперь, собственно, картинки. Около офиса, да ее, наверное, все видели:
Марки по московской, раз:
Два:
Три:
Четыре:
Стоянка у зеленой рощи:
По Фурманова:
Восточная:
Ленина, раз:
И два:
Валека, раз:
И два:
Гражданская:
Бажова, раз:
И два:
Генеральская:
ППМ:
Народной Воли:
Как-то так.
Больше по граффити кататься не планирую, но если найдете что-нибудь достойное - скидывайте.

Таватуйского отчета пост

Как и собирались, в субботу вкатали до Таватуя. Не все вернулись обратно, но обо всем по порядку.

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

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

И состоялось знакомство:
- Здравствуйте, меня зовут Паша и я из Контура
- Здравствуйте, меня зовут Игорь и я из Контура
- Здравствуйте, меня зовут Сергей и я не из Контура
...
И еще семь раз в таком духе.

Кстати, езда в такой колонне ничем не отличается от соревнования с секундомером, если ты едешь первым - как будто опять один. Вот только забывать не стоит, что ты не один - нужно постоянно руками обозначать свои намерения, так как ушлые велосипедисты так и норовят пристроиться паравозом, особенно на асфальте.

Грунтовка до Сагры - мое почтение - десять километров вниз, кочки, ямки, колеи - но в меру. Держали приличный такой темп. Остановка:
 Дальше - Сагринский торч, 120 метров вверх на 4 километра вперед, лично я чуть не помер.
Затем чуть меньше десяти км по относительно живой лесной тороге - горки, спуски, лужи - все как положено. И очередной прокол:
Потом началась сказка.
Полуубитая пыльная дорога идет вверх, по ней катимся подуставшие мы - еще с десяток километров широкой дугой и долгожданное озеро.
И тут внезапно от главной дороги в сторону - аккуратная грунтовочка меж сосен. Не пыльная. И не вверх. Вдумчиво смотрим на все мобильные карты, находим там подходящий вариант и принимаем классическое решение - срезать и проехать вместо 10 всего 4 километра.
Через полтора натыкаемся на такую картину в конце географии:
Причем дальше даже эта хреновина проехать не сможет. Сможет - эта:
И мы, само собой. Пешком. ну там недалеко.
Хотя вот такая картина должна была насторожить:
 Но отступления придумали трусы и мы поперлись пешком по дороге, которую, судя по всему, на днях проложил трактор с фото выше.
И, как и следовало ожидать, через километр - чистой воды болото. То есть серьезно, не везде можно даже просто стоять на месте - не спеша уходишь вниз. И по болоту - тропки. Кстати, много следов косуль.
Из интересного - попался противотанковый^W небольшой ров, благодаря которому мы устроили веселое метание велосипедов на дальность и точность:
Если я правильно помню, чувак с фото в желтой майке через треть секунды немного не добросит и упадет сам.
Итого - 5 километров по болотам, потерянный час и практически сдохший я. Остальные были всяко пободрее, а мне еще тренироваться и тренироваться, да.
Но зато уже через полчаса и одно погнутое колесо мы были у воды:
После часового перекуса, купания и возвращения в себя было решено разделиться на две группы.
Особо уставшие и неисправный велосипед едут до станции Таватуй и сливаются на электричке. А сильные духом шпарят обратно по тракту.
Итого ехавшие полный круг накатали 110км.
Я был в группе уставших (обязательно буду больше тренироваться). Мой трек - 63 км.

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