TDD stands for Test-Driven Development, or Test-Driven Design. It is the practice of writing a unit test before writing code to satisfy it, in what is known as the Red-Green-Refactor cycle.
15
votes
6answers
551 views
Does adding unit tests make sense for well-known legacy code?
I'm talking about unit tests in the TDD sense. (Not automated "integration", or what you like to call it tests.)
Legacy code as in: (C++) code without tests. (see: Michael Feathers' Working ...
15
votes
3answers
932 views
Does TDD lead to the good design?
I'm in transition from "writing unit tests" state to TDD.
I saw as Johannes Brodwall creates quite acceptable design from avoiding any of architecture phase before. I'll ask him soon if it was real ...
14
votes
5answers
841 views
How granular should TDD tests be?
During TDD training based on medical software case we are implementing the following story: "When user presses Save button, system should add patient, add device and add device data records".
The ...
14
votes
7answers
2k views
Difference Between Unit Testing and Test Driven Development
From reading the descriptions, I understand that in TDD tests are done prior to writing the function and in Unit Testing, its done afterwards.
Is this the main difference, or the two terms can't even ...
14
votes
6answers
979 views
Should we test all our methods?
So today I had a talk with my teammate about unit testing. The whole thing started when he asked me "hey, where are the tests for that class, I see only one?". The whole class was a manager (or a ...
14
votes
4answers
767 views
TDD - Outside In vs Inside Out
What is the difference between building an application Outside In vs building it Inside Out using TDD?
These are the books I read about TDD and unit testing:
Test Driven Development: By Example
...
14
votes
5answers
793 views
Whats the real overhead of TDD once the entire team is used to it?
What percentage of time is saved and costed doing TDD.
I assume this percentage of cost and reward changes during a projects life-cycle.
I'd imagine the initial phase has a lot more cost but little ...
14
votes
6answers
508 views
Do abstractions have to reduce code readability?
A good developer I work with told me recently about some difficulty he had in implementing a feature in some code we had inherited; he said the problem was that the code was difficult to follow. From ...
13
votes
6answers
747 views
TDD: What happens before the first unit test?
I mostly understand the theory of TDD, but I can't figure out how to get started. I sit down to write a unit test for a personal project and realize . . . I have no idea what I am testing. What ...
13
votes
5answers
275 views
TDD, new tests while old ones not implemented yet
I am experimenting with test-driven development, and I found that I often come to a following situation:
I write tests for some functionality X. Those tests fail.
While trying to implement X, I see ...
13
votes
4answers
583 views
Unit testing statically typed functional code
I wanted to ask you people, in which cases it makes sense to unit test statically typed functional code, as written in haskell, scala, ocaml, nemerle, f# or haXe (the last is what I am really ...
13
votes
9answers
2k views
I hate TDD but I want to like it, is there a good book for that?
I've been learning rails recently and I have heard a lot about TDD. currently I hate it, it just seems like an annoyance but I understand the advantages of it and I want to convert to that style of ...
12
votes
4answers
4k views
What is an integration test exactly?
My friends and I have been struggling to classify exactly what is an integration test.
Now, on my way home, I just realised, that every time I try to give a real world example of an integration ...
12
votes
4answers
444 views
How can I start testing in a testing anticulture?
I have a confession to make: Formalized automated testing was never a part of my programming background. I now work in a very large company with many developers (most of them web developers of one ...
12
votes
8answers
345 views
Alternative to “Passing/Broken build” indicator?
When having a continuous integration executing the tests at each commit, a common best practice is to have all the tests passing at all times (aka "do not break the build").
I find some problems with ...
12
votes
5answers
1k views
What are the design principles that promote testable code? (designing testable code vs driving design through tests)
Most of the projects that I work on consider development and unit testing in isolation which makes writing unit tests at a later instance a nightmare. My objective is to keep testing in mind during ...
12
votes
7answers
522 views
Looking for Case Studies of How TDD Improved Quality and/or Speed of Development
At my company I am trying to make a case for why we should be doing TDD. Currently most developers just do whatever they can to get the project done, then go add unit tests after the fact in order to ...
12
votes
2answers
432 views
What are some good books/resources/ways to learn TDD? [closed]
As a grad student, I haven't really written anything to test my code. Usually what we do is just run the code on some test input and if the output result looks okay or as we expected then we just ...
12
votes
3answers
836 views
Real-world examples of apps written with TDD and good test coverage?
Are there any open source applications that are developed using test driven development that serve as models of how good unit testing should work?
I'd prefer to see examples in C# and .NET. (Note ...
12
votes
8answers
869 views
What do you use for JavaScript Testing (TDD)?
What do you use for JavaScript testing both server-side and client-side?
12
votes
4answers
1k views
Resources for Test Driven Development in Web Applications? [closed]
I would like to try and implement some TDD in our web applications to reduce regressions and improve release quality, but I'm not convinced at how well automated testing can perform with something as ...
11
votes
1answer
743 views
Should I write a test to prove that deleting code fixes a bug?
Occasionally I'll run into the situation where fixing a bug requires that I delete a section of code. The TDD purist would (I assume) advocate writing a failing test, deleting the code, then watching ...
11
votes
10answers
717 views
How to convince teammates to use TDD
I am the only person on my team that use TDD. How do I make them to use it?
I am annoyed that when I pull, someone's code will break my tests and I am the one who has to fix them.
Will using github, ...
11
votes
7answers
514 views
TDD with limited resources
I work in a large company, but on a just two man team developing desktop LOB applications. I have been researching TDD for quite a while now, and although it is easy to realize its benefits for ...
11
votes
4answers
749 views
Does following TDD inevitably lead to DI?
I learned to do Test Driven Development (TDD), Dependency Injection (DI) and Inversion of Control (IoC) all at the same time. When I write code using TDD I always end up using DI in my class's ...
11
votes
2answers
680 views
Relation between BDD and TDD
What is the relation of BDD and TDD?
From what I understood BDD adds two main things over TDD: tests naming (ensure/should) and acceptance tests. Should I follow TDD during development by BDD? If ...
11
votes
4answers
372 views
TDD with SQL and data manipulation functions
While I'm a professional programmer, I've never been formally trained in software engineering. As I'm frequently visiting here and SO, I've noticed a trend for writing unit tests whenever possible ...
11
votes
3answers
4k views
Good unit test examples for embedded C developers
I'm going to be giving a talk to my department next week about unit testing and test-driven development. As part of this, I'm going to show some real-world examples from some code I've written ...
11
votes
3answers
469 views
TDD for batch processing: How to do it?
I like "red/green/refactor" for RoR, etc. just fine.
My day job involves batch processing very large files from third-parties in python and other custom tools.
Churn on the attributes of these files ...
11
votes
2answers
328 views
Are there any scientific studies done on TDD that use total cost of ownership for a product as the measurement?
When I was reading the summary of previous work in Dogsa T, Batic D. The effectiveness of test-driven development: an industrial case study. Software Quality Journal. 2011;19(4):643-661. it struck me ...
11
votes
3answers
1k views
Unit testing C++: What to test?
TL;DR
Writing good, useful tests is hard, and has a high cost in C++. Can you experienced developers share your rationale on what and when to test?
Long story
I used to do test-driven development, ...
10
votes
5answers
458 views
Methods for testing a very large application
I have a PHP app which is very large. There are usually 2-3 developers working on it full time and we are getting to the point where we are making changes and creating bugs (cough features!). The ...
10
votes
2answers
385 views
Software Testing Techniques [closed]
What kinds of software testing do you know? I've heard about Test-Driven Development, Unit tests etc, but can't understand their importance and difference. For example, why are we using regression ...
10
votes
4answers
1k views
Why is Conway's “Game of Life” used for code retreats?
Code Retreat is an all-day training event that focuses on the fundamentals of software development. There's a "global" code retreat day coming up, and I'm looking forward to it. That said, I've been ...
10
votes
4answers
776 views
Does test-driven development force me to follow SOLID?
I hear a lot from TDD practitioners that one of TDD's advantages is that it forces developers to follow SOLID principles (Single responsibility, Open-closed, Liskov substitution, Interface segregation ...
10
votes
2answers
481 views
How can I unit test audio?
I have inherited a small project and want to extend it and stabilize it at the same time by writing Unit Tests for all the new code I am adding. The first class, TypedAudioCreator, creates audio files ...
10
votes
6answers
544 views
Starting new project with TDD
I'm studying TDD and I read that it also helps you to define the design of the app, correct?
So I decided to start creating a new project to help me understand it better.
I want to create a simple ...
10
votes
4answers
451 views
A new name for unit tests
I never used to like unit testing. I always thought it increased the amount of work I had to do.
Turns out, that's only true in terms of the actual number of lines of code you write and furthermore, ...
10
votes
3answers
134 views
How do you efficiently keep your tests working as you redesign?
A well-tested codebase has a number of examples, but testing certain aspects of the system results in a codebase that is resistant to some types of change.
An example is testing for specific ...
10
votes
2answers
180 views
How would type errors be detected while creating mocks in a dynamic language?
The problem occurs while doing TDD. After a couple of test pass, the return types of some class/module change. In a statically typed programming language, if a previous mocked object was used in the ...
9
votes
8answers
838 views
TDD: Am I doing it right?
I'm a new programmer (only been learning for about a year) and in my goal to become better at it I have just recently learned about TDD. I wanted to get into the habit of using it since it seems very ...
9
votes
4answers
747 views
Should each unit test be able to be run independently of other tests?
Say you have tests for two methods of a class. The first method gathers data from another tier and puts it into some sort of storage independent of the runtime (such as a SQL table), so all of the ...
9
votes
4answers
333 views
Is it OK to introduce methods that are used only during unit tests?
Recently I was TDDing a factory method. The method was to create either a plain object, or an object wrapped in a decorator. The decorated object could be of one of several types all extending ...
9
votes
3answers
459 views
What to do when your colleagues don't value code maintainability [duplicate]
I've been working in the same software development department for a few years now. In that time, the average stay of a developer has been 6-9 months. A handful have been around for over 2 years, but ...
9
votes
4answers
417 views
How to unit test a function that is refactored to strategy pattern?
If I have a function in my code that goes like:
class Employee{
public string calculateTax(string name, int salary)
{
switch (name)
{
case "Chris":
...
9
votes
4answers
584 views
Does TDD's “Obvious Implementation” mean code first, test after?
My friend and I are relatively new TDD and have a dispute about the "Obvious Implementation" technique (from "TDD By Example" by Kent Beck). My friend says it means that if the implementation is ...
9
votes
5answers
1k views
What are the best resources for learning TDD? [closed]
I want to learn (and master) TDD. What are the best:
books
websites
videos
list of exercises
personal words of wisdom
for learning, appreciating, and using TDD?
9
votes
2answers
352 views
How to TDD that the correct results are returned
I'm starting a new project, and trying very very hard to use TDD to drive the design. I've been pushing for years, and finally got approval to spend the extra time on this project to use it while I ...
9
votes
5answers
464 views
How to do TDD for something with many permutations?
When creating a system like an AI, which can take many different paths very quickly, or really any algorithm that has several different inputs, the possible result set can contain a large number of ...
9
votes
3answers
485 views
Is it a good idea to do TDD on low level components?
I'm considering writing a low level driver or OS components/kernels.
The osdev.org folks seem to think that the important bits are not meaningfully testable this way, but I have read some discussions ...
