Test Driven Design Methodology for Component-Based System

For modern systems there is growing proof that serial/traditional approaches, such as the traditional waterfall model and model driven architecture, are ineffective and development lifecycles need to be iterative and incremental. In this presentation, we discuss the iterative and incremental approach for software design methodology called test driven design (TDD). The TDD development cycle starts with the requirement specification and therefore captures defects much earlier in the development cycle. TDD requires that no production code be written until first a unit test is written. We compare TDD with the traditional methods and describe in detail the TDD method. We cover continuous integration, acceptance testing, system wide testing for each iteration, test frameworks, cost of change, ROI, benefits and limitations of the new test driven design and provide evidence from industry that TDD leads to higher programmer productivity with higher code quality. The future work investigations will extend the reach and effectiveness of TDD by using latest technologies to generate tests from message sequence charts and generating code thru use of a model compiler leading to an advanced test driven design methodology. Further investigations will also look at the concurrency issues by use of LTSA (labelled transition analyzer) technology.

[1]  Martin Fowler,et al.  Refactoring - Improving the Design of Existing Code , 1999, Addison Wesley object technology series.

[2]  Victor R. Basili,et al.  Iterative and incremental developments. a brief history , 2003, Computer.