In traditional software development, testing occurs after programs are written. At Robocoder Corporation, test cases are created before program design begins. Effectively, programs are designed and written to satisfy the test cases. In this way, requirements are met easily and revisions are rare.