Добрый день.
Баги и дыры; качество ПО; архитектура систем и разработка приложений; тестирование и тестировщики; инструменты автоматизации и модульные тесты; эпизоды.
Баги и дыры
• Компания Intel опровергает слова своего директора Пола Отеллини о том, что операционная система Microsoft Windows 8 будет содержать огромное количество
ошибок.
• История о том как баг в программном обеспечении шахматного компьютера Deep Blue помог обыграть Каспарова.
• Что могут рассказать дампы приложения, или к каким последствиям может привести overclocking.
• Подумаешь, Oracle! Был бы хакер, а дыра найдется.
• Интерактивные телефонные системы являются отличной мишенью для хакеров, извлекающих конфиденциальную информацию с помощью фонетических атак.
• Jeff Atwood о компьютерной безопасности: “Don’t waste your time developing ninja level hacking skills, because computers are not the weak point. People are.”
Качество ПО
• Качество продукта через управление проектом: что конкретно делать менеджеру.
• Gerald Weinberg полагает, что качество относительно: “In short, the definition of quality is always political and emotional, because it always involves a series of decisions about whose opinions count, and how much they count relative to one another“.
Архитектура систем
• История о том как сервис Wordpress.com решил проблемы с балансировкой нагрузки, перейдя с Pound на Nginx.
• Как обеспечить уникальность ключей в масштабируемых информационных системах с распределенными серверами баз данных?
• Spanner – новая распределенная база данных от Google. Подробности реализации.
• Brent Ozar рассказывает о переходе сервисов StackExchange c SQL Server 2008 на SQL Server 2012 и трудностях на этом пути.
• Jeremy Zawodny считает, что часть действий по восстановлению системы после отказа (failover) можно проводить вручную.
• Grig Gheorghiu рассказывает о трех ключевых моментах, которые нужно учесть при размещении информационной системы в облаке.
• Архитектура и принципы построения масштабируемыех информационных систем: балансировка нагрузки, кэширование, параллельная обработка и другие решения.
• Производительность клиентской части web-приложения: уроки, извлеченные при разработке сервиса Tuenti.
• Почему инженеры Facebook отказались от использования HTML5 в своем приложении для iOS. Ответ от 37signals.
• Миллион транзакций в секунду на железе со стоимостью 5 тыс. долларов: выбор правильных ингредиентов и архитектуры.
Разработка приложений
• Создание, реализация и установка Java-приложения для Facebook в системе Google App Engine.
• Software Development Game: еще одна методика разработки программного обеспечения, призванная помочь каждой команде найти свой уникальный путь к впечатляющим результатам.
• До каких высот в извлечении информации из HTML-страницы можно подняться, если решать задачу в лоб.
• Хорошо то, что хорошо кончается: проблема вирусов на Windows-системах решалась заменой систем на новые.
• Руководство по разработке компьютерных игр с учетом индивидуальных особенностей игроков.
• Wicked Good XPath – возможно, самая быстродействующая реализация XPath в JavaScript.
• Dependency Injection: объяснение концепции и примеры использования.
• Новости в разработке web-приложений: технологии, инструменты и библиотеки.
• Opera Mobile Emulator и Firefox Command Line помогут в разработке и отладке web-приложений.
• PonyDebugger: инструменты для отладки iOS-приложений. Краткое введение и примеры использования.
Тестирование и тестировщики
• Michael Bolton и James Bach делятся своими взглядами на процесс разработки программного обеспечения (1, 2, 3).
• Scott Hanselman призывает относиться к баг-репорту со всей серьезностью: “A bug is the pain that hurts the user and keeps hurting as they report it! A good bug report is a gift that keeps on giving and we should treat it as such“.
• Alan Faulkner, Test Engineer в Google, рассказывает о своей работе и особенностях организации тестирования в Google.
• Тестирование web-сайтов в браузерах, запущенных на игровых консолях всех мастей.
• Мухи отдельно, котлеты отдельно: рутинные задачи в тестировании должны охватываться автотестами, а не ручным трудом, иначе будет дорого и смешно.
• Две статьи в сентябрьском выпуске MSDN Magazine: что нового в Microsoft Test Manager 2012 и подходы к процессу тестирования в общем цикле разработки приложений.
• Rikard Edgren рекомендует инструменты SFDPOT и CRUCSPIC STMP, которые помогут выяснить, что именно нужно проверить в том или ином приложении.
Инструменты автоматизации и модульные тесты
• Mock-тесты с помощью PHPUnit: подробный разбор полетов.
• Автоматизация тестирования Android-приложений: концепции, приемы, инструменты.
• Catherine Powell об автотестах: “Automate as much as you can as low as possible“.
• Adam Goucher выкладывает ссылки на публикации по различным аспектам тестирования ПО: 1, 2, 3, 4>, 5.
Разное
• Навыки TDD помогают не только в разработке приложений, но и в частной жизни.
• Хранение информации: какие данные умещаются в терабайт, петабайт и другие величины космических размеров.
• Памятка администратору СУБД и не только: признаки необходимости сменить место работы и практические советы на этом пути.
• Kendra Little делится секретами создания сногсшибательного резюме для IT-специалиста.
Эпизоды
Т1. Мы можем найти только поверхностные баги, потому что все найденные баги – поверхностные.
Т2. Мы не можем найти серьезные баги, потому что все ненайденные баги – серьезные.
Т3. Следствие: серьезных багов все равно не найти, а за поверхностными гоняться смысла нет.
Т. Извини, не узнал.
Б. БАГатым будешь!
М1. Мур, мур, мур!
М2. Заигрываешь с подчиненными? Пугаешь уголовным розыском?
М1. Нет, это Мудрые Управленческие Решения!
ТM1. А что если программистов и тестировщиков оценивать по количеству найденных багов?
ТM2. У первых премию отнимать, вторым добавлять?
ТМ1. Одним кнут, другим пряник!
Спасибо за внимание. До встречи!
Что такое качество программного обеспечения и как его улучшить: теория и практика, задачи и решения, подводные камни и обходные пути.