- Document Basket
-
- The document basket is empty
To place a document in the briefcase, you should drag and drop it from where it is linked on the site.
- The document basket is empty
With most common software development models, which typically involve a test phase at the end of the project, there is little time for comprehensive testing. But beyond this, necessary software changes that only become apparent during testing, have to be painstakingly integrated into the program code. In other words: testing is far too late.
Test-driven development, a now well-proven agile software development method, takes another route. The drawing up of test scenarios and testing itself are no longer the final phase of project development, but its inception. Once the required test models have been elaborated, the tests themselves direct the programming, rather than the reverse. But how can you test a program code that does not yet exist? Frank Westphal, author of the book "Testgetriebene Entwicklung mit JUnit & FIT" (Test-driven development with JUnit & FIT), explains:
"Test-driven development begins with a failed test. Software is developed in secure, incremental steps, which, in a shuttle process, target each new requirement (in other words, pass the failed test) and thus advance the design (thereby overcoming all future tests)"
(Source: www.frankwestphal.de).
Software development thereby becomes a cyclical process, "Test – Develop – Test", in small increments: each functional program change being motivated by a test; each new test building on the previous one; each result extending and improving the program while maintaining all available functionality.
A necessary prerequisite for this process is the availability of repetitive, as far as possible automated Unit Tests – and therefore the appropriate testing tools. Various tools support test-driven development. They signal a successful test with a green bar and an unsuccessful one with a red bar. Developers thus refer to "green" and "red" tests.
After each successfully completed Unit Test, Refactoring is carried out. This is a process whereby the code is restructured and optimized ("cleaned-up") to meet code guidelines, remove redundant lines etc. The goal is to have simpler, comprehensible and more easily extendable code.
The automated Unit Tests give developers continual feedback and, at the same time, workable production specifications (Unit Tests document each new function). Errors and weaknesses are recognized early and can be immediately corrected, while automation ensures that no test case is bypassed. In addition, automated systems and acceptance tests ensure that the software components – once they are assembled into larger, integrated system units – precisely meet the client's requirements.
Test-driven development and refactoring bring the customer software solutions with trim, tested, maintenance-, modification- and extension-friendly applications.
congstar GmbH
Read the Case Study:
24 sec. Company Culture
47 sec. congstar
3 min. 4 sec. Management
3 min. 25 sec. News
3 min. 44 sec. New DQS web platform now online