Mark Weiser University of Maryland, College Park IEEE CHI, 1981

Slides:



Advertisements
Similar presentations
Analyzing Regression Test Selection Techniques
Advertisements

Michael Hildebrandt H UMBOLDT U NIVERSITY B ERLIN D EPARTMENT O F C OMPUTER S CIENCE C HAIR O F S OFTWARE E NGINEERING.
Overview Structural Testing Introduction – General Concepts
A Survey of Program Slicing Techniques A Survey of Program Slicing Techniques Sections 3.1,3.6 Swathy Shankar
Program Slicing – Based Techniques
Course Outline Traditional Static Program Analysis –Theory Compiler Optimizations; Control Flow Graphs Data-flow Analysis – today’s class –Classic analyses.
Chair of Software Engineering From Program slicing to Abstract Interpretation Dr. Manuel Oriol.
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
Program Slicing; Andreas Linder eXtreme Programming lab course 2004.
A survey of techniques for precise program slicing Komondoor V. Raghavan Indian Institute of Science, Bangalore.
Program Slicing Mark Weiser and Precise Dynamic Slicing Algorithms Xiangyu Zhang, Rajiv Gupta & Youtao Zhang Presented by Harini Ramaprasad.
© SERG Dependable Software Systems (Slicing) Dependable Software Systems Topics in Program Slicing Material drawn from [Weiser84,Gallagher91,DeMillo96]
1 Program Slicing Purvi Patel. 2 Contents Introduction What is program slicing? Principle of dependences Variants of program slicing Slicing classifications.
Introduction to Program Slicing Presenter: M. Amin Alipour Software Design Laboratory
Csci 565 Spring  Originally proposed by [Weiser 88]and [Gallagher 91] in software maintenance  Useful for  Software Debugging  Software Maintenance.
6/9/2015© Hal Perkins & UW CSEU-1 CSE P 501 – Compilers SSA Hal Perkins Winter 2008.
Program Slicing for Refactoring Advanced SW Tools Seminar Jan 2005Yossi Peery.
Impact Analysis of Database Schema Changes Andy Maule, Wolfgang Emmerich and David S. Rosenblum London Software Systems Dept. of Computer Science, University.
Data Flow Testing Data flow testing(DFT) is NOT directly related to the design diagrams of data-flow-diagrams(DFD). It is a form of structural testing.
2006/09/19AOAsia 21 Towards Locating a Functional Concern Based on a Program Slicing Technique Takashi Ishio 1,2, Ryusuke Niitani 2 and Katsuro Inoue 2.
Formal Methods Program Slicing & Dataflow Analysis February 2015.
Final Review  Different tests  Boundary Value Testing  Equivalence Class Testing  Decision Table Based Testing  Path Testing  Data Flow & P-Slice.
Department of Computer Science A Static Program Analyzer to increase software reuse Ramakrishnan Venkitaraman and Gopal Gupta.
Bug Localization with Machine Learning Techniques Wujie Zheng
Introduction to Software Testing Chapter 8.1 Building Testing Tools –Instrumentation Paul Ammann & Jeff Offutt
1 Program Slicing Amir Saeidi PhD Student UTRECHT UNIVERSITY.
An Undergraduate Course on Software Bug Detection Tools and Techniques Eric Larson Seattle University March 3, 2006.
Industrial Project (236504) Advanced programming tools for refactoring Java code in Eclipse Student: Alexander Libov Supervisor: Dr. Ran Ettinger, IBM.
Program Slicing Techniques CSE 6329 Spring 2013 Parikksit Bhisay
1 Software Testing & Quality Assurance Lecture 13 Created by: Paulo Alencar Modified by: Frank Xu.
1 Test Coverage Coverage can be based on: –source code –object code –model –control flow graph –(extended) finite state machines –data flow graph –requirements.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
White-Box Testing Statement coverage Branch coverage Path coverage
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
Introduction to Software Testing (2nd edition) Chapter 5 Criteria-Based Test Design Paul Ammann & Jeff Offutt
Automated Software Testing
Software Testing.
Software Testing.
Code Optimization.
Lazy Preemption to Enable Path-Based Analysis of Interrupt-Driven Code
Software Testing.
Software Testing.
Control Flow Testing Handouts
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 4 Control Flow Testing
Software Engineering (CSI 321)
Dataflow Testing, Object-Oriented
Graph Coverage for Specifications CS 4501 / 6501 Software Testing
Outline of the Chapter Basic Idea Outline of Control Flow Testing
SwE 455 Program Slicing.
Types of Testing Visit to more Learning Resources.
Graph Coverage for Design Elements CS 4501 / 6501 Software Testing
White-Box Testing.
Symbolic Implementation of the Best Transformer
A Survey of Program Slicing Techniques: Section 4
Program Slicing Baishakhi Ray University of Virginia
Software Testing (Lecture 11-a)
Chapter 10 Data Flow Testing Slice Testing
White-Box Testing.
Test Case Purification for Improving Fault Localization
Software visualization and analysis tool box
Graph Coverage for Design Elements CS 4501 / 6501 Software Testing
Graph Coverage for Specifications CS 4501 / 6501 Software Testing
White-Box Testing Techniques I
Institute of Computing Tech.
White-Box Testing.
CPRE 416-Software Evolution and Maintenance-Lecture 11
Whitebox Testing.
Paul Ammann & Jeff Offutt
CSE P 501 – Compilers SSA Hal Perkins Autumn /31/2019
Software Testing.
Presentation transcript:

Mark Weiser University of Maryland, College Park IEEE CHI, 1981 Program Slicing Mark Weiser University of Maryland, College Park IEEE CHI, 1981 Presented by David Gonzalez

Key Insights “Slicing is new way of decomposing programs automatically” circa 1981 Automates the generation of program slices under sound restrictions based on static analysis. A program slice is reduced version of an original program where only the expressions necessary for executing a subset of it are kept and such execution must reproduce the original behavior. Generating a slice follows criteria to delete non-related statements that include control and data flow analysis. It provides convincing arguments and alternatives to overcome challenges in approach.

Approach Statement deletions based on criteria* Flow graphs Criterion

Approach Takes source code as input and uses an abstract representation – flowgraph – to enable statement deletion. To allow a minimal set of slices, the definition of window for observing behavior is weakened from “all possible inputs” to “program terminates” due to the unsolvability of the former. Under this definition, applies interprocedural dataflow analysis to determine “smallest” slice by using def-uses as criterion. Also, includes branch statements that control execution of statements within the slice.

Additional contributions Slicing study results: Shows that in half of 63 cases, slices were remembered as relevant to the bug. Slicing Real Programs*: Generalizes program slicing, in contrast to DAVE’s slicing approach. Interprocuderal Slicing*: Provides how to handle multiple procedures at once, in contrast to SIMPL. Separate Compilation*: Provides how to slice when there are interprocedural complications, in contrast to SIMPL-D. Slicing Based Metrics: Introduces Coverage, Overlap, Clustering, Parallelism, Tightness for progr. * Goes beyond prior work

Questions? 67% of time spent in maintenance, how about now? Where have you seen program slicing being used? What about the program slicing study? What about feasible paths? What research do you know about program slicing usefulness? What topics do you find related to software testing(SWE637)? Is OO programming an obstacle for inter-procedural techniques?