Рекомендуемая вещь для новичка TDD

Моя компания разработала инструмент миграции Source Safe на Subversion: http://www.abstrakti.com/en-US/Products/Krepost

Этот инструмент был разработан после проблемы с любым другим инструментом, когда нам пришлось перенести репозиторий клиента.

Дайте мне знать, если у вас возникнут проблемы, я буду рад вам помочь.

Эрик.

8
задан Mark 20 October 2009 в 03:24
поделиться

6 ответов

1). Do I have to do test-first in TDD? I heard that TDD is not about test. It's about design. I'm agreed that it's good to do test-first but what I like to know is that is it still TDD if we follow the test-last approach?

Yes! Strictly speaking TDD is Test-Driven Development. So the development is driven by the test. So you test first, then develop program to pass all tests.

2). Shall we prefer to use BDD over TDD? I used to list out the specification of my task first and I try to write the test case based on my specification. Is it wrong approach? Do you guys prefer using BDD or TDD for your development?

I think you should balance them. Use other technique to provide overall design first as best as time provide (do risk management to find appropriate time you should spend on designing) (Find a paper about "RUP essential". It give quite a good idea about balancing agile and less-agile). Identify the most critical parts then creates test and develop to pass the test.

3).Mocking? Some people from my team used to say that they are praticsing TDD. But they never follow test-first approach. they never mock the data. Do we have to mock the data in TDD?

Test-first and mocking is not the same thing. Mocking allows code to be more testable as well as be testable when other part (which this code relies on) does not exist. So if there is no such dependency (IF!!), then you can to not mock them. (Read "Working Effectively with Legacy Code" about Seam point for more details).

4). "Using Mock Library" Vs "creating the mock class with data manually". Do you prefer to use mock library or create the mock classes with some mock data?

I think it just like using someone-else library or create yourown. Totally depends on the situation and many factors. For example, if you project is big and you can find appropriate mock library, use it.

5). Any recommended book for TDD or BDD? I read Kent Beck's classic Test-Driven Development - By Example. I found that this book is published in very early stage of TDD so some of the things in this book are not a bit outdated.

There are list of books on TDD here.

Hope this helps.

3
ответ дан 5 December 2019 в 21:20
поделиться
  1. Yes, it is about design, but this design methodology does involve writing tests first. People follow this rule with varying degrees of strictness, but most people I know who practice TDD tend to believe that it's better to follow the rule.
  2. BDD has been described as TDD done right. The difference is minimal. Essentially BDD just makes the point about tests as specifications more explicit.
  3. There is a great deal of disagreement about the usefulness of mocks. I personally prefer to test interfaces, and I avoid placing expectations in a mock. That said, testing in isolation is still a good idea for a wide variety of reasons, not the least of which is test speed. There's nothing more annoying than refactoring a piece of code which still conforms exactly to the previous interface, having a fully-working end result, and yet all the tests fail because the expectations on the mock weren't met anymore. Bad mock usage results in testing of implementation details rather than ensuring that the work performed is correct.
  4. See #3. I prefer to just use a stub with no expectations or alternatively an integration test.
  5. Test-Driven Development: A Practical Guide by Dave Astels. Highly recommended.
2
ответ дан 5 December 2019 в 21:20
поделиться
  1. Да, тестирование в первую очередь - это то же самое, что и TDD.
  2. Если у вас нет опыта ни с одним из них, я бы начал с TDD, чтобы намочить ноги (мое мнение).
  3. Вы НЕ ДОЛЖНЫ издеваться над TDD. Однако, если в вашем приложении есть классы, которые зависят от других классов (что практически гарантировано), вы должны столкнуться с издевательством. Кстати, издевательство - это не насмешка над данными, а насмешка над взаимодействием между тестируемым классом и его сотрудниками, другим классом (классами), от которого он зависит.
  4. Насмешка вручную - хороший способ понять это, но издевательство / изоляционные фреймворки - это то, что вам нужно, если вы не хотите тратить все свое время на написание фальшивых реализаций.
  5. ИМО, книга Бека - вечная классика и отличный способ начать. Если вы работаете с .NET, Я только что прочитал «Искусство модульного тестирования», в котором подробно рассматриваются передовые методы и практики модульного тестирования.
0
ответ дан 5 December 2019 в 21:20
поделиться

(Я выбрал самый простой вопрос, чтобы ответить, поскольку я не могу отвечать на другие вопросы. вопросы)

Любая рекомендованная книга для TDD или BDD?

Гибкая разработка программного обеспечения, принципы, шаблоны и практики, Роберт К. Мартин

Объяснение экстремального программирования, Кент Бек

0
ответ дан 5 December 2019 в 21:20
поделиться

Должен ли я выполнять предварительное тестирование в TDD?

Да, TDD обязательно сначала тестируется. Написание теста в первую очередь позволяет думать о функции, которую нужно написать, с точки зрения поведения, а не реализации, сосредоточившись на вызове функции и проверке результата. Это приводит к тестируемому коду; иначе вы можете оказаться в тупике.
Написание тестов в первую очередь также помогает не забывать и не пренебрегать тестами.

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

Мы предпочтем использовать BDD вместо TDD?

Некоторые говорят, что BDD - это правильно выполненная TDD , поскольку основное внимание уделяется спецификациям.

Должны ли мы имитировать данные в TDD? Некоторые люди из моей команды говорили что они практикуют TDD. Но они никогда не следуйте принципу «сначала тестирование».

Вам не нужно использовать фиктивные объекты. Есть просто инструмент, который иногда может быть удобен.

"Использование Mock Library" Vs "создание фиктивный класс с данными вручную ».

Я никогда не чувствовал необходимости прибегать к генератору фиктивных объектов.

Любая рекомендованная книга для TDD или BDD?

TDD, например, является очень хорошим учебником и представляет множество Еще одна замечательная книга, больше справочная - xUnit patterns .

0
ответ дан 5 December 2019 в 21:20
поделиться

Должен ли я выполнять предварительное тестирование в TDD?

Да, TDD, по сути:

vagueness -> bullet points -> tests -> code

Если вы используете какой-то другой процесс, может иметь смысл использовать некоторые инструменты и методы, но на самом деле это не будет TDD. Что бы это ни стоило.

Издевательство?

Есть 4 более или менее жизнеспособных альтернативы, которые будут отстаивать разные гуру.

  1. mock-to-zero: имитируйте каждую зависимость так, чтобы каждая единица (например, java-класс) была эффективно проверена на изоляцию.

  2. mock-to-linear: имитируют только циклические зависимости, так что существует линейный порядок тестов, при котором каждая единица тестируется только с проверенными зависимостями.

  3. имитация скорости: имитируйте только медленные, асинхронные или другие проблемные интерфейсы.

  4. Нулевое издевательство: просто протестируйте материал, используйте отладчик, чтобы выяснить, что происходит, если что-то сломается.

Избегайте №1, если вам не нравится ваш инструмент издевательства, и избегайте №4, если вам не нравится ваш отладчик.

1
ответ дан 5 December 2019 в 21:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: