Smart debugger
-
Upload
elfinhe -
Category
Technology
-
view
273 -
download
0
Transcript of Smart debugger
1/20
Smart Debugger
Software Engineering Laboratory
Department of Computer Science, Sun Yat-Sen University
2/20
Framework
3/20
User Case 1: Student
Help Freshmen, those who beaten by Sicily Online Judge Find bugs ! No more WA’s!
http://soj.me
4/20
User Case 2: Programmer
Help Programmers Manage their program and test cases Automate the revision control process
http://code.google.com/intl/en/projecthosting/
5/20
User Case 3: Researcher Help Researchers
Visualize to Experiment Results Provide feedback, generate new Hypothesis User Study
http://cobertura.sourceforge.net/ http://pleuma.cc.gatech.edu/aristotle/Tools/
6/20
More User Cases Game
Competition: Bug Labeler
http://images.google.com/imagelabeler/
7/20
More User Cases Game
Competition: Challenge
http://www.topcoder.com/
8/20
Data Flow 1: Student
Source Code
Instrument&
Run
Test Case
Run Coverage
Compute Metrics
Ranked Coverage Entities
Run Result
Student
Student Teacher
9/20
Data Flow 2: Programmer Source Code
Instrument&
Run
Test Case
Run Coverage
Compute Metrics
Ranked Coverage Entities
Run Result
Programmer
Programmer
10/20
Data Flow 3: Researcher
Mutate
Golden Source Code
Faulty Source Code
Instrument&
Run
Test Case
Run Coverage
Compute Metrics
Ranked Coverage Entities
Run&
Generate Oracle
Input
Run Result
Researcher
Benchmark
Benchmark
Evaluation
Results for Evaluation
11/20
Data Dictionary
E.g. Grep Scale
Problem 1
Program 5 version
Fault 21 / 9 / 19 / 12 / 1
Entity 10929
Test Suite 1
Test Case 470 v0_1.tsl.universe
Run 470
Run Result 470
Coverage 470*10000=4.7*10^6
Data
Problem
Program
Entity
Test Suite
Test Case
Run
Run Result
Coverage
12/20
ER Diagram
ConsistOf
Program
Entity
1
n
Cover
n
n
1
TestCase
1
Coverage
Run
1
Problem TestSuite
Include
1
nSolvedBy
1
n
TestedBy1 1
Result
13/20
ER Diagram
Evaluation
ConsistOf
Program
Entity
1
n
CoverForProgram001
n
1
TestCase
1
Coverage
PassedRun
1
Problem TestSuite
Include
1
n
SolvedBy
1
n
TestedBy1 n
Result
Title Description TitleProblemID TestSuiteID
Oracle
Input
TimeLimit
MemoryLimit
TestCaseID
RunID
CoverageID
RunTime
RunMemory
CodeLength
LOC
Language
Type
Entity001Count
SubmitTime
ProgramID
EntityID
CoverID
Fault
is
1
n
Coincidental Correctness
is
1
n
Cluster
ClusterAnalysis
n
GoldenProgram
for
n
1
CoverageMetrix
SelectCoverage
n
Coverage Collection
RankedEntities
FaultLocalization
n
CoverTableName
CoverForProgram002
Entity001Count
CoverID
…….ConsistOf
Line
1
LineID
n
Map
n
1Entity001
CountEntity001
Count
……. …….
FailureCluster
is
n
CoverageEquivalence
is
1
FailedRun
Result
RunID
RunTime
RunMemory
Output
CauseBy
n
n
14/20
Relation Schema
Problem
PK ProblemID
Title Description
TestSuite
PK TestSuiteID
TitleFK1 ProblemID
u:Cd:C
Program
PK ProgramID
SubmitTime CodeLength LOC Language FaultCountFK1 ProblemID
u:Cd:C
Entity
PK EntityID
Type isFaultyFK1 ProgramID
u:Cd:C
TestCase
PK TestCaseID
Input Oracle TimeLimit MemoryLimitFK1 TestSuiteID
Run
PK RunID
Result Output RunTime RunMemory IsConcidentalCorrectnessFK1 TestCaseIDFK2 ProgramIDFK3 CoverageID
u:Cd:C
u:Cd:C
u:Cd:C
Coverage
PK CoverageID
u:Rd:RCover
PK CoverID
CountFK1 EntityIDFK2 CoverageID
u:Rd:R
u:Rd:R
15/20
OOD
What is OO? Encapsulation? Inheritance? Polymorphism?
Do we need Design Patterns in Python? What is interface?
File Format Java Interface Python Function
Do we need configuration file, now?
16/20
Front-end
17/20
Thank you!