The test driven
development and the agile version of the model driven development i.e.., the
agile model driven development are now much in the talks these days!! But many
people get confused between the two and are not able to distinguish between
them.
This article is all about a comparison between the test driven
development (TDD) and the agile model driven development (AMDD).
"Agile model driven development involves the
creation of the agile models rather than extensive models as in the case of MDD
and the whole development process is driven by these models only."
"The test
driven development is not an agile method but the AMDD is and it is used for
scaling the agile software development."
Stages of AMDD
The following are the stages of the
high level life cycle of the AMDD:
- Envisioning
- Iteration modelling
- Model storming
- Reviews
- Implementation
Stages of TDD
|
Below mentioned are the steps that
form the short development cycles in a test driven development process:
- Addition of a test
- Execution of all tests in order to check the working of the new one and also for the validation of the test harness for its correct working.
- Execution
of the automated tests and observing their success.
- Re-factoring
of code and cleaning up of the code.
- Repetition
of the whole cycle in order to improve the functionalities.
One of the common scenes during the development is of the
model storming sessions. All of the team members model storm for
few minutes and then get back to the coding work. The coding is done using many
agile software development practices like:
- Refactoring
- Test
first designing (TFD)
- The above two processes
consume time depending up on the complexity and length of the code.
- It may take several hours to implement what
has been modelled in the model storming session.
- The test driven development is
actually being implemented here since the combination of the above mentioned
two processes is nothing but test driven development.
- This is the stage where
the most of the time of the development team will be spent.
- Since this is a
sort of agile software development, most of the modelling is carried out in the
form of executable specifications with the help of development or customer
tests.
- All these efforts are supposed to work since with the agile development
you are able to think through the cross entity issues and with the test driven
development you are able to think about the much focussed issues. But you can
take up only a single entity at a time.
What more?
- The re-factoring helps you
evolve your design in small iterations to maintain the high quality of your work.
- With
the test driven development the confirmatory testing of your program’s code is
done and also the detailed specifications are given.
- The above mentioned
customers tests are also the agile acceptance tests and they form a part of the
detailed requirements that are tested by the developer as detailed design.
- Such
tests serve as a great example of the single sourcing information.
- Single
sourcing is nothing but a technique used by the developers to reduce the
overall documentation and thus travel light.
- In the whole process, the high
level specifications should not be over looked.
No comments:
Post a Comment