Dynamická analýza kódu
Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od
verze recenzované 26. května 2021; kontroly vyžadují
2 úpravy .
Dynamická analýza kódu ( angl. Dynamic program analysis ) - softwarová analýza , prováděná spouštěním programů na reálném nebo virtuálním procesoru (na rozdíl od statické analýzy ). Pomůcky pro dynamickou analýzu mohou vyžadovat načtení speciálních knihoven, rekompilaci programového kódu. Některé nástroje mohou instrumentovat spustitelný kód během nebo před spuštěním. Efektivnější dynamická analýza vyžaduje, aby testovanému programu byl poskytnut dostatečný vstup, aby bylo možné získat úplnější kódové pokrytí.. Rovněž je třeba dbát na minimalizaci dopadu přístrojového vybavení na provádění testovaného programu (včetně načasování).
Příklady utilit
- Valgrind [1] ( en ), spouští program na virtuálním procesoru, dokáže detekovat chyby paměti (například související s nesprávným použitím funkcí malloc a free ), závody ve vícevláknových programech .
- Připnout [1]
- DynamoRIO [1]
- Dmalloc , knihovna pro kontrolu alokace a dealokace paměti, stejně jako úniků paměti, opětovného uvolnění atd. Program je nutné překompilovat a do všech souborů je nutné zahrnout hlavičkový soubor C dmalloc.h pro přesnější hlášení.
- jTracert (downlink) , Java agent (nahraný argumentem -javaagent:), který instrumentuje kód existujících aplikací běžících na virtuálním stroji JVM a automaticky generuje sekvenční diagramy .
- Daikon je implementace dynamického invariantního detektoru. Hledá hodnoty vypočítané programem a hledá vlastnosti, které byly pravdivé při spuštění a s největší pravděpodobností budou pravdivé při všech spuštěních.
- DynInst je knihovna, která upravuje kód za běhu. Užitečné při vývoji programů pro dynamickou analýzu, pomáhá přidávat ladicí body (sondy) do testovaného softwaru. Obecně Dyninst nevyžaduje, aby programy byly překompilovány, nicméně nestripované spustitelné soubory a spustitelné soubory s informacemi o ladění jsou snadněji instrumentovatelné.
- Holodeck by Security inovace je nástroj pro simulaci chyb pro dynamickou analýzu a testování křehkosti/bezpečnosti programů Windows.
- IBM Rational Purify : detekuje především chyby při práci s pamětí (pole mimo meze, úniky paměti).
- BoundsChecker : Funkce podobné IBM Purify.
- VB Watch přidává kód runtime analýzy do programů Visual Basic pro monitorování jejich výkonu, zásobníku volání, trasování provádění, instancí objektů, proměnných a pokrytí kódu.
- Insure++ je analyzátor paměti a detektor chyb. Komponenta Inuse vám umožňuje graficky zobrazit historii alokace paměti, analyzovat využití haldy , hledat úniky paměti a tak dále.
- Intel Thread Checker je analyzátor chyb ve vícevláknových aplikacích. Detekuje chyby při konfliktu dat a situace uváznutí. Pracuje s aplikacemi pro Windows a Linux.
- CHESS - vícevláknový .Net ( spravovaný ) a testovací nástroj Win32 , 64 programů
Většina programů pro analýzu výkonu používá techniky dynamické analýzy programů
.
Historické příklady
- IBM OLIVER : interaktivní testovací a ladicí systém CICS , který využívá simulátor instrukční sady
- SIMON analyzátor dávkových programů, testování a ladění systému pomocí simulátoru
- SIMMON : Interní simulátor IBM používaný k vývoji komponent OS, utilit a I/O procesorů
Viz také
Poznámky
- ↑ 1 2 3 Statické a dynamické testování v životním cyklu vývoje softwaru . Získáno 14. ledna 2016. Archivováno z originálu 7. září 2018. (neurčitý)
Odkazy