1. Ověření integrity
V rámci úrovně Ověření integrity se provádí porovnání dodaných zdrojových kódů a dalších zdrojů s deklarovaným obsahem.
V rámci této úrovně ověříme:- Zda uschovávaná data odpovídají deklarovanému rozsahu a struktuře.
- Pokud jsou data komprimována, zda se dají dekomprimovat do deklarované struktury.
- Pokud jsou data šifrována, zda je přiložen klíč a postup, kterým lze data rozšifrovat.
2. Ověření kompilace
V rámci úrovně Ověření kompilovatelnosti, která úzce navazuje na 1. úroveň, se ověří, zda lze z dodaných dat, pomocí deklarovaných nástrojů úspěšně sestavit binární podobu.
V rámci této úrovně ověříme:- Zda jsou zdokumentovány kroky nutné ke kompilaci.
- Zda jsou dostupné potřebné nástroje (kompilátory a knihovny) ke kompilaci.
- Úspěšnost překladu (kompilace) zdrojových kódů do objektového kódu (tj. strojového kódu cílové architektury), pomocí dodaného nebo specifikovaného (pokud je jinak dostupný) překladače (nebo překladačů) a dodaných kompilačních skriptů.
- Úspěšnost spojení (linkování) objektového kódu s kódem knihoven (standardních nebo dodaných Poskytovatelem) do spustitelného kódu software pro cílovou platformu.
- Zda spustitelný kód odpovídá požadované verzi.
3. Posouzení funkcionality
V rámci úrovně Posouzení funkcionality, která navazuje na 1. úroveň se posuzuje, zda zdrojový kód odpovídá deklarované funkcionalitě (v dokumentaci) a zda je kód dostatečně čitelný pro třetí stranu.
V rámci této úrovně ověříme:- Zda zdrojový kód obsahuje funkcionalitu deklarovanou v dokumentaci. Posuzuje se obsah, nikoliv správnost.
- Zda je zdrojový kód dostatečně čitelný pro třetí stranu (komentáře, formátování, názvy identifikátorů).
4. Posouzení kvality zdrojového kódu
V rámci úrovně Posouzení kvality zdrojového kódu, která navazuje na 1. a 3. úroveň, se na základě heuristických analýz ověří zda je zdrojový kód dostatečně čistý a zda nevykazuje některá rizika (...). Tuto úroveň lze docílit pouze v případě, že k danému zdrojovému kódu existuje potřebné heuristické nástroje.
V rámci této úrovně provedeme:- Heuristickou analýzu přiloženého zdrojového kódu. Výstupem je report s možnými riziky.
5. Ověření funkčnosti pomocí testů
Časově i finančně nejnáročnější úroveň, pro jejíž provedení je potřeba úspěšně realizovat všechny předchozí úrovně, je ověření funkčnosti kompilovaného kódu a částečné ověření jeho správnosti. Tento krok však má i značná omezení, protože musí existovat potřebné nástroje, být definovány zdrojová a cílová data testů a v neposlední řadě musí být kód napsán tak, aby byl testovatelný.
V rámci této úrovně provedeme:- Test kompilovaného kódu nad simulačními daty.
- Vytvoříme tzv. unit testy, které ověří funkční správnost testovaného kódu.