Январская лента: лучшее за месяц

Из ленты: OpenQuality.ru

Добрый день.

 

В выпуске: баги и дыры; архитектура систем; разработка приложений; тестирование ПО и тестировщики; процессы; победы и поражения; эпизоды.

 

Баги и дыры

 

• Функция округления возвращает неверный результат? Протестируйте её на всех возможных числах типа float (четыре миллиарда чисел). Тестирование займёт всего полторы минуты.

• История одного бага, проявлявшегося при передаче SMS-сообщений: картина маслом, анализ, извлеченные уроки.

• Баг в Twitter: как увеличить количество последователей в своем аккаунте путем простейших манипуляций из другого аккаунта.

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

• Бразильский инженер по компьютерной безопасности с легкостью находит уязвимости в сервисах Google и Facebook.

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

• Главная страница Yahoo! заразила миллионы компьютеров: встроенный код за несколько дней превратил миллионы компьютеров в машины для получения электронной криптовалюты.

• Авария разгонного блока Centaur в 1999 году: разбор полетов.

• Баг может быть настолько удобным, что пользователь может попросить его оставить.

• Старый баг борозду испортит, или история с одним интернет-магазином.

• Scott Hanselman приводит удручающие цифры по потреблению ОП современными браузерами и ищет альтернативу.

• Try/catch: мое приложение никогда не упадет, и о его ошибках никто никогда не узнает.

 

Архитектура систем

 

• Bitly.com: 10 индикаторов, которые нам нужно было отслеживать в своей системе.

• Ренессанс в eBay: гигант индустрии бросает все яйца в корзину JavaScript и радуется полученным результатам.

• Архитектура NYTimes: система на базе RabbitMQ будет функционировать даже при отказе отдельных компонентов.

• Facebook: выбор Mercurial в качестве системы контроля версий и ее масштабирование. Бонус: сравнение систем хранения версий в Google и Facebook.

• Критика Facebook: социальная сеть нуждается в коренном пересмотре алгоритмов работы чтобы в большей степени соответствовать паттернам человеческого общения.

• Способна ли технология iBeacons кардинально изменить наше взаимодействие с окружающими миром и открыть новое поле деятельности для разработчиков?

 

Разработка приложений

 

• Optional parameter missing: в чем может причина такой парадоксальной ошибки?

• TDD: что такое хорошо и что такое плохо в изложении и применении популярной методики разработки ПО.

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

• Как создать простое приложение, работающее с Node.js, в соответствии с практиками TDD?

• JavaScript: что такое хорошо и что такое плохо.

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

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

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

• Что произойдет, если в вычислительном кластере каждый работник (node) возомнит себя менеджером (hub)?

• Программный код, мелькающий в художественных фильмах: от “Девушки с татуировкой дракона” до “Социальной сети“.

 

Тестирование ПО и тестировщики

 

• В блоге опубликована заметка “WebDriver, PageObject и динамические локаторы“.

• Хороший онлайн-инструмент для анализа аргументов вызова утилит в Unix.

• Модульные тесты: несколько полезных советов.

• Gabriel Schenker рассказывает об организации тестирования приложений, работающих на базе AngularJS.

• Регрессионное тестирование: краткое пособие для начинающих.

• Steven Lott отказывает в доверии ручному тестированию: то, что называют ручным тестированием, либо не нужно, либо тестированием не является.

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

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

• Michael Bolton призывает не успокаиваться на ожидаемых результатах тестов, а спрашивать себя: “Это ожидаемые результаты, или же результаты, которые я хочу“? И еще один пост на эту тему.

• Компания Google помогла устранить более тысячи проблем в исходном коде проекта FFmpeg: подробности процесса тестирования и найденные ошибки.

• Тестирование ПО в Google: прежде чем предлагать продукт широкой аудитории, поработай с ним сам.

• Обеспечение качества: король умер. Да здравствует король!

• Если с помощью модульного теста был обнаружен серьезный баг, нужно избавиться от модульного теста.

• Michael Bolton сравнивает тестовые сценарии с железнодорожными вагонами, вскрывает их недостатки и предлагает альтернативу.

 

Процессы

 

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

• Что такое DevOps и как этот подход преобразует взаимодействие между разработкой, тестированием и обслуживанием продукта.

• Разработка, сборка и тестирование в Google: взгляд с высоты глазами инсайдера.

• Автоматизация может полностью избавить от рутинной работы. Или не оставить времени ни для чего другого.

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

• SCRUM: принципы, роли, спринты и другие артефакты (краткое введение в тему). Бонус: пользовательские истории – это вам не шухры-мухры.

 

Победы и поражения

 

• DuckDuckGo рассчитывает откусить от пирога Google за счет анонимности, отказе хранить любую пользовательскую информацию и использовать фильтрацию.

• DuckDuckGo: наши руки чистые, так что ищите вместе с нами.

• История одного стартапа: даже успешный продукт не гарантирует процветания его создателям.

• Истории заката 51 стартапа: разбор полетов и извлеченные уроки.

• История одного стартапа: два года работы, 300 пользователей, нет прибыли, извлеченные уроки.

 

Разное

 

• Если Дилберт не перешел на новую работу, это означает что он середнячок и никому особо не нужен.

• Горячие головы способны предсказать разрушение основ мироздания по динамике запросов в Google.

• События прошлого через призму стандартных операций в Git: живи Мартин Лютер в наши дни, работа над собственной доктриной была бы и проще, и сложнее.

• Размещение контента на web-страницах: прошлое, настоящее и будущее.

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

• Список вопросов потенциальному работодателю со стороны потенциального сотрудника (программиста).

 

Эпизоды

 

http://openquality.ru/episodes/241
 

Р. Не ходи туда. Тебя там ждут неприятности.
Т. Ну как же туда не ходить? Они же ждут.

 
http://openquality.ru/episodes/242
 

М. Ты вчера сказал, что баг будет исправлен завтра. Но завтра уже наступило.
Р. Я так и думал, что завтра ты скажешь, что исправить баг нужно было вчера.
 

Всего доброго в последний месяц зимы.

Источник