Personal tools
You are here: Home Courses CS492 Automated SW Analysis, Fall 17

CS492 Automated Software Analysis, Fall 17

Announcement

  • The course number of this class has changed from CS453 (until 2016) to CS492

    Administrative Information

    Office: 2434 (located at the east wing)

    Phone:042-350-3543

    E-mail: moonzoo @ c s . k a i s t . a c . k r

    Office hour: TBD

    (reservation e-mail would be preferred)

    • Teaching assistants: Hyunsu Lim 
      • TA office hour : TBD
    • Lecture hours: Mon/Wed 10:30-11:450 AM  
    • Lecture room: N1 Rm112
    • Prerequisite: experience in C/C++/Java programming and linux/unix command-line utilities.
    • Grading: attendance/class participation/quiz: 20%, HW: 50%, midterm exam: 15%, final exam:15%
      • Late HW will be accepted with 10% penalty of the max score in 1 day, 30% penalty of the max score in 3 days. HW will not be accepted after then. 
      • HW should be submitted both in hardcopy and softcopy (through email to TA). 10% penalty of the max score for missing hardcopy or softcopy unless explicitly written in HW. 
        • Hint: many questions of exams are from the homework.
      • All programming HWs you submit must be able to replayed by executing a single script file on a TA's verifier account (i.e., submitted HW should not have  dependency on your home directory, environment, etc.).  Also, the replayed execution must demonstrate the same output to the submitted hardcopy. You will get 10% penalty of the max score otherwise.
        • For your programming HWs, you should not use external libraries which are not available on the verifier machines.  If you really need an external library, you have to ask TAs to install it on the verifier machines.  
      • More than 7 absences of class will get F grade
        • Late attendance shall be considered as 1/3 absence. 
        • Grad students who are occupied by his/her lab activities (e.g., attending conf, etc.) should submit 1 week prior notice.  
        • No excuse for the absence of class including family issues, illness, etc.
    • The official language in the class is English. All students should submit all written documents such as homeworks, project reports, exams, etc. in English; 20% penalty of the max score otherwise.
    • Questions and answers can be done through KLMS 
    • Excerpts from 강의평가
      • "실질적으로 써먹을 수 있는 내용을 많이 배워서 보람찼습니다"
      • "과제가 많이 어려운것 같았다. 과제에 대한 도움을 수업에서 좀 더 주었으면 좋겠다."

    Syllabus

    This class covers automated SW testing/verification techniques to detect SW bugs effectively and efficiently. In particular, this class focuses to teach techniques that automatically generate test cases to achieve high code coverage and, thus, to detect many bugs.

    The class aims to teach practical applications of advanced testing/verification techniques as well as their underlying algorithms.  This class guides students to use various open-source software testing/verification tools through HWs and learn the underlying mechanisms to maximize the performance of automated testing/verification.

    Course Material

    Course Schedule

    Sep 5 : Introduction 

    Sep 12: Necessity for systematic & automated testing techniques

    Sep 12 night: Overview on testing techniques (including the input partitioning technique)

     

    Part I: Program coverage criteria and program analysis 

    Sep 19,21: Graph coverage 

    Sep 26: Graph coverage for source code 

    Sep 28: gcov tutorial, CLang tutorial 1/2: Clang AST

    Oct 5: Clang tutorial 2/2: a progam analysis tool by using Clang

    Oct 10: Logic coverage

    Oct 12:  Logic coverage from source code 

     

    Part II: Concolic testing (a.k.a., dynamic symbolic execution)

    Oct 17 : Automated SW analysis for high reliability: a Concolic testing approach

    Oct 19 :  Q&A session

    Oct 24: Mid-term exam  

    Oct 31: CREST Tutorial (** important **)

    Nov 2: CREST Examples

    Nov 7: Symbolic environment example 

    Nov 9: System-level concolic testing: Busybox application examples through CREST-BV

    Nov 14: Unit-level concolic testing: Busybox ls example

    Nov 16: Automated Unit Testing of Large Industrial Embedded Software using Concolic Testing  [ASE'13 paper] 

     

    Part III: Model checking

    Nov 21, 28: SAT-based bounded software model checking

    Nov 30: Software model checking examples 1 , SMC example 2

    Dec 5 : Model Checking flash memory storage platform software - an industrial case study

     

    Part IV: Verification engince - SMT/SAT solver

    Dec 7: First order theoriesSMTlib tutorial,

    Dec 12 :Using SAT solver for Sudoku 

    Dec 14: Static analysis: Coverity, Q&A for final exam

    Dec 19: Final exam (1:00-3:00 PM)

    Homeworks

    Document Actions