Pull to refresh
  • by relevance
  • by date
  • by rating

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

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

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

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

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

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

P.S. В отличии от предыдущих мастер-классов ноутбуки уже не нужны ;-)
Total votes 21: ↑14 and ↓7 +7
Views 3.3K
Comments 17

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

Lumber room
Привет :)!

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

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

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

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



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

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

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

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

Лжец (The Liar)

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

Читать дальше →
Total votes 111: ↑109 and ↓2 +107
Views 18K
Comments 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)


Под катом само видео
Total votes 40: ↑39 and ↓1 +38
Views 847
Comments 13

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

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

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

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

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

Ответ на вопрос
Total votes 3: ↑2 and ↓1 +1
Views 1K
Comments 0

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

IT systems testing *

Теория


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

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

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

.NET *

Введение



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

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

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

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

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

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

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


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

Читать дальше. Категории тестов ...
Total votes 34: ↑32 and ↓2 +30
Views 11K
Comments 36

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

IT systems testing *
Translation

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

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


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

Читать дальше →
Total votes 7: ↑5 and ↓2 +3
Views 4.6K
Comments 4

Best working practices versus жизнь

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

Здесь я предлагаю Вам порассуждать на тему Best working practices versus жизнь!
Читать дальше →
Total votes 19: ↑17 and ↓2 +15
Views 247
Comments 37

Bug Driven Development

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

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

Интересно узнать ваше мнение на такой способ разработки. Так же дайте отзыв по качеству и компановке материала, чтобы в следующий раз было лучше :)
Total votes 5: ↑2 and ↓3 -1
Views 1.3K
Comments 6

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

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

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

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

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

ScrumTrek corporate blog
Москва – управление требованиями и 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 рублей
Total votes 8: ↑4 and ↓4 0
Views 885
Comments 0

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

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




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

Мне задают много вопросов про TDD. Из этих вопрсов я выбрал ключевые и написал на них ответы. Сами вопросы вы можете найти в тексте, они выделены курсивом.
Читать дальше →
Total votes 48: ↑38 and ↓10 +28
Views 46K
Comments 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 и разбор возможностей библиотеки на примерах.
Читать дальше →
Total votes 71: ↑68 and ↓3 +65
Views 62K
Comments 23