Test Driven Development - The Basic

What is Test Driven Development ?

An advance technique to develop software using automated unit tests to drive the design of the software and force decoupling of dependencies.

What is the Origin of Test Driven Development ?

Test Driven development is a core part of the agile process formalized by Kent Beck called extrime Programming (XP). The rule of XP was to test everything that could possible break. The practice of testing in XP has evolved into Test Driven Development.

Is it Necessary to adopt XP to practice Test Driven Development ?

The answer is no.

What is the Characteristics of Test Driven Development ?

* Maintain an exhaustive suite of Programmers Test.
* No code goes into production unless it has associated tests.
* Write the tests first.
* Test determine what code you need to write.

What is the Life Cycle of Test Driven Development ?

Step 1: Write Test
Step 2: Compile
Step 3: Run and see fail
Step 4: Refector as needed
Step 5: Go to Step 1

What are the benefits of Test Driven Development ?

* Better Code.
* Very few bugs.
* Meet requirement.
* Remove duplication.
* Less debug time.
* Tests become an Asset.
* Tests are documentation.
* De-couple.

What can be Tested ?

* Valid Input.
* In-valid Input.
* Exceptions.
* Boundary Conditions.
* Everything that should be possible break.

What are the characteristics of Testing framework ?

* Test must be automated.
* A simple tool collect, oraganizes and automatically call test code.
* Graphical Test runner.
* Could be added to build environment.

Give some example of popular Testing framework ?

* NUnit - Dot Net
* JUnit - Java
* VBUnit - Visual Basic
* CppUnit - C++
* JSUnit - Javascript