Program Slice

• Weiser’s definition) A subset of a program that preserves the behaviour of the program for a specific criterion.

• Proposed Applications

• Testing
• Debugging
• Maintenance
• Re-engineering
• Re-escape
• Comprehension
• Refactoring

Static Slicing

* considers all possible executions
* for all possible inputs


Dynamic Slicing

* considers specific executions
* for a specific input, and only preserves the behaviour for that input