Debug Concern Navigator Masaru Shiozuka(Kyushu Institute of Technology, Japan) Naoyasu Ubayashi(Kyushu University, Japan) Yasutaka Kamei(Kyushu University,

Slides:



Advertisements
Similar presentations
Search in Source Code Based on Identifying Popular Fragments Eduard Kuric and Mária Bieliková Faculty of Informatics and Information.
Advertisements

1 Evaluation Rong Jin. 2 Evaluation  Evaluation is key to building effective and efficient search engines usually carried out in controlled experiments.
A Context Analysis Method for Embedded Systems --- Exploring a Requirement Boundary between a System and Its Context Naoyasu Ubayashi(Kyushu University,
Refactoring-aware Configuration Management for Object-Oriented Programs Written by: Danny Dig, Kashif Manzoor, Ralph Johnson, and Tien Nguyen ACM International.
Exploring the Neighborhood with Dora to Expedite Software Maintenance Emily Hill, Lori Pollock, K. Vijay-Shanker University of Delaware.
The Experience Factory May 2004 Leonardo Vaccaro.
Using Natural Language Program Analysis to Locate and understand Action-Oriented Concerns David Shepherd, Zachary P. Fry, Emily Hill, Lori Pollock, and.
CMSC 132: Object-Oriented Programming II
CMSC 132: Object-Oriented Programming II Nelson Padua-Perez William Pugh Department of Computer Science University of Maryland, College Park.
Report of the CMU Natural Programming Group Brad Myers, Andy Ko, Jeff Stylos, Michael Coblenz, Brian Ellis, Polo Chao Carnegie Mellon University.
Automatically Extracting and Verifying Design Patterns in Java Code James Norris Ruchika Agrawal Computer Science Department Stanford University {jcn,
Parameterizing Random Test Data According to Equivalence Classes Chris Murphy, Gail Kaiser, Marta Arias Columbia University.
High Level: Generic Test Process (from chapter 6 of your text and earlier lesson) Test Planning & Preparation Test Execution Goals met? Analysis & Follow-up.
Flash talk by: Aditi Garg, Xiaoran Wang Authors: Sarah Rastkar, Gail C. Murphy and Gabriel Murray.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Industrial Application.
Expediting Programmer AWAREness of Anomalous Code Sarah E. Smith Laurie Williams Jun Xu November 11, 2005.
OOSE 01/17 Institute of Computer Science and Information Engineering, National Cheng Kung University Member:Q 薛弘志 P 蔡文豪 F 周詩御.
XFindBugs: eXtended FindBugs for AspectJ Haihao Shen, Sai Zhang, Jianjun Zhao, Jianhong Fang, Shiyuan Yao Software Theory and Practice Group (STAP) Shanghai.
1 Software Engineering Prof. Dr. Colin Atkinson 1 Overview 1.Find out why software engineering is important ■ see some software engineering failures 2.Get.
Temporal Event Map Construction For Event Search Qing Li Department of Computer Science City University of Hong Kong.
Brian de Alwis and Gail Murphy Dept of Computer Science University of British Columbia, Canada Presented at the International Conference on Software Engineering.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University ICSE 2003 Java.
Yu SunUniversity of Alabama at Birmingham PAR Works Jeff Gray University of Alabama Montpellier, France July 3rd, 2013 This research is supported.
Graph Data Management Lab, School of Computer Science gdm.fudan.edu.cn XMLSnippet: A Coding Assistant for XML Configuration Snippet.
Improving Programmer Productivity via Mining Program Source Code Tao Xie Department of Computer Science North Carolina State University
1 PARSEWeb: A Programmer Assistant for Reusing Open Source Code on the Web Suresh Thummalapenta and Tao Xie Department of Computer Science North Carolina.
Reviewing Recent ICSE Proceedings For:.  Defining and Continuous Checking of Structural Program Dependencies  Automatic Inference of Structural Changes.
1 Model Compiler Construction Based on Aspect-oriented Mechanisms Naoyasu Ubayashi (Kyushu Institute of Technology) Tetsuo Tamai (University of Tokyo)
Hipikat: A Project Memory for Software Development The CISC 864 Analysis By Lionel Marks.
Samad Paydar Web Technology Lab. Ferdowsi University of Mashhad 10 th August 2011.
Mining Software Data: Code Tao Xie University of Illinois at Urbana-Champaign
POSL (Principles of Software Languages) Gr. Kyushu Institute of Technology, Japan Pointcut-based Architectural Interface.
First BlueJ Day Houston, 2006 Unit Testing with BlueJ Bruce Quig Deakin University.
Workshop on Software Product Archiving and Retrieving System Takeo KASUBUCHI Hiroshi IGAKI Hajimu IIDA Ken’ichi MATUMOTO Nara Institute of Science and.
Binxing Jiao et. al (SIGIR ’10) Presenter : Lin, Yi-Jhen Advisor: Dr. Koh. Jia-ling Date: 2011/4/25 VISUAL SUMMARIZATION OF WEB PAGES.
2007. Software Engineering Laboratory, School of Computer Science S E Web-Harvest Web-Harvest: Open Source Web Data Extraction tool 이재정 Software Engineering.
1 Context-dependent Product Line Practice for Constructing Reliable Embedded Systems Naoyasu UbayashiKyushu University, Japan Shin NakajimaNational Institute.
Presented by: Ashgan Fararooy Referenced Papers and Related Work on:
CJAdviser: SMT-based Debugging Support for ContextJ* Shizuka Uchio(Kyushu University, Japan) Naoyasu Ubayashi(Kyushu University, Japan) Yasutaka Kamei(Kyushu.
Computer Science Automated Software Engineering Research ( Mining Exception-Handling Rules as Conditional Association.
Hassen Grati, Houari Sahraoui, Pierre Poulin DIRO, Université de Montréal Extracting Sequence Diagrams from Execution Traces using Interactive Visualization.
1 Test Selection for Result Inspection via Mining Predicate Rules Wujie Zheng
RiSE Project: Towards a Robust Framework for Software Reuse Eduardo Santana de Almeida Federal University of Pernambuco, Brazil
IDENTIFYING SEMANTIC DIFFERENCES IN ASPECTJ PROGRAMS Martin Görg and Jianjun Zhao Computer Science Department, Shanghai Jiao Tong University.
Exploiting Code Search Engines to Improve Programmer Productivity and Quality Suresh Thummalapenta Advisor: Dr. Tao Xie Department of Computer Science.
Mik Kersten Mylyn Project Lead, Tasktop President & CTO BZ Media Webinar, July , made available under the EPL v1.0 Eclipse 3.3 and Mylyn 2.0.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
Eclipse. An IDE is an Integrated Development Environment Different IDEs meet different needs BlueJ, DrJava are designed as teaching tools Emphasis is.
“Isolating Failure Causes through Test Case Generation “ Jeremias Rößler Gordon Fraser Andreas Zeller Alessandro Orso Presented by John-Paul Ore.
Automatically detecting and describing high level actions within methods Presented by: Gayani Samaraweera.
Survey of Tools to Support Safe Adaptation with Validation Alain Esteva-Ramirez School of Computing and Information Sciences Florida International University.
1 An AOP Implementation Framework for Extending Join Point Models Naoyasu Ubayashi(Kyushu Institute of Technology, Japan) Hidehiko Masuhara(University.
Stories of the past and a future topic on API recommendation Qirun Zhang.
CAR-Miner: Mining Exception-Handling Rules as Sequence Association Rules Suresh Thummalapenta and Tao Xie Department of Computer Science North Carolina.
Assistant Instructor Nian K. Ghafoor Feb Definition of Proposal Proposal is a plan for master’s thesis or doctoral dissertation which provides the.
1 API Recommendation Wujie Zheng
Search-Based Peer Reviewers Recommendation in Modern Code Review 32 nd IEEE International Conference on Software Maintenance and Evolution (ICSME) 2016.
The Emergent Structure of Development Tasks
Experience Report: System Log Analysis for Anomaly Detection
Testing and Debugging PPT By :Dr. R. Mall.
Naoya Ujihara1, Ali Ouni2, Takashi Ishio1, Katsuro Inoue1
David Shepherd, Zachary P. Fry, Emily Hill, Lori Pollock, and K
Learning Software Behavior for Automated Diagnosis
Empirical Project Monitor and Results from 100 OSS Development Projects Masao Ohira Empirical Software Engineering Research Laboratory, Nara Institute.
Mining and Analyzing Data from Open Source Software Repository
Cross-library API Recommendation Using Web Search Engines
Code search & recommendation engines
RadarGun: Toward a Performance Testing Framework
MAPO: Mining and Recommending API Usage Patterns
Recommending Adaptive Changes for Framework Evolution
Presentation transcript:

Debug Concern Navigator Masaru Shiozuka(Kyushu Institute of Technology, Japan) Naoyasu Ubayashi(Kyushu University, Japan) Yasutaka Kamei(Kyushu University, Japan) July 7, 2011

Overview -- Debug Recommendation System 2 dcNavi (Debug Concern Navigator) Recommend (Code snippets) Project and OSS Repositories Search Query How to handle this exception ? How to use this API ? Debug Concerns

Recommendation 3 Bug fix of delete method (subclipse project: revision 984) DcNavi can provide the code snippets before and after similar bug fixes by searching past repositories ! Before After

Outline  Motivation  DCG: Debug Concern Graph  dcNavi  Evaluation  Related work  Conclusion and Future work 4

Motivation 5

 Programmers tend to spend a lot of time debugging code.  They check the erroneous phenomena, navigate the code, search the past bug fixes, and modify the code.  If a sequence of these debug activities can be automated, programmers can use their time for more creative tasks. 6

A typical debugging scenario 7 A novice is debugging a Java program.Situation 1)How to handle this exception ? (FileNotFoundException) 2)How to use this API usage ? (BufferedReader) 3)Are other test cases needed ? 4)How to review this code ?

Problem  It is not easy for a novice to use program exceptions or test failures as a hint for fixing a bug.  A programmer with a long career may be faced with the similar difficulties when the programmer works for unfamiliar new projects, languages, and frameworks. 8

Our approach 9 Reuse past experiences Based on TDD (Test-Driven Development) DCG (Debug Concern Graph) dcNavi Recommend (Code snippets) Project and OSS Repositories Search Query How to handle this exception ? How to use this API ?

DCG: Debug Concern Graph 10

DCG -- Introducing Concern Graph  Concern Graph  helps programmers identify and reason about concerns in programming and  makes explicit the relationships among concerns.  DCG appends a set of debugging information such as bug fixes, test results, and bug fix patterns to a concern graph. 11 Robillard, M. P. and Murphy, G. C., Concern Graphs: Finding and Describing Concerns Using Structural Program Dependencies, ICSE 2002, pp , 2002.

DCG -- TDD-based Graph expansion 12 Pan, K., et al., Toward an understanding of bug fix patterns, Empirical Software Engineering, pp , dcNavi: Eclipse plugin Mylyn Junit

Bug fix patterns  The bug fix patterns show not only how to fix bugs but also the reasons of the bugs.  Many bug fixes can be categorized into the patterns.  The advice can be generated from actual code snippets annotated with the bug reasons (bug fix patterns). 13

dcNavi --- Debug Concern Navigator 14

dcNavi overview  DCG manager for supporting graph construction and evolution  DCG generator for importing existing repositories  Debug recommender 15 OSS

Recommendation result 16

Recommendation Algorithm 17  Obtain recommendation candidates  Obtains all past tests failing to handle the FileNotFoundException  finds the test target methods whose after-modification include the bug fix patterns  Recommend code snippets ranked by the graph similarity metric Similarity(G1, G2) = #common_node / (#G1_node + #G2_node) / 2) Recommendation readLine calls Debug readFile Test failure exception : FileNotFound Bug Fix Pattern (SQ-AROB) Start

Evaluation 18

Experiment  Evaluation data  Nine Eclipse plug-in projects (Mylyn )  Criteria  Bug fix pattern applied to the real debugging is the same as that of recommendation. 19 all revisions of other eight projects 4/5 revisions from each project remaining 1/5 revisions of each project Training data + Real data Recommendation Results Check !

Results 20 Precision: 15% - 35% Recall:20% - 50%

Related work 21

Related work  DebugAdvisor [Ashok, B. FSE2009]  A search tool for allowing programmers to express the context of the bugs and search through diverse data such as natural language text and core dumps.  FixWizard [Nquyen, T. T. ICSE2010]  A support tool for identifying the code peers existing in the program and recommend the similar fixes to its peers. 22 We focus on Debug Concerns and Bug Fix Patterns.

Conclusion and Future work 23

Conclusion and Future work  We proposed a debug recommendation system based on Concern Graphs and Bug fix patterns.  Future work  Portfolio-based recommendation  Support for execution trace 24

25 Thank you for your attention.