Automating test execution separates the creative work of designing test cases from the mechanical work of executing them. This allows tests to be executed frequently and at scale. Scaffolding code like test drivers, stubs, and harnesses supports automation by providing control and observability during testing. Scaffolding can range from individual test case drivers to frameworks that generate and execute large test suites automatically. Capture and replay of manual test cases also helps reduce repetition of human testing efforts.