de | en

Practical: Machine Learning for Software Testing (IN0012; IN2106, IN4227)

Course 0000003134 in WS 2017/8

General Data

Course Type practical training
Semester Weekly Hours 6 SWS
Organisational Unit Informatics 4 - Chair of Software & Systems Engineering (Prof. Pretschner)
Lecturers Amjad Ibrahim
Responsible/Coordination: Alexander Pretschner
Assistants:
Mojdeh Golagha
Dates

Assignment to Modules

Further Information

Courses are together with exams the building blocks for modules. Please keep in mind that information on the contents, learning outcomes and, especially examination conditions are given on the module level only – see section "Assignment to Modules" above.

additional remarks We’re living in a world where we’re surrounded by the services that are adopting more and more features driven by machine learning systems. We are witnessing the emergence of self-drive cars, we talk to natural language processing assistants and gain data-driven based weather predictions. Amazon uses machine learning to improve the quality of the recommendations they make to their customers and many more everyday examples. Machine learning techniques have also been used for various purposes in software engineering and specifically software testing. While software bugs cost billions of dollars every year, it is a widely known concern that the maintenance of software requires a large amount of human effort and computing resources to analyze faulty code and devise a repair solution for the problem. It is therefore desirable to improve testing and debugging processes with smart automated techniques. The topics covered in this practical course include: application of machine learning in Software Defect Prediction, Test suite refinement, Fault localization and Debugging. Students will be given a software project (in Java or C++), respective test cases and needed tools. Students are expected to form teams of 2 students at the beginning of the semester. Teams will choose one of the main topics mentioned earlier and then, they will be given a list of suggested topics for the lab project. They are also encouraged to come up with their own topics. The course is divided into two parts. For the first part, teams will work on the data preparation and processing as weekly tasks. At the end of the first part, teams are expected to hand in a short presentation of how they want to proceed: the exact problem they want to solve and the machine learning algorithms they want to apply. During the second half of the course, teams will be required to develop a small project that implements and evaluates the previously-chosen topics.
Links TUMonline entry
Top of page