PA013 Software Testing and Analysis

Fakulta informatiky
jaro 2026
Rozsah
2/0/1. 3 kr. (plus ukončení). Ukončení: zk.
Vyučováno kontaktně
Vyučující
prof. Ing. Tomáš Vojnar, Ph.D. (přednášející)
Ing. Jiří Pavela (přednášející)
Garance
prof. Ing. Tomáš Vojnar, Ph.D.
Katedra počítačových systémů a komunikací – Fakulta informatiky
Kontaktní osoba: prof. Ing. Tomáš Vojnar, Ph.D.
Dodavatelské pracoviště: Katedra počítačových systémů a komunikací – Fakulta informatiky
Rozvrh
Út 17. 2. až Út 12. 5. Út 16:00–17:50 A318
Předpoklady
At least basics of programming in both a higher-level programming language (such as Python) and a lower-level language (such as C). Knowledge of basics of concurrency and operating systems.
Omezení zápisu do předmětu
Předmět je nabízen i studentům mimo mateřské obory.
Předmět si smí zapsat nejvýše 90 stud.
Momentální stav registrace a zápisu: zapsáno: 42/90, pouze zareg.: 0/90, pouze zareg. s předností (mateřské obory): 0/90
Mateřské obory/plány
Anotace
The main goal of the course is to present to the students a range of techniques for basic as well as advanced testing and dynamic analysis of software. Apart from basic terminology, the course aims to cover technologies and techniques ranging from gathering data about analysed programs; various testing techniques, including special techniques, e.g., for testing concurrent programs or for performance testing; through selected frameworks for automated testing; up to using visualisation for identifying problems in programs. Moreover, basics of selected approaches to static program analysis are to be presented too, especially as an alternative to finding bugs through dynamic analysis and a way helping to boost efficiency of dynamic analysis.
Výstupy z učení
At the end of this course, students should be familiar with a range of basic as well as advanced techniques and technologies for automated software testing and analysis. They should be informed about their strengths and weaknesses and be able to reason about their possible combinations and applications on different kinds of software projects.
Klíčová témata
  • Basic terminology from the area of program testing and analysis, coverage criteria.
  • Test automation, CI/CD, examples of automated testing frameworks (e.g., pytest, GoogleTest).
  • Fuzz testing, delta debugging.
  • Collecting analysis data, SystemTap, eBPF.
  • Runtime verification.
  • Overview of various static analysis techniques.
  • Data flow analysis, abstract interpretation, Meta Infer, Frama-C.
  • Concurrency-related errors, coverage metrics.
  • Extrapolating concurrency checkers, noise-injection.
  • Performance analysis.
  • Visualisation in program analysis.
Studijní zdroje a literatura
  • SPILLNER, A. a T. LINZ. Software Testing Foundations, 5th Edition: A Study Guide for the Certified Tester Exam. Rocky Nook, 2021. ISBN 978-1-68198-853-5. info
  • AMMANN, P. a J. OFFUTT. Introduction to Software Testing, 2nd Edition. CAMBRIDGE: CAMBRIDGE UNIV PRESS, 2017. ISBN 978-1-107-17201-2. info
  • PEZZE, M a M YOUNG. Software Testing And Analysis: Process, Principles And Techniques. Hoboken, N.J.: John Wiley & Sons Inc,, 2007, 488 s. ISBN 978-0-471-45593-6. info
Přístupy, postupy a metody používané ve výuce
Lectures.
Independent study and experiments with a chosen method of testing or analysis and its implementation in some tool (or several tools), writing a technical report on the studied method and tools, the conducted experiments and their results.
Způsob ověření výstupů z učení a požadavky na ukončení
Evaluation of the technical report on the studied method of testing or analysis and its tool support. Maximum 40 points, at least 20 points are needed to pass the course.
Written final exam, accompanied by an oral part if need be. Maximum 60 points, at least 30 points are needed to pass the course.
Vyučovací jazyk
Angličtina
Další komentáře
Studijní materiály
Předmět je zařazen také v obdobích jaro 2025.
  • Statistika zápisu (nejnovější)
  • Permalink: https://is.muni.cz/predmet/fi/jaro2026/PA013