Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Мастер-класс: 26-27 Апреля — экстремальное программирование. Разработка через тестирование(TDD) и гибкие методики разработки ПО

Разработка веб-сайтов
Экстремальное программирование в PHPCenter.ruПрактика создания модульных и приемочных тестов для web-приложений, использование SimpleTest и Selenium, практики ООП, облегчающие тестирование и способствующие формированию хорошей архитектуры приложений, использование мок-объектов и многое другое.

Мастер класс посвящен практическим аспектам внедрения разработки через тестирование (TDD), постоянной сборки (Continues Integration) и приемочному тестированию (Acceptance Testing) приложений, выполненных при помощи PHP.

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

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

Дата и место проведения:
26-27 апр. 2007 Москва, оборудованный компьютерный центр
Прошлые мастер-классы проводились в рамках PHPConf 2005,2006 и собрали более 40 разработчиков из ведущих ИТ компаний

P.S. В отличии от предыдущих мастер-классов ноутбуки уже не нужны ;-)
Всего голосов 21: ↑14 и ↓7+7
Просмотры3.2K
Комментарии 17

Паттерн Break (перерыв)

Чулан
Привет :)!

Нашел у Кента Бека в «TDD» один прекрасный паттерн: Break. Думаю, в равной степени он подходит как фрилансерам, так и офисным проффи.

«Что делать, если вы почувствовали усталость или зашли в тупик? Прервите работу и отдохните.

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

Иногда самого короткого перерыва достаточно для того, чтобы недостающая идея возникла в вашей голове. Возможно, вставая из-за компьютера, вы неожиданно нащупаете нужную нить: «Да я же не попробовал этот метод с пересмотренными параметрами!» В любом случае прервитесь. Дайте себе пару минут. Идея никуда не убежит.



  • В масштабе нескольких часов держите бутылку с водой рядом с вашей клавиатурой и время от времени прихлебывайте из нее. Благодаря этому естественная физиология будет подсказывать вам, когда и зачем необходимо сделать короткий перерыв в работе.
  • В масштабе дня вы должны хорошо отдохнуть после завершения рабочего времени.
  • В масштабе недели вы отдыхаете в уик-энд. И это наполняет вас силами и идеями, благодаря чему вы можете приступать к новой рабочей неделе. (Моя жена утверждает, что самые лучшие идеи возникают у меня вечером в пятницу.)
  • В масштабе года вы получаете отпуск, что позволяет вам полностью освежиться. Французы подходят к этому вопросу очень правильно — двух последовательных недель отпуска недостаточно. В течение первой недели вы сбрасываете с себя рабочее напряжение, а в течение второй недели вы подсознательно готовите себя к работе. Поэтому для того, чтобы хорошо отдохнуть и эффективно работать в течение всего следующего года требуется три, а лучше четыре недели отдыха.
»

ЗЫЖ Я не люблю хабракат. Это мой личный пункт: когда вечером читаешь хабра-топ Google reader'ом очень раздражает необходимость кликать на «читать дальше», переключать контекст, ждать пока загрузится страница и в итоге видеть Error 502: Bad gateway. Не пинайте, пожалуйста.
Всего голосов 17: ↑15 и ↓2+13
Просмотры301
Комментарии 11

Анти-паттерны Test Driven Development

Разработка веб-сайтов
Перевод
Я надеюсь, что как грамотный разрабочик, вы имеете представление о unit-тестировании и сделаете себе в голове пару мысленных отметок о том, чего надо избегать при написании тестов. Знакомьтесь:

Лжец (The Liar)

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

Читать дальше →
Всего голосов 111: ↑109 и ↓2+107
Просмотры18K
Комментарии 64

Тестирование JavaScript: Fireunit Screencast

JavaScript
Вчера, после прочтения поста Джон Резига, решил записать по горячим следам первый в своей жизни (это я к тому, что сильно ругать не стоит, а конструктивная критика приветствуется :) скринкаст.

Fireunit — это инструмент для тестирования javascript кода, созданный в виде дополнения к firebug'y Джоном Резигом в рамках его сотрудничества с командой firebug. На данный момент, он работает только под ff3+, firebug 1.2+.

Зачем же нужен такой инструмент тестирования, если он работает только в firefox?

  1. Fireunit позволяет тестировать очень интересные dom-события — события загрузки и готовности контента, завершнения отрисовки, вроде contentReady
  2. Вполне вероятно, что fireunit будет включен в состав (или, по крайней мере, его можно будет установить с) firebug light.
  3. Сама идея фреймворка тестирования, встроенного в браузер, является очень привлекательной. Вполне возможно, что производители других браузеров включат аналогичный инмструмент в свои продукты (как уже было с web inspector'ом для webkit, dragonfly для opera, developer toolbar для ie8)


Под катом само видео
Всего голосов 40: ↑39 и ↓1+38
Просмотры841
Комментарии 13

Оптимизация процесса создания unit-тестов

Программирование.NETC
Всем привет! Хабраюзер shai_xylyd написал статью про аспекты тестирования, где им были рассмотрены некоторые понятия и ценности TDD. В частности, он упомянул очень интересный способ создания первичных юнит-тестов — когда функциональный код пишется совместно с кодом юнит-теста, чем меня очень заинтриговал.

Дело в том, что я (как программист), нахожусь в состоянии переходного процесса между «классической» разработкой и разработкой test-driven, поэтому всякими способами ищу возможности упростить и сделать более естественной последнюю. После пары приседаний, сразу включиться в методику shai_xylyd не сумел. Начал переписку с автором статьи, где он натолкнул меня на мысль подойти к решению с математической точки зрения. Идея в том, чтобы воспользоваться функциональным пространством среды программирования и «разложить» написание юнит-теста на составляющие. После чего сделать выводы.
Немного математики, а потом пример
Всего голосов 22: ↑18 и ↓4+14
Просмотры4.3K
Комментарии 17

Unit тестирование в ASP.NET MVC Framework-е

Чулан
В свое время делая доклад по ASP.NET MVC Framework я заметил, что данный framework дает возможность разработчиком использовать TDD практики при разработки и тут же получил вопрос, что такое TDD, почему и как именно ASP.NET MVC Framework дает эти самые возможности.

Ответ на вопрос
Всего голосов 3: ↑2 и ↓1+1
Просмотры1K
Комментарии 0

Экстремальное программирование, знакомство с Behavior Driven Development и RSpec

Тестирование IT-систем

Теория


Для начала, давайте разберемся, что же такое Behavior Driven Development(в дальнейшем BDD) и чем данная техника отличается от Test-Driven Development(в дальнейшем TDD)

Разрабо́тка че́рез тести́рование (англ. test-driven development) — техника программирования, при которой модульные тесты для программы или её фрагмента пишутся до самой программы (англ. test-first development) и, по существу, управляют её разработкой. Является одной из основных практик экстремального программирования.
Читать дальше →
Всего голосов 65: ↑55 и ↓10+45
Просмотры39K
Комментарии 36

Создание простейшего DI контейнера с использованием TDD

.NET

Введение



Сегодня просмотрел ряд скринкастов от Daniel Cazzulino, в которых он рассказывает о создании с нуля простейшего DI контейнера, что не могло не привлечь моего внимания. Ниже будут приведены примеры из его скринкастов.
Читать дальше →
Всего голосов 9: ↑7 и ↓2+5
Просмотры7.9K
Комментарии 8

ALT.NET, Питер, Четверг, 19 марта, 19-00, Компьютерная академия SoftJoys

.NET
Не трудно догадаться, что многие разработчики стремятся к совершенствованию в своём любимом деле (разве нет?). Многие из вас постоянно слышат о новых для себя технологиях и методологиях разработки программного обеспечения, однако, не все находят время и стимул для того, чтобы ознакомиться с ними (примером тому являются методологии TDD, BDD, DDD, ORM, DSL, AOP, Design Patterns и т.д., а так же сопутствующие им инструменты).
Читать дальше →
Всего голосов 4: ↑3 и ↓1+2
Просмотры703
Комментарии 3

Пример практики BDD при работе со Specter Framework

.NET
specter-log Specter – инфраструктура для составления объектно-поведенческих спецификаций для .NET. Он предоставляет возможности для обеспечения разработки, руководствуясь поведением системы (BDD), требуя от разработчиков написания исполняемой спецификации для объектов перед написанием самих объектов. Технически это ни чем не отличается от разработки по средствам тестирования (TDD), хотя различия в форме написания снимают психологический барьер для написания “тестов” для кода, которого ещё не существует. Есть множество проектов для различных платформ, реализующих данную идею (К примеру RSpec для Ruby, NSpec для .NET. Подробнее о средах здесь).
Specter использует возможности мета-программирования языка Boo (CLR .NET) для написания неплохо читаемых спецификаций.
Читать дальше →
Всего голосов 18: ↑15 и ↓3+12
Просмотры2.2K
Комментарии 6

Категории программных тестов

Тестирование IT-систем
Перевод
Перевод был сделан как ответ на некоторые комментарии к переводу Настройка IDE для автоматического запуска тестов. Прочитав статью и посмотрев наглядные примеры, вы сможете прочувствовать разницу между разнообразными видами тестов, что, в свою очередь, поможет вам грамотно составлять тесты и не перемешивать их в одной куче. Каждый тест хорош в нужном месте и в нужное время!
— mazurov


Вы порой слышите о маленьких/средних/больших/модульных/интеграционных/функциональных/сценарных тестах, но сколько из нас знают что это означает? В данной статье мой взгляд на виды тестов.

Читать дальше. Категории тестов ...
Всего голосов 34: ↑32 и ↓2+30
Просмотры11K
Комментарии 36

Моя объединенная теория багов

Тестирование IT-систем
Перевод

Этот перевод является продолжением серии статей про тестирование:

На очереди практические советы по построению тестопригодного кода и примеры применения изложенных знаний на реальных проектах.
P. S. Отдельное спасибо taxigy за корректуру русского перевода.


Я думаю, что баги можно разделить на три базовые категории:
  1. Логические. Логические баги наиболее популярны и часто встречающиеся. Это ваши if'ы, циклы и другая подобная логика в коде. (Мысли: это работает неверно).
  2. Баги взаимодействия. Баг взаимодействия — когда два разных объекта неправильно взаимодействуют между собой. Например, выход одного объекта является не тем, что ожидает следующий объект в цепочке. (Мысли: данные к месту назначения пришли испорченными).
  3. Баги отображения. Баг отображения — когда вывод (обычно некоторый пользовательский интерфейс, UI) отображается некорректно. Ключевой момент — в том, что это человек определяет, что есть правильно, а что — нет. (Мысли: это «выглядит» неправильно)

Читать дальше →
Всего голосов 7: ↑5 и ↓2+3
Просмотры4.4K
Комментарии 4

Best working practices versus жизнь

Чулан
Мною замечено что люди, последнее время, все чаще стали очень категоричны: нужно создавать юнит-тесты для всего(XP TDD), валидный CSS превыше всего(W3C validity), standup-митинг нужен даже с уборщицой(Scrum)…

Здесь я предлагаю Вам порассуждать на тему Best working practices versus жизнь!
Читать дальше →
Всего голосов 19: ↑17 и ↓2+15
Просмотры245
Комментарии 37

Bug Driven Development

Чулан
Разработка основанная на багах. Баги поступают от клиентов, от тестировщиков. Баги поступают даже от своей собственной программы, когда мы начинаем деБАЖить (deBUG). Где выход и что делать. Одна из таблеток — TDD.

см. видеокаст — rutube.ru/tracks/2366112.html

Интересно узнать ваше мнение на такой способ разработки. Так же дайте отзыв по качеству и компановке материала, чтобы в следующий раз было лучше :)
Всего голосов 5: ↑2 и ↓3-1
Просмотры1.2K
Комментарии 6

Избирательное юнит-тестирование или ещё раз о тонких контроллерах

.NET
Перевод
В дополнение к недавно упомянутой на Хабре статье о том, что полное 100%-е покрытие кода юнит-тестами почти всегда не является экономически выгодным, поскольку просто лень писать всю эту.… это требует неоправданных затрат рабочего времени и увеличивает расходы на поддержку кода, сегодня хотелось бы представить на суд общественности размышления по этому поводу Стива Сандерсона (Steve Sanderson), автора книг Pro ASP.NET MVC и Pro ASP.NET MVC V2.
Читать дальше →
Всего голосов 46: ↑29 и ↓17+12
Просмотры2.9K
Комментарии 11

OptionParser и UnitTest в python скриптах

Python
python logoВ этой статье я хочу поинтересоваться у общественности правильно ли я реализую возможности данных двух замечательных модулей питона, которые уже давно вошли в стандартный (жизненно необходимый) набор питоноводов всей планеты.
Читать дальше →
Всего голосов 34: ↑28 и ↓6+22
Просмотры4.1K
Комментарии 27

Февральские Тренинги

Блог компании ScrumTrek
Москва – управление требованиями и Scrum

10 февраля в Москве будет однодневный тренинг по Scrum. Сразу за ним 11–12 февраля двухдневный тренинг по требованиям в Agile (Agile Requirements). Вести тренинги будет Никита Филиппов.

Что будет интересного?
  • Управление продуктом
  • Жизненный цикл требований от концепции до (пере-)планирования релизов.
  • Разберемся с User Story и еще одним инновационным методом – Story Mapping.
  • Изучим контракты с фиксированной ценой и T&M
  • Затронем вопрос «полезных» метрик.
  • Ну и куча всего другого полезного

Стоимость тренинга — 3000 рублей за AD-Agile Development with Scrum и 16000 рублей за REQ-Agile Requirements Analysis.

Екатеринбург – Scrum и Test Driven Development

Еще на февраль планируется набег на Екатеринбург при поддержки компании Microsoft и «СКБ Контур». 11 февраля будет однодневный тренинг по Scrum. Его будет читать Асхат Уразбаев. А сразу за ним – однодневный тренинг по Test Driven Developement от Дмитрия Лобасева.

Тренинг по Scrum стоит 2000 рублей, по TDD — 6000 рублей
Всего голосов 8: ↑4 и ↓40
Просмотры880
Комментарии 0

TDD для начинающих. Ответы на популярные вопросы

TDD
Исходники проекта написанного с помощью TDD. Visual Studio 2008/C#
Для написания тестов использована библиотека xUnit, для создания mock-объектов – Moq.




На очередном собеседовании, спрашивая о TDD, я пришел к выводу, что даже основные идеи разработки через тесты не поняты большинством разработчиков. Я считаю, что незнание этой темы – большое упущение для любого программиста.

Мне задают много вопросов про TDD. Из этих вопрсов я выбрал ключевые и написал на них ответы. Сами вопросы вы можете найти в тексте, они выделены курсивом.
Читать дальше →
Всего голосов 48: ↑38 и ↓10+28
Просмотры46K
Комментарии 65

QUnit. Тестирование javascript кода

JavaScript
Наткнулся вчера на этот инструмент и не смог пройти мимо, провел ночь за написанием тестов, а теперь хочу поделиться находкой. QUnit — это библиотека от разработчиков jQuery, позволяющая писать unit-тесты для кода на javascript. Удобна в использовании, ничего лишнего, осваивается за 20 минут, выгода от применения — колоссальная.

Самым нетерпеливым сразу ссылки:
Официальная документация на сайте jquery: docs.jquery.com/QUnit
Реальные примеры тестов (для модулей jquery): view.jquery.com/trunk/jquery/test/unit
Руководство для начинающих (англ): www.swift-lizard.com/2009/11/24/test-driven-development-with-jquery-qunit
Система распределенного тестирования (гениально и просто): testswarm.com

Под катом информация о преимуществах юнит-тестирования применительно к js и разбор возможностей библиотеки на примерах.
Читать дальше →
Всего голосов 71: ↑68 и ↓3+65
Просмотры62K
Комментарии 23