Analiza dinamică a codului
Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de
versiunea revizuită pe 26 mai 2021; verificările necesită
2 modificări .
Analiza dinamică a codului ( ing. Analiza dinamică a programelor ) - analiza software , efectuată prin executarea programelor pe un procesor real sau virtual (spre deosebire de analiza statică ). Utilitarele de analiză dinamică pot necesita încărcarea bibliotecilor speciale, recompilarea codului programului. Unele utilitare pot instrumenta codul executabil în timpul sau înainte de execuție. O analiză dinamică mai eficientă necesită ca programul testat să primească suficientă intrare pentru a obține o acoperire mai completă a codului.. De asemenea, trebuie avut grijă pentru a minimiza impactul instrumentării asupra execuției programului testat (inclusiv sincronizarea).
Exemple de utilități
- Valgrind [1] ( en ), execută un program pe un procesor virtual, poate detecta erori de memorie (de exemplu, legate de utilizarea incorectă a malloc și funcții gratuite ), condiții de cursă în programe multithreaded .
- PIN [1]
- DynamoRIO [1]
- Dmalloc , o bibliotecă pentru verificarea alocării și dealocarii memoriei, precum și a pierderilor de memorie, re-eliberare etc. Programul trebuie să fie recompilat, iar fișierul antet C dmalloc.h trebuie inclus în toate fișierele pentru o raportare mai precisă.
- jTracert (downlink) , un agent Java (încărcat cu argumentul -javaagent:) care instrumentează codul aplicațiilor existente care rulează în mașina virtuală JVM și generează automat diagrame de secvență .
- Daikon este o implementare a unui detector dinamic invariant. Acesta caută valorile calculate de program și caută proprietăți care au fost adevărate la pornire și care sunt cel mai probabil să fie adevărate pe toate rulările.
- DynInst este o bibliotecă care modifică codul în timpul execuției. Util la dezvoltarea programelor de analiză dinamică, ajută la adăugarea de puncte de depanare (sonde) la software-ul testat. În general, Dyninst nu necesită ca programele să fie recompilate, cu toate acestea, executabilele nedecapate și executabilele cu informații de depanare sunt mai ușor de instrumentat.
- Holodeck by Security innovation este un instrument de simulare a erorilor pentru analiza dinamică și testarea fragilității/securității programelor Windows.
- IBM Rational Purify : detectează în principal erori atunci când lucrează cu memorie (matrice în afara limitelor, scurgeri de memorie).
- BoundsChecker : Caracteristici similare cu IBM Purify.
- VB Watch adaugă cod de analiză de rulare la programele Visual Basic pentru a le monitoriza performanța, stiva de apeluri, urmărirea execuției, obiectele instanțiate, variabilele și acoperirea codului.
- Insure++ este un analizor de memorie și un detector de erori. Componenta Inuse vă permite să vedeți grafic istoricul alocării memoriei, să analizați utilizarea heap -ului , să căutați scurgeri de memorie și așa mai departe.
- Intel Thread Checker este un analizor de erori în aplicații cu mai multe fire. Detectează erorile de conflict de date și situațiile de blocaj. Funcționează cu aplicații pentru Windows și Linux.
- CHESS - instrument de testare .Net ( administrat ) și Win32 cu mai multe fire, 64 de programe
Majoritatea programelor de analiză a performanței folosesc tehnici de analiză dinamică a programelor
.
Exemple istorice
- IBM OLIVER : un sistem interactiv de testare și depanare CICS care utilizează un simulator de set de instrucțiuni
- Analizor de programe batch SIMON , sistem de testare și depanare folosind simulator
- SIMMON : Simulatorul intern al IBM folosit pentru a dezvolta componente ale sistemului de operare, utilități și procesoare I/O
Vezi și
Note
- ↑ 1 2 3 Testări statice și dinamice în ciclul de viață al dezvoltării software . Consultat la 14 ianuarie 2016. Arhivat din original la 7 septembrie 2018. (nedefinit)
Link -uri