Software testing is a mechanism in which the program or an application is executed where the basic intention is to find out the discrepancies and deviations between the desired result or the outcome and the actual result or outcome. There have been various techniques and methods of test execution. One of the effective ways or methods of testing is the Test-driven development which is also referred to as TDD.
TDD is a software development mechanism which advocates and promotes shorter development cycles. In TDD, you write the functional code based on the test scenarios or test cases identified v/s the functional code that will get written first after which the testing team executes their set of test scenarios and test cases on it. Here the requirements are first broken down into sub-requirements. Once the sub-requirements are determined, the testing team starts the identification of test scenarios and test cases. The test team performs a cycle of reviews of their test scenarios and test cases and once those are choses, the first sets of priority test cases are ready for test execution. These are passed on and shared with the development team. The development team starts coding activities based on the test scenarios and test cases shared. Meanwhile the quality engineering team executes these test cases on the product or the application under test which is most probably going to fail, but eventually the test cases start passing as the functional code gets written. With this the developer also has to ensure that there is growing code for every test case, hence it’s essential to optimize it and enhance it further. While doing so the developer has to ensure that the:
- Code covers the functional requirement
- Code covers the test case or test scenario written
- Code doesn’t cover redundant or duplicate scenario/test case
- Code should be scalable
- Code should be maintainable
- Code should be written in such a way that even a new developer can easily understand the function blocks
However before opting for this model, it is essential for decision-makers to ascertain:
- Effectiveness of introduction of this model.
- Return on Investment(ROI)
- Correctness of usage of this model without causing any rework or change of this model to something else during the course of project execution, which will then have an impact on cost, timelines and efforts.
[Tweet “Test Driven Development ~ via @CalsoftInc”]