TDD

индекс
29,33

Test Driven Design — первый опыт внедрения

Многочисленные статьи, посвященные TDD в общем и Unit-тестам в частности, как правило, оперируют довольно искусственными примерами. Например, давайте напишем функцию, которая складывает два числа и напишем для неё тест. Честно говоря, на таких примерах трудно оценить преимущества использования автоматизированных тестов.

Некоторое время назад мне подвернулся малюсенький проектик, который как будто специально создан для того, чтобы опробовать на нем методику проектирования, основанную на тестах. Результат применения поразил меня самого! Приглашаю под кат всех, кто еще сомневается в том, что нужно применять автоматизированные тесты в повседневной разработке.
+28
23 мая 2012, 20:33
115
ganouver 30,0

Тестирование в стиле TSA перевод



Когда разработчики впервые открывают для себя прелести разработки через тестирование — это как переход в новый, лучший мир, где гораздо меньше стресса и незащищенности. Этот прекрасный опыт действительно стоит отпраздновать. Но осознание преимуществ тестирования — только первый шаг к просветлению. Самое сложное — понять что НЕ нужно тестировать.

Если новичку можно и не заботиться о том что не стоит тестировать в первый день, то на второй день ему бы лучше начать вникать в это. Люди — создания привычки, поэтому если вы начнете формировать плохую привычку избыточного тестирования с самого начала, то вам будет гораздо труднее избавиться от нее потом. А избавиться от этой привычки вы должны.
+35
11 мая 2012, 02:22
91
Svyatov 154,0

Codeception — новости проекта

TDD*, PHP*
imageЯ уже писал на Хабре о Codeception — фреймворке для тестирования приложений на PHP. Если вы никогда раньше не писали тестов для вашего приложения, вам обязательно стоит взглянуть на Codeception. Он очень прост в использовании и сделан специально, чтобы уберечь разработчиков от рутины.

Сегодня я хотел бы рассказать, какие фичи появились в проекте в последнее время, а также отвечу на пару популярных вопросов.
+18
10 мая 2012, 14:03
117
Davert 53,8

Тестирование в Java. Spock Framework

TDD*, JAVA*

В предыдущих статьях на примерах JUnit и TestNG я упоминал о test-driven development(TDD) и data-driven testing(DDT). Но есть еще один активно набирающий популярность подход, behaviour-driven development(BDD). Это такое развитие TDD техники, при котором на тест смотрят не как на тестирование каких-то компонентов системы, а как на требования к функционалу. Если TDD оперирует такими понятиями, как тест или метод, то для BDD это спецификация и требования. Про эту технику уже говорили на хабре ранее:

Этот подход применим используя и JUnit, и TestNG. Но есть и другие инструменты заточенные именно под BDD. В этой статье я расскажу про такой фреймворк. Называется он Spock Framework и сочетает в себе не только принципы BDD, но и достоинства Groovy. Да-да, именно Groovy. И хотя используется Groovy, используется он и для тестирования Java кода. Примерами использования могут служить Spring, Grails, Tapestry5. Интересно? Тогда читаем дальше.
+30
6 февраля 2012, 00:52
109
sody 18,0

Тестирование параллельных потоков

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

А зачем вообще это нужно?

+20
10 января 2012, 10:29
51
d7k 4,1

О влиянии TDD на разработку (мнения читателей)

TDD*
Добрый день уважаемые посетители habrahabr.ru!

Давным-давно, когда я работал в одном из стартапов, где я был основным иницатором и продвиженцем внедрения TDD, у меня возник спор с моим «техническим директором» (если его можно было так назвать) на тему того как TDD влияет на получаемый в итоге код. Он сделал одно простое замечание, на которое я не смог тогда найти, что ему ответить – «При подобном подходе к разработке в коде появляются дополнительные интерфейсы (я практиковал подход к тестированию с помощью Mock'ов, Stub'ов и подмены реализаций интерфейсов) и уровни, усложняющие и замедляющие код».
Что бы Вы ответили?
+22
7 декабря 2011, 23:06
40

Учебный пример разработки PHP-класса с использованием TDD из песочницы

TDD*
В данном посте приводится учебный пример разработки PHP-класса, который совершает запрос к Twitter API с целью выборки статусов пользователя по его никнейму. Кроме того, Twitter-класс кеширует полученные данные с использованием еще одного PHP-класса, который осуществляет простое кеширование данных в файлах.

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

+34
10 октября 2011, 17:23
108

Юнит-тесты в Cocoa

TDD*
Ниже описаны основы использования OCUnit — фреймворка для создания юнит-тестов, интегрированного в Xcode. Чтобы наглядно попробовать описываемые вещи, код можно скачать сразу. Писал до эпохи Xcode 4, поэтому картинки немного устарели.

+14
6 октября 2011, 21:56
31
shoumikhin 15,5

А ты используешь TDD, хабрачеловек?

TDD*
0.98%
(16)
Да, всегда (test-first, покрытие стремится к 100%). Интеграционные тесты не пишем.
2.87%
(47)
Да, всегда (test-first, покрытие стремится к 100%). Есть и интеграционные тесты.
6.48%
(106)
Да, там, где удобно. Где неудобно — не используем. Пишем интеграционные тесты.
10.69%
(175)
У нас тест-ориентированная методология (тесты есть и достаточно много), но не обязательно test-first.
4.76%
(78)
Есть интеграционные тесты, а тесты на отдельные функции/классы в изоляции почти не пишем.
24.98%
(409)
Пишем тесты от случая к случаю
49.24%
(806)
Не используем автоматизированные тесты в разработке.

Проголосовало 1637 человек. Воздержалось 535 человек.

+42
30 сентября 2011, 07:50
3
Shaddix 11,5

Real-life unit tests

TDD*
Часто мне приходилось слышать, что кто-то послушал лекцию или прочитал статью про юнит-тесты, вроде как всё понял; решил сам попробовать — и ничего не получилось.

Почему так получается?

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

В этом видео на живом примере показано, как писать юнит-тесты для кода с внешними зависимостями.

www.devclub.eu/2011/06/06/asolntsev-real-life-unit-tests/

+14
27 августа 2011, 02:16
39
asolntsev 40,0