Skip to content

MATF-Software-Verification/VS-materials

Repository files navigation


title: "Verifikacija softvera - Vežbe" author: [Ivan Ristović] date: "2023" keywords: [Software Verification] abstract: |

Kolekcija materijala sa vežbi za kurs [Verifikacija softvera](http://www.verifikacijasoftvera.matf.bg.ac.rs/) na Matematičkom fakultetu, Univerziteta u Beogradu.

Teme i alati rađeni na vežbama:
- Dijagnoziranje problema
    - Alati za analizu performansi Linux sistema
    - Analiza ponašanja programa metodom crne kutije
- Debagovanje
    - Debagovanje na niskom nivou ([`gdb`](https://www.sourceware.org/gdb/))
    - Debagovanje C/C++ programa ([`QtCreator`](https://doc.qt.io/qtcreator/creator-debugging.html))
    <!-- - Debagovanje aplikacija nad JVM (Java) ili CLR (C#) ([`IntelliJ IDEA`](https://www.jetbrains.com/idea/), [`Rider`](https://www.jetbrains.com/rider/)) -->
    - JDWP protokol za debagovanje Java metoda
    - Debagovanje Java `native` metoda
    - Debagovanje Java/C# aplikacija kompajliranih unapred u izvršivi program
- Instrumentovanje
    - Introspekcija i format kompiliranih Java klasa 
    - Instrumentovanje Java bajtkoda - Java agenti
- Testiranje jedinica koda
    - Pisanje testabilnog koda
    - [`QtTest`](https://doc.qt.io/qt-6/qttest-index.html)
    <!--- , [`Catch`](https://github.com/catchorg/Catch2) (C, C++) --->
    - [`JUnit`](https://junit.org) (Java)
    - [`xUnit`](https://xunit.net/), [`NUnit`](https://nunit.org/) (C#)
- Praćenje pokrivenosti koda testovima
    - [`lcov`](https://github.com/linux-test-project/lcov) (C, C++)
    - [`JaCoCo`](https://www.jacoco.org/jacoco/) (Java)
    <!--- - [`dotnet-coverage`](https://learn.microsoft.com/en-us/dotnet/core/additional-tools/dotnet-coverage) (C#) --->
- Testiranje pomoću objekata imitatora
    - Ručno pisanje imitator klasa (C++)
    - Imitatori baza podataka (C#)
    - Biblioteke za testiranje koristeći objekte imitatore - [`Mockito`](https://site.mockito.org/) (Java), [`Moq`](https://github.com/moq) (C#)
- Fuzz testiranje
    - [`LLVM libFuzzer`](https://llvm.org/docs/LibFuzzer.html)
- Profajliranje
    - [`Valgrind`](https://valgrind.org/) (memcheck, cachegrind, callgrind, hellgrind, drd)
    - [`perf`](https://perf.wiki.kernel.org/)
    - [`Intel VTune`](https://www.intel.com/content/www/us/en/develop/documentation/vtune-help/top.html)
    - [`eBPF`](https://ebpf.io/)
- Statička analiza
    - [`KLEE`](https://klee.github.io/)
    - [`CBMC`](https://www.cprover.org/cbmc/)
    - [`Clang`](https://clang.llvm.org/)
- Alati i jezici za formalnu verifikaciju softvera
    - [`Dafny`](https://dafny.org/)

...

About

A collection of practice materials for Software Verification course

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published