CS 6340 Software Analysis and Test

Hello, if you have any need, please feel free to consult us, this is my wechat: wx91due

CS 6340 Software Analysis and Test Fall 2024


Announcements:
  • [8/18] We will upload course materials to Canvas. Please use Canvas to post any questions.
  • [8/18] Welcome to CS 6340!

Instructor:Qirun Zhang,
Office: 2324 Klaus
Office Hours: Tue/Thu 4:45 - 5:30 PM
Email: [email protected]Teaching Assistant:Matthew Davis,
Office: By appointment
Office Hours: Tuesday 11 AM - 12 PM
Email: [email protected]
Karthikeya Sharma,
Office: By appointment
Office Hours: Wednesday 9:30 AM - 10:30 AM
Email: [email protected]
Lectures:Time: Tue/Thu 3:30 PM - 4:45 PM
Location: Howey Physics L5
Course Summary:CS 6340 is a graduate-level course on software analysis and testing. We will cover topics such as static program analysis, random testing, dataflow analysis, type systems, test case generation, symbolic execution, and more. We will also study selected papers from PL conferences such as POPL and PLDI.References: Assignments:
  • Paper Review
    • Paper review LaTeX template.
    • Deadline: by 10:00 pm EST the night before the class.
  • Project Proposal
    • Four-Paragraph guideline for your proposal.
    • Deadline: 9/28 by 10:00 pm EST.
  • Project Report
    • Conference-paper-style report.
    • Deadline: 11/27 by 10:00 pm EST.
Grading:Grading breakdown:
  • Paper Review: 20%
  • Presentation: 20%
  • Project: 60%
Late assignment submission policy:
  • Within 24 hours after the assignment is due: 50% point deduction;
  • More than 24 hours late: 100% point deduction.
Schedule:
Date Topic Paper Presenter and Optional Reading
8/20 Introduction
8/22 Fundamentals
8/27 Fundamentals
  • Type analysis
  • Qirun
  • Readings:
    • [MS18] Chapter 3.
8/29 Range analysis
  • [PLDI'20] Towards a verified range analysis for JavaScript JITs
9/3 Fundamentals
  • Flow-sensitive analyses
  • Qirun
  • Readings:
    • [MS18] Chapters 4 and 5.
9/5 Graph reachability
  • [POPL'95] Precise Interprocedural Dataflow Analysis via Graph Reachability
9/10 Value-flow analysis
  • SVF: interprocedural static value-flow analysis in LLVM
  • TA
9/12 Value-flow analysis application
  • [TSE'14] Detecting Memory Leaks Statically with Full-Sparse Value-Flow Analysis
  •  
9/17 Symbolic Execution
  • Notes
  • Qirun
9/19 Translation Validation
  • [PLDI'21] Alive2: Bounded Translation Validation for LLVM
9/24 Taint analysis
  • Notes
  • Qirun
9/26 High-level synthesis 
  • [PLDI'24] Allo: A Programming Model for Composable Accelerator Design 
  •  
10/1 Project Proposal
  • All
10/3 Compiler testing
  • [PLDI'17] Skeletal Program Enumeration for Rigorous Compiler Testing
10/8 Fundamentals
  • Path sensitivity and relational analysis
  • Qirun
  • Readings:
    • [MS18] Chapter 7.
10/10 Vectorization
  • [PLDI' 22] All you need is superword-level parallelism: systematic control-flow vectorization with SLP
10/15 No class
10/17 Fundamentals
  • Interprocedural and context sensitive analysis
  • Qirun
  • Readings:
    • [MS18] Chapter 8.
10/22 Fundamentals
  • Egraphs
10/24 Bounded model checking
  • [CAV'14] Bounded Model Checking of Multi-threaded C Programs via Lazy Sequentialization
10/29 Fundamentals
  • Pointer analysis
  • Qirun
  • Readings:
    • [MS18] Chapter 10.
10/31 Path-sensitive analysis
  • [PLDI'21] Path-Sensitive Sparse Analysis without Path Conditions
11/5 Random Testing
  • Notes
  • Qirun
11/7 Test-case reduction
  • [PLDI'21] Test-Case Reduction and Deduplication Almost for Free with Transformation-Based Compiler Testing
11/12 Delta debugging
  • Notes
  • Qirun
11/14 WebAssembly
  • [PLDI'22] Finding the Dwarf: Recovering Pecise Types from WebAssembly Binaries
11/19 Regular Expressions
  • [PLDI'24] Linear Matching of JavaScript Regular Expressions
11/21 Final Presentation
  • All
11/26 Final Presentation
  • All
11/28 No class

Misc:
If you have any concern, please send an email to the instructor. This link could help to send anonymous messages.

发表评论

电子邮件地址不会被公开。 必填项已用*标注