DS3 is a technique that decomposes complex system test cases into simpler test cases using log-based program slicing. It performs the following steps: 1. Uses static slicing to initially decompose test cases based on assertions. 2. Analyzes test case execution logs to identify dependencies between statements and global resources. 3. Refines the static slices by adding missing dependencies identified in the logs. 4. Merges slices that share all non-assertion statements to minimize duplication. An evaluation on two large systems found that DS3 produced well-formed test case slices and significantly reduced test case execution times compared to the original complex test cases and standard static slicing. The sliced test cases also maintained similar