(1) unit testing, where the use cases for unit testing are derived from the detailed design of the unit. Functional testing and structural testing can be used in unit testing. (2) integration tests often find design errors in this test step. (3) system tests often find errors in requirements specifications during this test step. In general, system testing is functional testing, not structural testing.