<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
	<title>Хабрахабр:  Метки / bdd</title>
	<link>http://habrahabr.ru/rss/tag/bdd/</link>
	<description><![CDATA[]]></description>
	<language>ru</language>
	<managingEditor>editor@habrahabr.ru</managingEditor>
	<generator>habrahabr.ru</generator>
	<pubDate>Sat, 11 Feb 2012 02:06:34 GMT</pubDate>
	<lastBuildDate></lastBuildDate>
	<image>
		<link>http://habrahabr.ru/</link>
		<url>http://habrahabr.ru/i/logo.gif</url>
		<title>Хабрахабр</title>
	</image>
	
			
		<item>		
			<title><![CDATA[JAVA / Тестирование в Java. Spock Framework]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/java/137561/</guid>
			<link>http://habrahabr.ru/blogs/java/137561/</link>			
			<description><![CDATA[<img align="left" src="http://habrastorage.org/storage2/9a8/94f/3cc/9a894f3cc2204d959c37766c57cbd806.png"/><br/>
В предыдущих статьях на примерах <a href="http://habrahabr.ru/blogs/java/120101/">JUnit</a> и <a href="http://habrahabr.ru/blogs/java/121234/">TestNG</a> я упоминал о <a href="http://ru.wikipedia.org/wiki/Разработка_через_тестирование">test-driven development(TDD)</a> и <a href="http://en.wikipedia.org/wiki/Data-driven_testing">data-driven testing(DDT)</a>. Но есть еще один активно набирающий популярность подход, <a href="http://en.wikipedia.org/wiki/Behavior_Driven_Development">behaviour-driven development(BDD)</a>. Это такое развитие TDD техники, при котором на тест смотрят не как на тестирование каких-то компонентов системы, а как на требования к функционалу. Если TDD оперирует такими понятиями, как тест или метод, то для BDD это спецификация и требования. Про эту технику уже говорили на хабре ранее: <br/>
<ul>
<li><a href="http://habrahabr.ru/blogs/tdd/107262/">Эволюция юнит-теста</a>, </li>
<li><a href="http://habrahabr.ru/blogs/testing/52929/">Экстремальное программирование, знакомство с Behavior Driven Development и RSpec</a></li>
</ul><br/>
Этот подход применим используя и JUnit, и TestNG. Но есть и другие инструменты заточенные именно под BDD. В этой статье я расскажу про такой фреймворк. Называется он <a href="http://code.google.com/p/spock/">Spock Framework</a> и сочетает в себе не только принципы BDD, но и достоинства <a href="http://groovy.codehaus.org/">Groovy</a>. Да-да, именно Groovy. И хотя используется Groovy, используется он и для тестирования Java кода. Примерами использования могут служить Spring, Grails, Tapestry5. Интересно? Тогда читаем дальше.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/java/137561/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Sun, 05 Feb 2012 20:52:33 GMT</pubDate>
			<author>sody</author>
			<category>tdd</category><category>bdd</category><category>behavour driven development</category><category>testing</category><category>spock</category><category>groovy</category><category>java</category>
		</item>
		
		
		
		
		
		
		
		
	
			
		<item>		
			<title><![CDATA[Блог компании Ciklum / Приезжай в Харьков и отожги вместе с нами на Ciklum Mobile Субботнике и iPhoneDevCamp 2012]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/company/Ciklum/blog/137545/</guid>
			<link>http://habrahabr.ru/company/Ciklum/blog/137545/</link>			
			<description><![CDATA[Вы не поверите, но начало 2012 года началось для нас жаркой зимой! Все дело в том, что мы, в Сиклум, ежемесячно проводим около 60(!) как внутренних, так и внешних мероприятий для разработчиков, таких как тематические <b>Сиклум Субботники</b>, Хакатоны, кемпы и т.д.<br/>
<br/>
Обмен опытом и знаниями, живые дискуссии и неформальное общение — вот цель таких мероприятий, на которые, кстати говоря, может прийти любой разработчик. И представьте себе, такой формат мероприятий пришелся по душе многим в разных городах в Украине! Например, недавно мы провели <a href="http://habrahabr.ru/company/Ciklum/blog/134685">самый первый .NET Субботник</a> в Виннице, а также очередной <a href="http://habrahabr.ru/company/Ciklum/blog/133811">.NET Субботник</a> в Харькове, поддержали <a href="http://habrahabr.ru/company/Ciklum/blog/134610">DOU STARTUP MIXER</a> и <a href="http://habrahabr.ru/company/Ciklum/blog/134127/">Drupal Cafe</a> в Киеве.<br/>
<br/>
<b>11 февраля 2012 в рамках Мобильного Сиклум Субботника</b> пройдет и <b><a href="http://iosdev.org.ua">iPhoneDevCamp 2012</a></b>, который все так долго ждали! Таким образом, суббота в нашем харьковском офисе будет очень насыщенной. По нашей замечательной традиции, мы открыты к тем, кто хочет выступить. Так, на <b>Мобильный Сиклум Субботник</b> мы пригласили зубров мобильной разработки, отчаянных борцов за чистоту кода и ярых яблочников. <br/>
<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/company/Ciklum/blog/137545/#habracut">Интересные подробности под хабра-катом</a> </div>]]></description>
			
			<pubDate>Fri, 03 Feb 2012 10:29:47 GMT</pubDate>
			<author>atael</author>
			<category>ciklum</category><category>mobile development</category><category>ios development</category><category>TDD</category><category>BDD</category><category>Dependency Injection</category><category>сиклум</category><category>ciklum saturday</category><category>DTrace</category><category>LLDB</category>
		</item>
		
		
		
		
		
		
		
		
	
			
		<item>		
			<title><![CDATA[PHP / Codeception — тестирование по-новому]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/php/136477/</guid>
			<link>http://habrahabr.ru/blogs/php/136477/</link>			
			<description><![CDATA[PHP очень популярный язык программирования, но тестирование в нем, это скорее прерогатива экспертов, а не жизненная необходимость. Неужели это от того, что PHP-разработчики поголовно быдло-кодеры? Я считаю, что нет. Скорее всё от того, что системы тестирования порой излишне усложнены. А тесты, наоборот, должны были предельно просты: легко читаться, писаться, отлаживаться, и конечно же, быстро выполняться. Мое виденье того как это можно воплотить в PHP вылилось в проект под названием <a href="http://codeception.com">Codeception</a>. <br/>
<br/>
С ним тесты для ваших веб-приложений могут выглядеть так:<br/>
<pre><code class="php">&lt;?php
$I = new TestGuy($scenario);
$I-&gt;wantTo('create new blog post');
$I-&gt;amOnPage('/blog/posts');
$I-&gt;click('Create new post');
$I-&gt;fillField('Title','Codeception, a new way of testing!');
$I-&gt;fillField('Text','Codeception is new PHP full-stack testing framework.');
$I-&gt;click('Send');
$I-&gt;see('Congratulations, your post is successfully created!');
</code></pre><br/>
<br/>
Согласитесь, такой тест понятен без дополнительных комментариев.<br/>
А теперь самое интересное: этот код без всяких изменений может быть выполнен как функциональный тест в фреймворках <b>symfony</b>, <b>Symfony2</b>,<b>Zend Framework</b>, а также в браузерном эмуляторе Goutte и даже через <b>Selenium</b>. Таким образом, вам предлагается единый интерфейс для написания функциональных тестов практически для любого сайта.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/php/136477/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Wed, 18 Jan 2012 03:02:25 GMT</pubDate>
			<author>Davert</author>
			<category>php</category><category>phpunit</category><category>testing</category><category>тестирование</category><category>bdd</category><category>symfony</category><category>zend</category><category>selenium</category>
		</item>
		
		
		
		
		
		
		
		
	
			
		<item>		
			<title><![CDATA[Разработка под Android / Шаблоны проектирования при разработке под Android. Часть 4 — Сохранение данных. Domain Model, Repository, Singleton и BDD]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/android_development/132646/</guid>
			<link>http://habrahabr.ru/blogs/android_development/132646/</link>			
			<description><![CDATA[Сразу хочу сказать, что в статье я не буду описывать как надо работать с Data Provider-ом. Это можно найти и в документации и в многочисленных статьях в интернете.<br/>
Здесь я расскажу про шаблоны проектирования Domain Model, Singleton, Repository, про подход Behavior Driven Development (BDD) и как я их использовал в своей программе.<br/>
<br/>
Шаблон Domain Model используется в тех случаях когда разработка ведется от предметной области, в таких случаях есть понятная предметная область и ее термины просто воплощаются в байтах.<br/>
<br/>
Например, в моей программе предметная область состоит из данных расписания, заданного в виде нескольких будильников, для будильника можно задать дни недели и время, а также признак «будильник включен». Так же есть несколько алгоритмов, например получить будильник, который сработает следующим и дату и время его срабатывания. Поскольку будильник может дремать, получается что у одного будильника есть несколько срабатываний с разными действиями: первое срабатывание, дремание, и последнее дремание, когда кнопка дремать уже не доступна. Поэтому есть еще алгоритм поучения ближайшего абсолютного времени и действия.<br/>
Так же есть алгоритмы для создания нового будильника и редактирования/удаления существующих.<br/>
<br/>
То есть в моей предметной области есть данные в виде нескольких будильников и несколько алгоритмов, которые реализуют логику предметной области.<br/>
<br/>
Почему я вообще решил использовать этот шаблон проектирования. В альтернативу я бы мог сделать отдельный класс, который создает/редактирует будильники и сохраняет их в БД, а алгоритмы вычисления ближайшего будильника можно было сделать в другом классе.<br/>
<br/>
Во-первых, в терминах предметной области мы работаем с одним списком будильников, в него же добавляем новые будильники и его же спрашиваем о том какой будильник следующий. То есть это удобно выглядит с точки зрения инкапсуляции данных и алгоритмов. Такая модель удобнее для восприятия человеком.<br/>
<br/>
Во-вторых, в таком случае, когда я тестирую модель я могу протестировать обычное поведение пользователя. Например создать будильник, задать ему расписание, проверить что модель выдает правильное следующее время, потом я добавляю новый будильник, а старый отключаю и проверяют что и на этот раз время следующего срабатывания правильное.<br/>
<br/>
Такой подход называется Behavior Driven Development. Его достоинство в том, что я могу тестировать модель в терминах предметной области, то есть в модульных тестах я имитирую обычное поведение пользователя. Благодаря тому, что это реализовано через механизм модульных тестов, я перед каждым релизом могу эти тесты прогнать и быть уверенным, что моя программа программа нормально отрабатывает основные действия пользователя.<br/>
<br/>
Если бы я использовал отдельный класс для редактирования/сохранения будильников и отдельный класс для вычисления ближайшего будильника, то я конечно бы протестировал их по отдельности, но не смог бы проверить их вместе и не смог бы проверить основные действия пользователя.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/android_development/132646/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Tue, 15 Nov 2011 10:46:31 GMT</pubDate>
			<author>AndreyFedorov</author>
			<category>andorid</category><category>шаблоны проектирования</category><category>patterns</category><category>singleton</category><category>bdd</category><category>domain model</category><category>repository</category>
		</item>
		
		
		
		
		
		
		
		
	
			
		<item>		
			<title><![CDATA[Ruby on Rails / Request spec in Action]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/ror/130766/</guid>
			<link>http://habrahabr.ru/blogs/ror/130766/</link>			
			<description><![CDATA[Тестирование стало неотъемлемой частью любой разработки программного продукта, будь то приложение под настольный компьютер, мобильное устройство или web. Уже никто не отрицает важность это этапа и последствий, которые принесет его отсутствие. Среди них большое время на проверку каждого элемента (страницы), и неожиданные сюрпризы в поведении продукта, увеличение затрат на исправление программы. Принцип написания тестов достаточно прост – «желтый цвет», «красный цвет», «зеленый цвет», рефакторинг. Где желтый цвет – это не созданный тест (pending), красный цвет – не прошедший тест, а зеленый – системе работает как надо.<br/>
<br/>
Для каждого вида программирования, существует множество типов тестирования. Но есть и общие моменты, присутствующие везде. Так как основной род моей работы является создание web приложений под ROR, поговорим про особенности тестирования данных приложений. <br/>
<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/ror/130766/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Wed, 19 Oct 2011 14:34:18 GMT</pubDate>
			<author>jalkoby</author>
			<category>bdd</category><category>capybara</category><category>rails</category><category>rspec</category>
		</item>
		
		
		
		
		
		
		
		
	
		
			
		<item>		
			<title><![CDATA[TDD / [Из песочницы] Установка и настройка функционального тестирования в Symfony2 с помощью Behat и Mink]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/tdd/124100/</guid>
			<link>http://habrahabr.ru/blogs/tdd/124100/</link>			
			<description><![CDATA[Идея о том, что веб-приложения написанные на PHP нуждаются в тестировании, не нова и постепенно входит в повседневную практику разработчиков. PHPUnit стал стандартом тестирования PHP приложений, в том числе и в новом фреймворке Symfony2. В установке из symfony-standard в AcmeDemoBundle для тестирования контроллера используется именно он<sup><a href="#phpunit">1</a></sup>. Я хочу рассказать о альтернативном пути тестирования функционала, с применением Behat и Mink, и описать подробности процесса установки и тестирования.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/tdd/124100/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Wed, 13 Jul 2011 19:03:12 GMT</pubDate>
			<author>LiVsI</author>
			<category>symfony2</category><category>behat</category><category>mink</category><category>тестирование веб-приложений</category><category>bdd</category><category>tdd</category>
		</item>
		
		
		
		
		
		
		
	
		
		
		
		
		
		
		
		
	
		
			
		<item>		
			<title><![CDATA[Веб-разработка / [Из песочницы] BDD: Адаптация языка Gherkin для русскоязычных проектов в Asp.Net]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/webdev/117383/</guid>
			<link>http://habrahabr.ru/blogs/webdev/117383/</link>			
			<description><![CDATA[Я напишу, как можно адаптировать популярный язык написания тестов Gherkin для русскоязычных проектов без использования сторонних библиотек, а также поделюсь своим опытом использования этого подхода.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/webdev/117383/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Wed, 13 Apr 2011 04:25:04 GMT</pubDate>
			<author>Linloil</author>
			<category>bdd</category><category>Gherkin</category>
		</item>
		
		
		
		
		
		
		
	
		
			
		<item>		
			<title><![CDATA[Веб-разработка / [Из песочницы] Rails: Хватит отмазываться, начинаем BDD-ить!]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/webdev/111480/</guid>
			<link>http://habrahabr.ru/blogs/webdev/111480/</link>			
			<description><![CDATA[<h4>Кто здесь?</h4><br/>
Когда речь заходит о тестировании существующего продукта, а тем более о разработке чего-то нового на основе изначального написания сценариев использования, различных спецификаций и тестов, то частенько можно слышать подобные вещи:<br/>
<br/>
<pre>
11:24:21 PM Michael: ну хз, надо пробовать
11:24:24 PM Michael: наверное так лучше
11:24:27 PM Michael: даже я думаю наверняка
11:24:36 PM Michael: но пока меня че-то останавливает
11:24:38 PM Michael: лень наверное :)
</pre><br/>
Знакомо? «<i>Не хочется разбираться? Нет времени?</i>» Тогда читаем дальше. В статье расскажу, как настроить свое любимое рельсовое окружении на разработку с подходом <i>BDD</i> и начать новую жизнь (опционально).<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/webdev/111480/#habracut">Поехали!</a> </div>]]></description>
			
			<pubDate>Sat, 08 Jan 2011 17:59:15 GMT</pubDate>
			<author>UVSoft</author>
			<category>ruby on rails</category><category>rails 3</category><category>ruby</category><category>rspec</category><category>cucumber</category><category>bdd</category>
		</item>
		
		
		
		
		
		
		
	
		
			
		<item>		
			<title><![CDATA[PHP / [Из песочницы] PHP + BDD = Behat, или сказ о чудо-библиотеке]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/php/110422/</guid>
			<link>http://habrahabr.ru/blogs/php/110422/</link>			
			<description><![CDATA[Каждый, кто всерьез занимался разработкой на Ruby, знает про замечательный гем Cucumber. Вкратце — это библиотека для автоматизированного тестирования, заточенная под BDD. Подробнее можно почитать в <a href="http://habrahabr.ru/blogs/ruby/62958/">топике</a> хабраюзера <a href="http://dapi.habrahabr.ru/" class="user_link">dapi</a>, а еще лучше посмотреть <a href="http://railscasts.com/episodes/155-beginning-with-cucumber">подкаст</a> от Райна Бэйтса. Основная прелесть «огурца» состоит в том, что он позволяет писать тесты на понятном человеку языке, и даже не обязательно английском. Выглядит это так:<br/>
<br/>
<pre>
Feature: Addition 
  In order to avoid silly mistakes 
  As a math idiot 
  I want to be told the sum of two numbers 

  Scenario: Add two numbers 
    Given I have entered 50 into the calculator
      And I have entered 70 into the calculator
     When I press add
     Then The result should be 120 on the scree
</pre><br/>
Благодаря Cucumber я подсел на BDD на рельсах. Но вот на PHP, с которым приходится работать основную часть времени, отношения с BDD как-то не сложились. И в первую очередь из-за отсутствия достойного инструментария. Но однажды судьба завела меня на страницу библиотеки <a href="http://everzet.com/Behat/">Behat</a> (написанной, кстати говоря, хабраюзером <a href="http://everzet.habrahabr.ru/" class="user_link">everzet</a>). И на меня свалилось счастье…<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/php/110422/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Tue, 21 Dec 2010 10:53:32 GMT</pubDate>
			<author>DarthSim</author>
			<category>php</category><category>bdd</category><category>behat</category><category>cucumber</category>
		</item>
		
		
		
		
		
		
		
	
			
		<item>		
			<title><![CDATA[TDD / Эволюция юнит-теста]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/tdd/107262/</guid>
			<link>http://habrahabr.ru/blogs/tdd/107262/</link>			
			<description><![CDATA[Много слов сказано о том, как правильно писать юнит-тесты, и вообще о пользе <a href="http://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D1%87%D0%B5%D1%80%D0%B5%D0%B7_%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5">TDD</a>. Потом ещё и какое-то <a href="http://habrahabr.ru/blogs/testing/52929/">BDD</a> замаячило на горизонте. Приходится разбираться, что из них лучше и между ними какая разница. Может, это и есть причина, почему большинство разработчиков решили не заморачиваться и до сих пор не используют ни того, ни другого?<br/>
<br/>
Коротко: BDD — это дальнейшее развитие идей TDD, стало быть, его и надо использовать. А разницу между TDD и BDD я попробую объяснить на простом примере. <br/>
<br/>
Рассмотрим 3 ревизии одного юнит-теста, который я нашёл в одном реальном проекте.<br/>
<br/>
<h4>Попытка номер №1</h4><br/>
Первая версия этого юнит-теста была такой:<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/tdd/107262/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Tue, 02 Nov 2010 22:15:27 GMT</pubDate>
			<author>asolntsev</author>
			<category>TDD</category><category>BDD</category><category>юнит-тесты</category><category>test driven development</category><category>behavior driven development</category>
		</item>
		
		
		
		
		
		
		
		
	
		
		
		
			
		<item>		
			<title><![CDATA[Node.JS / [Перевод] Храните ваши клятвы; Отношения с Node]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/nodejs/98671/</guid>
			<link>http://habrahabr.ru/blogs/nodejs/98671/</link>
			<description><![CDATA[Клятвы могут быть прекрасны. <a href="http://cloudhead.io/">Алексис&nbsp;Селлир</a>, сыскавший славу за разработку «LESS» (и «less.js»), начинает становиться звездой Open Source, выпустив в&nbsp;свет <a href="http://vowsjs.org/"><strong>Vows</strong></a>,&nbsp;— каркас&nbsp;для&nbsp;разработки&nbsp;на&nbsp;Node.JS, управляемой асинхронным поведением.<br/>
<br/>
<a href="http://vowsjs.org/"><img src="http://ajaxian.com/wp-content/images/vowsjs.png" alt="image"/></a><div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/nodejs/98671/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Fri, 09 Jul 2010 07:36:50 GMT</pubDate>
			<author>akzhan</author>
			<category>Vows</category><category>BDD</category><category>асинхронное программирование</category><category>node.js</category><category>серверный javascript</category><category>dsl</category>
		</item>
		
		
		
		
		
	
			
		<item>		
			<title><![CDATA[Персональные блоги / Bug Driven Development]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/personal/69515/</guid>
			<link>http://habrahabr.ru/blogs/personal/69515/</link>			
			<description><![CDATA[Разработка основанная на багах. Баги поступают от клиентов, от тестировщиков. Баги поступают даже от своей собственной программы, когда мы начинаем деБАЖить (deBUG). Где выход и что делать. Одна из таблеток — TDD.<br/>
<br/>
см. видеокаст — <a href="http://rutube.ru/tracks/2366112.html">rutube.ru/tracks/2366112.html</a><br/>
<br/>
Интересно узнать ваше мнение на такой способ разработки. Так же дайте отзыв по качеству и компановке материала, чтобы в следующий раз было лучше :)]]></description>
			
			<pubDate>Sun, 13 Sep 2009 19:22:24 GMT</pubDate>
			<author>denis_miller</author>
			<category>agile</category><category>tdd</category><category>bdd</category><category>refactoring</category>
		</item>
		
		
		
		
		
		
		
		
	
			
		<item>		
			<title><![CDATA[.NET / Языки предметной области Domain-Specific Languages (DSL)]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/net/63189/</guid>
			<link>http://habrahabr.ru/blogs/net/63189/</link>			
			<description><![CDATA[<h2>Что это?</h2><br/>
Это <a href="http://ru.wikipedia.org/wiki/Предметно-ориентированный_язык_программирования">некоторая форма компьютерных языков</a>, разрабатываемых для специфичной предметной области. Это то, что позволяет вам (разработчикам ПО) лучше взаимодействовать с носителями “доменных знаний”. А так же позволяет более лаконично оформлять бизнес-логику. Это то, что представляет собой, к примеру, SQL, Linq, многое из синтаксиса Ruby On Rails.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/net/63189/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Mon, 29 Jun 2009 19:53:41 GMT</pubDate>
			<author>butaji</author>
			<category>DSL</category><category>ALT.NET</category><category>CLR</category><category>DLR</category><category>C</category><category>F</category><category>Boo</category><category>Ruby</category><category>Python</category><category>LINQ</category><category>BDD</category><category>Specter</category>
		</item>
		
		
		
		
		
		
		
		
	
			
		<item>		
			<title><![CDATA[Ruby / BDD с помощью Cucumber]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/ruby/62958/</guid>
			<link>http://habrahabr.ru/blogs/ruby/62958/</link>			
			<description><![CDATA[Если вы привыкли сначала писать код, а потом его тестировать, то с BDD такой подход совсем не уместен. Сила BDD в том, что он помогает вести разработку начиная со стадии оформления ТЗ. Для BDD это список свойств (фич), который уместно писать вместе с заказчиком.<br/>
<br/>
Но самое главное, что по этому же списку происходит автоматическое тестирование проекта. Инструмент тестирования (в нашем случае это Cucumber) методично пройдет по вашему перечню и дотошно проверит реализацию каждой фичи.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/ruby/62958/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Mon, 29 Jun 2009 06:26:26 GMT</pubDate>
			<author>dapi</author>
			<category>ruby</category><category>BDD</category><category>Cucumber</category>
		</item>
		
		
		
		
		
		
		
		
	
			
		<item>		
			<title><![CDATA[.NET / Пример практики BDD при работе со Specter Framework]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/net/60767/</guid>
			<link>http://habrahabr.ru/blogs/net/60767/</link>			
			<description><![CDATA[<a href="http://specter.sourceforge.net/"><img title="specter-logo" alt="specter-log" align="left" src="http://specter.sourceforge.net/assets/specter-logo-64.png"/></a> Specter – инфраструктура для составления объектно-поведенческих спецификаций для .NET. Он предоставляет возможности для обеспечения разработки, руководствуясь поведением системы (<a href="http://en.wikipedia.org/wiki/Behavior_Driven_Development">BDD</a>), требуя от разработчиков написания исполняемой спецификации для объектов перед написанием самих объектов. Технически это ни чем не отличается от разработки по средствам тестирования (<a href="http://en.wikipedia.org/wiki/Test-driven_development">TDD</a>), хотя различия в форме написания снимают психологический барьер для написания “тестов” для кода, которого ещё не существует. Есть множество проектов для различных платформ, реализующих данную идею (К примеру <a href="http://rspec.info/">RSpec</a> для <a href="http://www.ruby-lang.org/en/">Ruby</a>, <a href="http://nspec.tigris.org/">NSpec</a> для <a href="http://www.microsoft.com/NET/">.NET</a>. <a href="http://en.wikipedia.org/wiki/Behavior_Driven_Development">Подробнее о средах здесь</a>).<br/>
Specter использует возможности мета-программирования языка <a href="http://boo.codehaus.org/">Boo</a> (CLR .NET) для написания неплохо читаемых спецификаций.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/net/60767/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Thu, 28 May 2009 19:58:20 GMT</pubDate>
			<author>butaji</author>
			<category>Boo</category><category>BDD</category><category>Specter</category><category>.NET</category><category>TDD</category><category>Tests</category><category>Agile</category><category>Specification</category><category>DSL</category><category>CLR</category><category>RSPec</category>
		</item>
		
		
		
		
		
		
		
		
	
			
		<item>		
			<title><![CDATA[.NET / Третья встреча Петербургской группы ALT.NET]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/net/55336/</guid>
			<link>http://habrahabr.ru/blogs/net/55336/</link>			
			<description><![CDATA[Третья встреча Петербургской группы <a href="http://ALT.NET">ALT.NET</a>, посвященная разработке под ASP.NET MVC, пройдет в четверг, 2<sup>го</sup> Апреля в 19:00.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/net/55336/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Tue, 24 Mar 2009 08:39:20 GMT</pubDate>
			<author>butaji</author>
			<category>ALT.NET</category><category>spbalt.net</category><category>asp.net mvc</category><category>DDD</category><category>BDD</category>
		</item>
		
		
		
		
		
		
		
		
	
			
		<item>		
			<title><![CDATA[.NET / ALT.NET, Питер, Четверг, 19 марта, 19-00, Компьютерная академия SoftJoys]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/net/54688/</guid>
			<link>http://habrahabr.ru/blogs/net/54688/</link>			
			<description><![CDATA[Не трудно догадаться, что многие разработчики стремятся к совершенствованию в своём любимом деле (разве нет?). Многие из вас постоянно слышат о новых для себя технологиях и методологиях разработки программного обеспечения, однако, не все находят время и стимул для того, чтобы ознакомиться с ними (примером тому являются методологии TDD, BDD, DDD, ORM, DSL, AOP, Design Patterns и т.д., а так же сопутствующие им инструменты).<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/net/54688/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Tue, 17 Mar 2009 08:40:46 GMT</pubDate>
			<author>butaji</author>
			<category>ALT.NET</category><category>AOP</category><category>BDD</category><category>DDD</category><category>Design Patterns</category><category>DSL</category><category>ORM</category><category>tdd</category>
		</item>
		
		
		
		
		
		
		
		
	
			
		<item>		
			<title><![CDATA[Ruby on Rails / RSpec. Часть #1: создаем тесты для модели]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/ror/53264/</guid>
			<link>http://habrahabr.ru/blogs/ror/53264/</link>			
			<description><![CDATA[Как и обещал, я начинаю цикл статей, на тему RSpec.<br/>
<br/>
В этой статье, я постараюсь, подробно рассказать, как писать тесты для моделей в Ruby on Rails. Если вы уже знакомы с rspec_on_rails, поправьте и дополните меня, если что то не так. Помните, что я изучаю Rspec вместе с вами и могу где то ошибаться.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/rubyonrails/53264/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Mon, 02 Mar 2009 10:32:38 GMT</pubDate>
			<author>Arion</author>
			<category>rails</category><category>ruby</category><category>rspec</category><category>model</category><category>bdd</category><category>test</category><category>spec</category><category>gem</category><category>rspec_on_rails</category>
		</item>
		
		
		
		
		
		
		
		
	
			
		<item>		
			<title><![CDATA[Тестирование / Экстремальное программирование, знакомство с Behavior Driven Development и RSpec]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/testing/52929/</guid>
			<link>http://habrahabr.ru/blogs/testing/52929/</link>			
			<description><![CDATA[<h4>Теория</h4><br/>
Для начала, давайте разберемся, что же такое Behavior Driven Development(в дальнейшем BDD) и чем данная техника отличается от Test-Driven Development(в дальнейшем TDD)<br/>
<br/>
Разрабо́тка че́рез тести́рование (англ. test-driven development) — техника программирования, при которой модульные тесты для программы или её фрагмента пишутся до самой программы (англ. test-first development) и, по существу, управляют её разработкой. Является одной из основных практик <a href="http://ru.wikipedia.org/wiki/%D0%AD%D0%BA%D1%81%D1%82%D1%80%D0%B5%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5">экстремального программирования</a>.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/testing/52929/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Thu, 26 Feb 2009 07:16:31 GMT</pubDate>
			<author>Arion</author>
			<category>Behavior Driven Development</category><category>Test-Driven Development</category><category>TDD</category><category>BDD</category><category>RSpec</category><category>тесты</category><category>разработка через тестирование</category><category>экстремальное программирование</category>
		</item>
		
		
		
		
		
		
		
		
	
	
	
	
	
	
	
	

	
</channel>
</rss>

