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