Я, как и многие программисты, довольно много слышал и читал о практиках TDD и BDD. О пользе хорошего покрытия кода юнит-тестами — и о вреде его отсутствия — я знаю по собственному опыту в коммерческих проектах, но применять TDD в чистом виде не получалось по разным причинам. Начав на днях писать свой игровой проект, я решил, что это хорошая возможность попробовать. Как оказалось, разницу по сравнению с обычным подходом можно почувствовать даже при реализации простейшего класса. Я распишу этот пример по шагам и в конце опишу результаты, которые для себя увидел. Думаю топик будет полезен тем, кто интересуется BDD. От более опытных коллег хотелось бы услышать комментарии и критику.
Читать полностью »
Рубрика «tdd» - 22
Простой, но показательный пример использования BDD
2012-09-17 в 15:43, admin, рубрики: bdd, tdd, Песочница, Программирование, метки: bdd, tdd, ПрограммированиеПростой, но показательный пример использования TDD
2012-09-17 в 15:43, admin, рубрики: tdd, Песочница, Программирование, метки: tdd, Программирование Я, как и многие программисты, довольно много слышал и читал о практиках TDD. О пользе хорошего покрытия кода юнит-тестами — и о вреде его отсутствия — я знаю по собственному опыту в коммерческих проектах, но применять TDD в чистом виде не получалось по разным причинам. Начав на днях писать свой игровой проект, я решил, что это хорошая возможность попробовать. Как оказалось, разницу по сравнению с обычным подходом можно почувствовать даже при реализации простейшего класса. Я распишу этот пример по шагам и в конце опишу результаты, которые для себя увидел. Думаю топик будет полезен тем, кто интересуется TDD. От более опытных коллег хотелось бы услышать комментарии и критику.
Читать полностью »
Как я изобретал велосипед, изучая технологии
2012-09-17 в 15:43, admin, рубрики: .net, autofac, dependency injection, moq, tdd, метки: .net, autofac, c++, dependency injection, moq, tdd
Неоднократно слышал утверждение, что язык программирования изучать лучше всего в процессе создания чего-либо. Не мог с этим не согласиться, и решил, что это распространяется не только на язык, но и на всякие технологии сосуществующие с этим языком.
Протаптывать неизведанную дорожку самому непросто, гораздо легче изучить, как кто-то протаптывает эту дорожку перед тобой. К изучению документаций у меня не лежит душа, ей я пользуюсь как справочником, а изучать что то с нуля отнимает слишком много времени и сил, так как авторы оной обычно предполагают, что у читателя знания обширнее, практически все что нужно он уже знает. Велосипедные темы же освещают именно процесс обучения, хождение по граблям и все прочее. К сожалению, на интересные мне темы достаточно подробных статей не нашел, изучал урывками, и решил все-таки написать статью сам, в надежде упростить жизнь тем, кто может пойти следом.
Читать полностью »
Android — Сontinuous Integration
2012-08-13 в 17:43, admin, рубрики: android, android development, continuous integration, Git, junit, maven, mockito, robotium, tdd, teamcity, Разработка под android, метки: android, android development, continuous integration, Git, junit, maven, mockito, robotium, tdd, teamcity, unit-testingНе буду описывать в сотый раз что такое CI и зачем это нужно. Выдумщиком данной концепции считается, не безизвестный, Мартин Фаулер, а с его трудом можно ознакомиться здесь.
Я же хочу в серии из нескольких статей рассказать о том, как организовать разработку Android приложений с использованием непрерывной интеграции. Для меня было не ожиданностью, что несмотря на всю популярность CI, в интернете до сих пор не существует подробной интсрукции, по шагам, для новичков, даже на английском языке, не говоря про русский (ну или я таких попросту не нашел).
В данной нулевой статье цикла мы обозрим сложившуюся унылую ситуацию и набросаем план действий по спасению — то что ожидаем получить в конце и ради чего все затеваем. А затем, постепенно, начнем это воплощать в жизнь. Кого заинтересовал, прошу под кат.
Читать полностью »
Практика TDD/BDD на примере JavaScript: TDD и BDD
2012-08-09 в 14:01, admin, рубрики: bdd, coffeescript, javascript, mocha, tdd, Блог компании «Evil Martians», метки: bdd, coffeescript, javascript, mocha, tdd 
Введние
Это продолжение цикла «Практика TDD/BDD на примере JavaScript». В первой, вводной статье, я попытался убедить разработчиков в необходимости, если не писать тесты на всех своих проектах, то хотя бы свободно владеть темой и знать зачем это им нужно.
Сегодня я расскажу что такое TDD (test-driven developement) и на простом примере покажу как это работает. Во второй части будет расмотрено BDD (behaviour-drive development) в сравнении с TDD и на практике.
TDD
Что такое TDD
Разработка через тестирование выражается в простом правиле: сначала тесты, а потом код.
Если вы знакомы с темой и тестовым фреймворком, которым вы пользуетесь, то выразить задачу в тестах даже проще, чем объяснить её вашему коллеге.
Когда у вас есть тесты, код писать очень просто, задача сводится к тому, чтобы удовлетворить описанные вами условия.
Вы четко понимаете задачу, у вас перед глазами пример использования будущего кода, что еще нужно для удачного дизайна и успешного решения?
Читать полностью »
Вышел Codeception 1.1
2012-08-08 в 12:01, admin, рубрики: bdd, codeception, php, qa, tdd, тестирование, метки: bdd, codeception, tdd, тестирование Фреймворк для автоматического тестирования PHP проектов Codeception обзавелся первым серьезным апдейтом. Пришлось перелопатить всё ядро, всё поломать, всё починить и сделать это так, чтобы не сломать обратную совместимость. Как результат, теперь в тестах можно использовать любой PHP-код, а не только сценарий, добавилась возможность находить элементы по XPath, а также появилась возможность использования модулей Codeception в тестах PHPUnit.
Читать полностью »
Практика TDD/BDD на примере JavaScript: Введение
2012-07-31 в 4:44, admin, рубрики: bdd, tdd, Блог компании «Evil Martians», Программирование, метки: bdd, tddВведение
В своей прошлой статье "Readme-driven development" я немного затронул тему разработки через тестирование. Комментарии продемонстрировали, что немало людей неверно понимают истинную роль тестов в процессе написания кода.
Этой статьей я начну цикл в котором раскрою тему test- (TDD) и behaviour- (BDD) driven development и покажу на практике как разработка через тестирование может помочь писать качественный и надежный код. Познакомлю со всеми основными терминами и подходами.
Цикл будет полезен и интересен всем, кто интересуется темой TDD/BDD, тем кто еще сомневается в необходимости тратить свое время на написание тестов, тем кто пишет, но не уверен что делает это правильно. И даже тем кто уверен. А так же JavaScript разработчикам желающим сделать свой код лучше и надежнее.
Не смотря на то, что в данном цикле статей в качестве примеров используется JavaScript, приобретенные опыт и знания могут быть легко проецированы на ваш любимый язык программирования. Да и кто сейчас не знает JavaScript, надежного друга и кровного врага любого web-разработчика?
Читать полностью »
Readme-driven development
2012-07-23 в 4:25, admin, рубрики: open source, tdd, Программирование, метки: open source, tddВряд ли найдется на этой планете противник ТЗ. ТЗ позволяет защитить разработчиков, менеджеров и сам продукт от неминуемо бурной фантазии заказчика.
Это гарант того, что проект однажды будет завершен. Понимание задачи — одно из самых важных этапов в решении оной.
ТЗ поможет встать на ноги любому проекту, даже если вы занимаетесь разработкой собственной open source библиотеки.
И самое лучшее ТЗ для open source — readme.
Документацию принято писать после того, как написан код. Я считаю этот подход неверным.
Те, кто хотя бы однажды ощутили пользу от TDD (test-driven development) согласятся, что писать тесты после кода, это как анестезия после операции. Это больно.
Читать полностью »
Юнит-тестирование моделей в Yii
2012-07-10 в 11:28, admin, рубрики: tdd, yii, метки: tdd, unit-testing, yii Сейчас я расскажу про применение техники TDD для разработки моделей, используя Yii-framework.
Изначально предполагается, что была прочитана тема «Тестирование» из официального мануала (http://yiiframework.ru/doc/guide/ru/test.overview).
Итак, окружение настроено и сейчас нашей задачей будет — создать модели категории и продуктов(Category, Product) и покрыть их тестами.
Скринкаст: Знакомство с Codeception
2012-06-28 в 1:38, admin, рубрики: bdd, codeception, php, selenium, symfony, tdd, тестирование, метки: bdd, codeception, PHP, selenium, symfony, tdd Фреймворк для автоматического тестирования веб-приложений на PHP — Codeception живет и развивается. Но в этот раз вместо скупой порции новостей я бы хотел представить вам первый скринкаст в котором показаны азы работы с Codeception. Если вы только читали про Codeception, то вам обязательно стоит взглянуть на него в действии. Ну а если не читали, но у вас есть веб-сайт, который бы вы хотели протестировать — тоже взгляните.
Читать полностью »
