Presentation only: From Use Case Driven to Test Driven Modularization
In software development, we must always be ready to respond to changes. To reflect changes flexibly, code should be organized according to system usage. Making code modularization fully reflect system usage may seem to be too ambitious. Fortunately, tests capture system usage in a well readable form of examples. However, relating a change to the corresponding place in code remains difficult because code is organized according to technical concerns, such as objects. In this paper, we propose test driven modularization, which aims at organizing code according to tests and enforces tests to be represented in code. For this, use case modularization is adapted to accommodate expressing tests in code. Test driven modularization remains compatible with use case modularization while at the same time opens new capabilities of having different views on software based on use cases and various tests simultaneously. The results of measuring effort to comprehend user actions in user interface of scenarios and complexity of use case modules show that employing user acceptance tests in code improves code comprehension and maintenance. Also, test driven modularization reduces switching between tests and code in test driven development.