Dynamisk kodeanalyse
Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den
version , der blev gennemgået den 26. maj 2021; checks kræver
2 redigeringer .
Dynamisk kodeanalyse ( eng. Dynamic program analysis ) - softwareanalyse , udført ved at udføre programmer på en reel eller virtuel processor (i modsætning til statisk analyse ). Dynamiske analyseværktøjer kan kræve indlæsning af specielle biblioteker, genkompilering af programkoden. Nogle hjælpeprogrammer kan instrumentere eksekverbar kode under eller før udførelse. For at være mere effektiv kræver dynamisk analyse, at det testede program gives nok input til at opnå mere fuldstændig kodedækning . Man bør også sørge for at minimere virkningen af instrumentering på udførelsen af det program, der testes (herunder timing).
Eksempler på hjælpeprogrammer
- Valgrind [1] ( da ), eksekverer et program på en virtuel processor, kan detektere hukommelsesfejl (for eksempel relateret til forkert brug af malloc og gratis funktioner ), race-forhold i multitrådede programmer .
- Pin [1]
- DynamoRIO [1]
- Dmalloc , et bibliotek til kontrol af hukommelsesallokering og -deallokering, samt hukommelseslækager, genfrigørelse osv. Programmet skal genkompileres, og C-headerfilen dmalloc.h skal inkluderes i alle filer for mere præcis rapportering.
- jTracert (downlink) , en Java -agent (indlæst med -javaagent:-argumentet), der instrumenterer koden for eksisterende applikationer, der kører i den virtuelle JVM -maskine og automatisk genererer sekvensdiagrammer .
- Daikon er en implementering af en dynamisk invariant detektor. Den søger efter værdier beregnet af programmet og søger efter egenskaber, der var sande ved opstart og højst sandsynligt er sande på alle kørsler.
- DynInst er et bibliotek, der ændrer kode under kørsel. Nyttigt ved udvikling af dynamiske analyseprogrammer, hjælper med at tilføje fejlfindingspunkter (prober) til softwaren, der testes. Generelt kræver Dyninst ikke, at programmer skal rekompileres, men ikke-strippede eksekverbare filer og eksekverbare filer med fejlretningsinformation er nemmere at instrumentere.
- Holodeck by Security innovation er et fejlsimuleringsværktøj til dynamisk analyse og skrøbeligheds-/sikkerhedstest af Windows-programmer.
- IBM Rational Purify : registrerer hovedsageligt fejl, når der arbejdes med hukommelse (array out of bounds, hukommelseslækager).
- BoundsChecker : Funktioner, der ligner IBM Purify.
- VB Watch tilføjer runtime-analysekode til Visual Basic -programmer for at overvåge deres ydeevne, opkaldsstak, eksekveringssporing, instansierede objekter, variabler og kodedækning.
- Insure++ er en hukommelsesanalysator og fejldetektor. Inuse - komponenten giver dig mulighed for grafisk at se hukommelsesallokeringshistorikken, analysere heap -brug , se efter hukommelseslækager og så videre.
- Intel Thread Checker er en fejlanalysator i flertrådede applikationer. Registrerer datakonfliktfejl og dødvande situationer. Fungerer med applikationer til Windows og Linux.
- CHESS - multi-threaded .Net ( administreret ) og Win32 testværktøj , 64 programmer
De fleste præstationsanalyseprogrammer bruger dynamiske programanalyseteknikker
.
Historiske eksempler
- IBM OLIVER : et interaktivt CICS -test- og fejlfindingssystem , der bruger en instruktionssætsimulator
- SIMON batch program analysator, test og debugging system ved hjælp af simulator
- SIMMON : IBMs interne simulator, der bruges til at udvikle OS-komponenter, hjælpeprogrammer og I/O-processorer
Se også
Noter
- ↑ 1 2 3 Statisk og dynamisk test i softwareudviklingens livscyklus . Hentet 14. januar 2016. Arkiveret fra originalen 7. september 2018. (ubestemt)
Links