Smart debugger

Preview:

Citation preview

1/20

Smart Debugger

Tao Heelfinhe@gmail.com

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!