Systém pro filtrování testovací sady na základě změn v projektu

Nedílnou součástí moderních metod vývoje softwaru je princip Continuous Integration, kdy je cílem co nejdůkladněji otestovat změny v softwaru co nejdříve. Ne vždy je ale z časových nebo finančních důvodů pouštět kompletní testovací sadu u každého pull requestu, zejména pokud je projekt rozsáhlý, nebo pokud jsou testy časově náročné.

Smyslem této práce je vývoj algoritmu, který bude vyhodnocovat změny v projektu mezi jednotlivými revizemi na základě změn ve zdrojovém kódu, a jeho uplatnění při pouštění testů. Analýza změn provedených např. v rámci pull requestu může u projektů, které obsahují velké množství časově náročných testů, odfiltrovat nepotřebné testy a zajistit tak, že pull request může být v rámci projektu otestován všemi relevantními testy bez nerealistických požadavků na výpočetní výkon.

Součástí práce je aplikace výše uvedeného na projekt ComplianceAsCode, který je typickým příkladem rozsáhlého projektu s náročnými testy.

  1. Zoznámte sa s verzovacím systémom Git, hlavne so spôsobom, akým reprezentuje a zobrazuje rozdiely medzi jednotlivými verziami súborov.
  2. Naštudujte projekt ComplianceAsCode, zamerajte sa na spôsob jeho testovania a na najčastejšie typy zmien v histórii projektu.
  3. Navrhnite metódu pre automatickú analýzu zmien v projekte a pre výpočet množiny testov závislých na daných zmenách.
  4. Implementujte navrhnuté riešenie v nástroji, ktorý na základe analýzy rozdielov medzi verziami software určí množinu testov, ktorú je pre dané zmeny nutné spustiť.
  5. Otestujte vytvorený nástroj na histórii projektu ComplianceAsCode a diskutujte výsledky týchto experimentov.
You must be logged in to perform this action!

matyc

Team:
Location: