Test Driven Development
Test Driven Development is a rapid cycle of testing, coding, and refactoring. It’s the practice of always writing test codes before the code is written. Writing the tests first allows to see the list of tests that must be passed. In addition, the risk of finding bugs and change needs late in waterfall software development are avoided by obligatory writing classes which meet the requirement. Using test classes are also useful in handling additional business scenarios in the future rapidly. In short, the benefits of TDD are that it:
– increases code quality
– increases the understanding of the code
– reduces error
– is ready to deliver code anytime
– reduces the total cost of ownership.
Continuous Integration is the system that aims to continuously integrate the code generated by the development team with the codebase. The integration process can be automated by some specific tools that uses scripts and processes as frequently as needed. This way the compatibility of the new code is being tested automatically and this also supports the integration errors being found earlier. In addition to that, unit tests or system level tests can be done automatically without any human effort. Running tests frequently without any effort ensures that the system is reliable and stable, resulting in high quality products. In summary, benefits of Continuous Integration are:
– errors are found and fixed earlier
– monitoring and measuring the health of the system is easier
– testing is done over working software any time, not based on assumptions,
– repeated human effort is decreased
– working software can be delivered anytime or in a very short time
– transparency is built
– trust is established inside and outside the team.