Smart debugger

425 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
425
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Smart debugger

  1. 1. Smart Debugger Tao He elfinhe@gmail.com Software Engineering Laboratory Department of Computer Science, Sun Yat-Sen University 1/20
  2. 2. Framework 2/20
  3. 3. User Case 1: Student  Help Freshmen, those who beaten by Sicily Online Judge  Find bugs ! No more WA’s!http://soj.me 3/20
  4. 4. User Case 2: Programmer  Help Programmers  Manage their program and test cases  Automate the revision control processhttp://code.google.com/intl/en/projecthosting/ 4/20
  5. 5. User Case 3: Researcher  Help Researchers  Visualize to Experiment Results  Provide feedback, generate new Hypothesis  User Studyhttp://cobertura.sourceforge.net/ 5/20http://pleuma.cc.gatech.edu/aristotle/Tools/
  6. 6. More User Cases Game  Competition: Bug Labelerhttp://images.google.com/imagelabeler/ 6/20
  7. 7. More User Cases Game  Competition: Challengehttp://www.topcoder.com/ 7/20
  8. 8. Student TeacherData Flow 1:Student Source Code Test Case Instrument & Run Run Coverage Run Result Compute Metrics Ranked Coverage Entities Student 8/20
  9. 9. ProgrammerData Flow 2:Programmer Source Code Test Case Instrument & Run Run Coverage Run Result Compute Metrics Ranked Coverage Entities Programmer 9/20
  10. 10. BenchmarkData Flow 3: Golden Source Code InputResearcher Mutate Run & Generate Oracle Faulty Source Benchmark Test Case Code Instrument & Run Run Coverage Run Result Compute Metrics Ranked Coverage Entities Evaluation Results for Evaluation Researcher 10/20
  11. 11. Data DictionaryDataProblem E.g. Grep ScaleProgram Problem 1 Program 5 versionEntity Fault 21 / 9 / 19 / 12 / 1Test Suite Entity 10929 Test Suite 1Test Case Test Case 470 v0_1.tsl.universeRun Run 470 Run Result 470Run Result Coverage 470*10000=4.7*10^6Coverage 11/20
  12. 12. ER Diagram Problem 1 TestedBy 1 TestSuite 1 1 Include SolvedBy n TestCase 1 n Program 1 Run Result 1 1 ConsistOf Coverage n n Entity n Cover 12/20
  13. 13. ER Coverage CollectionDiagram ProblemID Title Description TestSuiteID Title TestCaseID Problem 1 TestedBy n TestSuite 1 Input 1 Include Oracle SolvedBy n TimeLimit ProgramID n TestCase SubmitTime MemoryLimit RunTime 1 1 CodeLength Program 1 PassedRun RunID RunTime FailedRun RunID 1 LOC 1 Result RunMemory Result 1 ConsistOf Coverage Language CoverageID CoverTableName RunMemory n n EntityID Entity Output 1 CoverFor Program001 CoverFor Program002 ……. ConsistOf Type Map Entity001 Entity001 n n Count Count 1 Line Entity001 Entity001 Count Count ……. ……. LineID n CoverID CoverID Evaluation n for is is SelectCoverage ClusterAnalysis CauseBy n n 1 n n Coincidental GoldenProgram Fault Correctness CoverageMetrix Cluster n is is FaultLocalization n 1 n Coverage FailureCluster RankedEntities Equivalence 13/20
  14. 14. Problem TestSuite u:C PK ProblemID d:C PK TestSuiteIDRelation Title Description Title FK1 ProblemIDSchema u:C u:C d:C d:C Program TestCase PK ProgramID PK TestCaseID SubmitTime Input CodeLength Oracle LOC TimeLimit Language MemoryLimit FaultCount FK1 TestSuiteID FK1 ProblemID u:C u:C d:C d:C Run u:C d:C PK RunID Entity Result PK EntityID Output RunTime Type RunMemory isFaulty IsConcidentalCorrectness FK1 ProgramID FK1 TestCaseID FK2 ProgramID u:R FK3 CoverageID d:R u:R Cover d:R Coverage PK CoverID PK CoverageID Count u:R FK1 EntityID d:R FK2 CoverageID 14/20
  15. 15. 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? 15/20
  16. 16. Front-end 16/20
  17. 17. Thank you! 17/20

×