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.

Slides:



Advertisements
Similar presentations
Overview Structural Testing Introduction – General Concepts
Advertisements

A Survey of Program Slicing Techniques A Survey of Program Slicing Techniques Sections 3.1,3.6 Swathy Shankar
Slicing Methods Using Static and Dynamic Information Yoshiyuki Ashida, Fumiaki Ohata, † † † ‡ †‡ Katsuro Inoue Osaka University Nara Institute of Science.
Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
DETAILED DESIGN, IMPLEMENTATIONA AND TESTING Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
TEST CASE GENERATOR Mahmoud, Nidhi, Fernando, Chris, Joe, John, and Thomas present:
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 Modularization.
A survey of techniques for precise program slicing Komondoor V. Raghavan Indian Institute of Science, Bangalore.
1 Program Slicing Purvi Patel. 2 Contents Introduction What is program slicing? Principle of dependences Variants of program slicing Slicing classifications.
Automated creation of verification models for C-programs Yury Yusupov Saint-Petersburg State Polytechnic University The Second Spring Young Researchers.
HORIZONT 1 ProcMan ® The Handover Process Manager Product Presentation HORIZONT Software for Datacenters Garmischer Str. 8 D München Tel ++49(0)89.
1 Static Testing: defect prevention SIM objectives Able to list various type of structured group examinations (manual checking) Able to statically.
Detailed Design Kenneth M. Anderson Lecture 21
Software engineering for real-time systems
University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec22 1 Lecture 22: Software Measurement Basics of software measurement.
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 Debugging Support.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University ICSE 2003 Java.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 Refactoring.
Parallel and Distributed Computing in Model Checking Diana DUBU (UVT) Dana PETCU (IeAT, UVT)
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University Program Slicing on Java byte-code for Locating Functional.
1 A Static Analysis Approach for Automatically Generating Test Cases for Web Applications Presented by: Beverly Leung Fahim Rahman.
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Instructor Kostas Kontogiannis.
Software Engineering Research Group, Graduate School of Engineering Science, Osaka University Analysis and Implementation Method of Program to Detect Inappropriate.
Design and Programming Chapter 7 Applied Software Project Management, Stellman & Greene See also:
Foundations of Software Testing Chapter 5: Test Selection, Minimization, and Prioritization for Regression Testing Last update: September 3, 2007 These.
Exploring an Open Source Automation Framework Implementation.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 Design and Implementation.
Software Metrics (Part II). Product Metrics  Product metrics are generally concerned with the structure of the source code (example LOC).  Product metrics.
Testing. 2 Overview Testing and debugging are important activities in software development. Techniques and tools are introduced. Material borrowed here.
Software Design Design is the process of applying various techniques and principles for the purpose of defining a device, a process,, or a system in sufficient.
UHD::3320::CH121 DESIGN PHASE Chapter 12. UHD::3320::CH122 Design Phase Two Aspects –Actions which operate on data –Data on which actions operate Two.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Technology and Science, Osaka University Dependence-Cache.
 Program Slicing : Analysis technique of extracting parts of a given program, relevant to the aspects being analyzed (the slicing criterion). E.g. slicing.
1 Program Slicing Amir Saeidi PhD Student UTRECHT UNIVERSITY.
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University Retrieving Similar Code Fragments based on Identifier.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Towards Program.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University July 21, 2008WODA.
Creator: ACSession No: 7 Slide No: 1Reviewer: SS CSE300Advanced Software EngineeringSeptember 2005 Software Measurement – Estimation and Productivity CSE300.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
Software Engineering Research Group, Graduate School of Engineering Science, Osaka University A Slicing Method for Object-Oriented Programs Using Lightweight.
Comparing model-based and dynamic event-extraction based GUI testing techniques : An empirical study Gigon Bae, Gregg Rothermel, Doo-Hwan Bae The Journal.
SOFTWARE TESTING. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves any activity.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Extraction of.
Program Slicing Techniques CSE 6329 Spring 2013 Parikksit Bhisay
PROGRAMMING TESTING B MODULE 2: SOFTWARE SYSTEMS 22 NOVEMBER 2013.
1 Software Testing & Quality Assurance Lecture 13 Created by: Paulo Alencar Modified by: Frank Xu.
DETAILED DESIGN, IMPLEMENTATION AND TESTING Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Static Timing Analysis
Whole Test Suite Generation. Abstract Not all bugs lead to program crashes, and not always is there a formal specification to check the correctness of.
Auditing Of Information Systems Systems Analysis And Design © Systems Analysis And Design © V. Rajaraman OBJECTIVES  Ensure computer based financial and.
CS223: Software Engineering Lecture 21: Unit Testing Metric.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
Test Case Purification for Improving Fault Localization presented by Taehoon Kwak SoftWare Testing & Verification Group Jifeng Xuan, Martin Monperrus [FSE’14]
Solvency II Tripartite template V2 and V3 Presentation of the conversion tools proposed by FundsXML France.
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University A Metric-based Approach for Reconstructing Methods.
Phoenix Based Dynamic Slicing Debugging Tool Eric Cheng Lin Xu Matt Gruskin Ravi Ramaseshan Microsoft Phoenix Intern Team (Summer '06)
Software Testing.
Software Testing.
Naoya Ujihara1, Ali Ouni2, Takashi Ishio1, Katsuro Inoue1
Graph Coverage for Design Elements CS 4501 / 6501 Software Testing
Chapter 10: Process Implementation with Executable Models
Mark Weiser University of Maryland, College Park IEEE CHI, 1981
A Survey of Program Slicing Techniques: Section 4
Program Slicing Baishakhi Ray University of Virginia
Tatsuya Miyake Takashi Ishio Katsuro Inoue
Graph Coverage for Design Elements CS 4501 / 6501 Software Testing
Dynamic Program Analysis
Chapter 9: Implementation
Presentation transcript:

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 1 University of British Columbia 2 Osaka University

2006/09/19AOAsia 22 Abstract Software includes many functional concerns. A functional concern is often implemented by collaborative software modules. To understand a functional concern, you need to … Identify clue program elements Find related modules Understand how the modules collaborate We propose a heuristic approach to automatically extract and show the modules and their collaboration. costly

2006/09/19AOAsia 23 Program Slicing An automatic technique to extract relevant statements and relations 1. A program P is converted to a program dependence graph. vertices: statements in P edges: control/data dependence relations 2. You specify a slicing criterion in P. s: a statement v: a variable defined or used at s 3. You get statements that affect or depend on v by graph traversal. 1i = 3; 2if (a > 0) { 3 print i; 4} data dependence control dependence use definition

2006/09/19AOAsia 24 Issue of Using Program Slicing Slicing often results too many statements. main(), crosscutting concerns, … If you calculate a program slice for, slicing extracts. Main.main(args) App.run() Menu.onClick(buttonID) FileDialog.getPath() Document.open(path) File.read(path) MDI.add(document) Log.debug(message) App.quit() FileDialog.getPath() Document.save(path) File.write(path) dependence control flow concern (open document) slicing result

2006/09/19AOAsia 25 Our Method (1/2) To extract closely related statements, we terminate the graph traversal at the appropriate vertices. A barrier [1] is a vertex that terminates the traversal. The original barrier is set manually. Main.main(args) App.run() Menu.onClick(buttonID) FileDialog.getPath() Document.open(path) File.read(path) MDI.add(document) Log.debug(message) App.quit() FileDialog.getPath() Document.save(path) File.write(path) dependence control flow concern (open document) slicing result barrier [1] Krinke, J.: Slicing, Chopping, and Path Conditions with Barriers. Software Quality Journal, Vol.12, No.4, pp ,December 2004.

2006/09/19AOAsia 26 Our Method (2/2) Automatically identify appropriate barriers use heuristics Extract a small subset of conservative slice Closely related to criteria Conservative SlicingOur Method dependence specified criterion concern related result barrier automatically found Barriers

2006/09/19AOAsia 27 Extracting a Functional Concern with Slicing 1. Convert source code to a program dependence graph 2. Specify one or more methods or fields of interest to you Inputs are converted to vertices 3. Extract related statements i. Identify primary vertices ii. Identify barriers with heuristics iii. Slice using the result of i. and ii. 4. Visualize the result of 3.

2006/09/19AOAsia 28 3.i. Identifying “ primary vertices ” Specified vertices = Your inputs dominator post-dominator primary vertices The vertices in which a barrier is not set to avoid terminating important traversals The vertices in the paths from dominator to post- dominator dominator: the nearest common ancestor reachable to all specified vertices post-dominator: the nearest common successor reachable from all specified vertices

2006/09/19AOAsia 29 3.ii. Identifying Barriers with Heuristics A field access pass data from one concern to another A method entry point with no arguments Its behavior is independent of the caller method. An abstract method entry point Its behavior is defined at the interface level. Library e.g. classes in java and javax package

2006/09/19AOAsia iii. Slicing A backward/forward traversal from criteria The traversal is terminated at barriers. dominator / post-dominator specified criterion barrier added by slicing primary verticesslicing result

2006/09/19AOAsia 211 Preliminary Case Study Aim: estimate the effectiveness of our approach Target Program: Duplicated File Checker Java / 1331 LOC / 14 files Overview main() → read arguments → begin file checking → notify → output → (end file checking) Target Concern: “notify” Input: 3 methods notifyProgressValue, notifyErrorFile, notifyFinished

2006/09/19AOAsia 212 Results: size Small subset (less than 1/4 about LOC) Heuristic slice: Checker, FileList, FileMD5 and CheckerListener classes (Non-heuristic slice) – (Heuristic slice): Main, MainWindow and classes for GUI Size of slices Extracted classes

2006/09/19AOAsia 213 Result: extracted slice (as a concern graph) “Notify” concern is extracted appropriately. No weakly related method (e.g. main()) Extracted slice (as a concern graph) criterion

2006/09/19AOAsia 214 Summary and Future Work We proposed an approach to extract the collaborative modules implementing a functional concern. We introduced heuristics into slicing. Future Work Develop a fully automated analysis tool Apply various heuristics e.g. a high fan-in method Apply to large-scale software

2006/09/19AOAsia 215 Result: Identified barriers MainWindow.MainWindow() Checker.notifyProgressValue(int) Checker.notifyFinished() Checker.addCheckerListener(CheckerListener) Checker.notifyErrorFile(String) FileList.count() Main.main(String[])Console.execute()Checker.run()Checker.makeDuplicationGroups(Collection ) CheckerLitener.onErrorFileString() String.substring(int) A method entry point without arguments An abstract method entry point Library … … … dependence specified criterion slice barrier