autobp automated breakpoint generation & elaboration 章程(助教)...
TRANSCRIPT
AutoBP
Automated BreakpointGeneration & Elaboration
章程(助教)杨胜前 王方悦 陈建全
Contents
An Experienced Approach1
Our New Attempts2
Present Implementation3
Task List4
Experienced Approach
State Coverage
Program Slicing
InsectJ
Nearest Neighbor Algorithm
Generate BreakPoint with LineNumber & Condition
Deciding Dependence Relationship
Compare Difference in CF
Find Nearest Control Flow
Experienced Approach : Architecture
Java Bytecodes
InsectJ NN4J JSlice
AST Parser
JDT Debugger
State Coverage
Conditional BreakPoint
Contents
An Experienced Approach1
Our New Attempts2
Present Implementation3
Task List4
Faced Problem
Done WellDone Well Too Many BpsToo Many Bps How to do surveyHow to do survey
Generate ElaborationKey Point
Debug
New Attempt : Elaboration of Bps
Memory Graph
Program Slicing
InsectJ
Nearest Neighbor Algorithm
Make more digging and thus provide more information about suspicious line
Based on multi-test case and human interaction, try to use decision tree model to help slicing
Contents
An Experienced Approach1
Our New Attempts2
Present Implementation3
Task List4
Present Implementation
What’s done? With the help of tools like InsectJ, Jslice we do
some researches and try to find a suitable way to our project
Lots of Paper reading and some new ideas
What’s to be done? Reducing breakpoints to a appropriate amount,
and provide selected breakpoints that are helpful to debugging.
Do user study aiming at improving usability of our debugging tool.
Contents
An Experienced Approach1
Our New Attempts2
Present Implementation3
Task List4
Task List
Here are tasks we will implement in our future work. Some of them need to be confirmed, others are put into practice.
Low priority Improve nearest neighbor algorithm, combining
hamming and another algorithms (Introduce later) Do the user study among a group of programmersMiddle priority Replace State coverage Algorithm with Memory
Graph Comparison Algorithm. The former requires quite much test cases but give only facial suspicious conditions on the other hand.
High priority In the slicing phase, instead of relying on only one
neighbor, we need more neighbors to help us find the significant different code lines which have most degree.
Task List
High priority Dividing slicing phase into two phases: Firstly, locate
the most suspicious functions. Providing inputs and outputs, we grant programmer the right to decide whether this function need to be analyzed carefully or not. If yes, we go to the second phase, or pick up another function in priority sequence. Secondly, record suspicious code for each function and present some of them to programmer. (This improvement needs caution and we are still confused at how to create a suitable mathematical model and prototype of self-learning decision-assistant tool)
AutoBP