smart debugger

17
1/20 Smart Debugger Tao He [email protected] Software Engineering Laboratory Department of Computer Science, Sun Yat-Sen University

Upload: elfinhe

Post on 28-Jun-2015

266 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Smart debugger

1/20

Smart Debugger

Tao [email protected]

Software Engineering Laboratory

Department of Computer Science, Sun Yat-Sen University

Page 2: Smart debugger

2/20

Framework

Page 3: Smart debugger

3/20

User Case 1: Student

Help Freshmen, those who beaten by Sicily Online Judge Find bugs ! No more WA’s!

http://soj.me

Page 4: Smart debugger

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/

Page 5: Smart debugger

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/

Page 6: Smart debugger

6/20

More User Cases Game

Competition: Bug Labeler

http://images.google.com/imagelabeler/

Page 7: Smart debugger

7/20

More User Cases Game

Competition: Challenge

http://www.topcoder.com/

Page 8: Smart debugger

8/20

Data Flow 1: Student

Source Code

Instrument&

Run

Test Case

Run Coverage

Compute Metrics

Ranked Coverage Entities

Run Result

Student

Student Teacher

Page 9: Smart debugger

9/20

Data Flow 2: Programmer Source Code

Instrument&

Run

Test Case

Run Coverage

Compute Metrics

Ranked Coverage Entities

Run Result

Programmer

Programmer

Page 10: Smart debugger

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

Page 11: Smart debugger

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

Page 12: Smart debugger

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

Page 13: Smart debugger

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

Page 14: Smart debugger

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

Page 15: Smart debugger

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?

Page 16: Smart debugger

16/20

Front-end

Page 17: Smart debugger

17/20

Thank you!