Tests on different test levels usually have different goals. Unit tests generally focus on the program logic within a software component and on correct implementation of the component interface. It would be very inefficient to test these issues with a GUI based system test approach. It may be difficult to force the system under test into system states needed. Or the resulting 572 system state cannot be verified accurately, because it is not visible on the user interface. Additionally, the debugging effort for program logic bugs detected during system tests will be considerably higher. Many organizations, we have been working in, rely mainly on system tests, with only unsystematic unit testing.