Automated Software Testing and Reverse Engineering
Beschrijving
Software is one of the most complex artifacts of mankind has ever created, but complexity is the enemy of correctness. Modern software testing and validation tools use a multitude of techniques geared toward correct computer code, most of these are base on artificial intelligence. In this course, we study these techniques in details, specifically we will understand and implement:
Execution monitoring
Branch distance computation
Hill-climbing and genetic algorithms
Concrete and symbolic (concolic) execution
Active state machine learning
Genetic programming
The goal is to better understand and test software using artificial intelligence. Using the taught techniques you will be able to automatically:
Discover which code is reachable
Find (security) bugs in software
Write tests that cover all reachable code
Reverse engineer a code's functionality
Patch code to remove bugs and failing tests
Toetsing
The final grade of the course consists of the following components:
Group Report (weighting 100%)
Final grade calculation: 1 * Group Report
A passing final grade for the course can only be earned when for all components at least a 5.0 is earned, and the weighted final grade is at least a 5.8.
In case of an insufficient final result, repair options may exist in accordance with Article 17A, Times and number of examinations, sub 1, of the Teaching and Examination Regulations, for:
Group Report: Additional assignment
Disclaimer: information may change depending on unforeseen circumstances or measures (see: TER Art 2, sub 5).
Reviews0 reviews
Heb jij dit vak gevolgd?
Deel je ervaring met toekomstige studenten. Inloggen met je TU Delft mailadres duurt één minuut.
Schrijf een review