Professional Documents
Culture Documents
Fig. 1.
Not having enough time to test: Usually when a developing solution via the traditional testing, things are
entirely focused on code that will make all work as
fast as possible, not wondering if youre making a
mistake with every new piece of code added, and
just until everything is finished, we start testing the
product with little time left to the deadline and probably
under pressure. TDD breaks in, introducing unit tests
throughout the developing process making this problem
go away [1].
Testers In some software companies are hired to find
and fix, if necessary, bugs on a software foreign software that with some fixes here and there some other
errors may emerge not knowing who was the actual
responsible for them [1]. TDD does not transfer responsibility issues over code, instead is carried by the person
that actually writes the code.
Slow development do to the fact that testing is hard to
manage, therefore it will slow the development process
down [1] . On the other hand, introducing TDD might
slow down the development process in the short term
simply because testing is actually performed. In the
long run, however, it assists in shortening the integration
period [1], especially if there are continuous integration
throughout the project development.
V. M ISCONCEPTIONS
When we run again the test we see that now the test passes
the evaluation, we reached the second step of TDD. And now
comes the refactoring step, in this example probably there is
something to be refactor, but assuming that there is not more
possible refactoring to do, we finished the test, meaning that
is working at first hand but this code does not resolve all of
our problems, so at this point is where we start again with
the cycle of TDD making another test for our little program.
Perhaps coding another test for the same method, but this
time adding a more complex input such as the full word or a
test for fixing a word whose error does not lie on the last two
characters but do in the middle area. And many more test
that we can think of to help cover a wide range of common
and uncommon errors that by having control over them, we
could provide a good quality final product.
R EFERENCES
[1] Orit Hazzan, and Yael Dubinsky, Agile Software Engineering.
Springer, 2009, pp. 1-14, 121-128.
[2] Lech Madeyski, Test-Driven Development: An Empirical Evaluation
of Agile Practice. Springer, 2010, pp. 1-3.
[3] Vesa Lappalainen, Jonne ltkonen, Sami Kollanus and Ville Lsomttnen,
ComTest: A Tool to impart TDD and Unit Testing to Introductory
Level Programming. 2010.
[4] Sohel Rana, Test Driven Development (TDD) Step by Step. 2009.
In:
http://www.codeproject.com/Articles/47747/
Test-Driven-Development-TDD-Step-by-Step-Part-In.
Visited in March 2014.
[5] Roy Osherove, the art of UNIT TESTING with Examples in .NET.
1st Edition. Manning Publications, 2009. pp 1-20.
[6] Steven Fraser (Chair), Barry Boehm, Dave Astels, John McGregor,
James Newkirk, Kent Beck and Charlie Poole, Discipline and Practices
of TDD (Test Driven Development). 2003.
[7] Java test Primitives, AssertEquals(). IBM Infocenter.