Implementation is different in every testing project. In one project, you might decide to build both automated test scripts and manual test scripts. Designing tests, instead, is an iterative process. You can start designing tests before any system implementation by basing the test design on use case specifications, requirements, prototypes, and so on. As the system becomes more clearly specified and you have builds of the system to work with, you can elaborate on the details of the design. The activity of designing tests answers the question, “How am I going to perform the testing?” A complete test design informs readers about what actions need to be taken with the system and what behaviors and characteristics they should expect to observe if the system is functioning properly.