AI-drevet fejlfinding og testning i Visual Studio

Sidste ændring: 12/15/2025
Forfatter: C SourceTrail
  • Visual Studio og VS Code kombinerer klassiske fejlfindingsværktøjer med AI-funktioner som Copilot, IntelliCode og Copilot Chat for at strømline fejlretning og testoprettelse.
  • Avancerede breakpoint-typer, multi-target-sessioner, profilering og Test Explorer-integration gør det nemmere at diagnosticere og optimere applikationsadfærd.
  • AI-assistenter som GitHub Copilot, DotRush og eksterne multi-agent-platforme hjælper med at generere tests, forklare fejl, foreslå rettelser og gennemgå kode i stor skala.
  • Ved at vælge den rette blanding af indbyggede og tredjeparts AI-værktøjer kan teams forbedre pålidelighed, ydeevne og sikkerhed uden at opgive velkendte Visual Studio-arbejdsgange.

AI til fejlfinding og test i Visual Studio

Fejlfinding og testning i Visual Studio og Visual Studio Code har udviklet sig fra klassiske breakpoints og overvågningsvinduer til et økosystem drevet af AI-assistenter, smarte udvidelser og effektive profileringsværktøjer. I stedet for at bruge timevis på at gå linje for linje, kan du nu læne dig op ad værktøjer som GitHub Copilot, IntelliCode, Copilot Chat og en ny bølge af agentiske kodeassistenter (AI-værktøjer til fejlfinding og udvikling) der hjælper dig med at konfigurere debuggere, skrive og køre tests, profilere ydeevne og endda iterere på rettelser automatisk.

Hvis du arbejder med C#, .NET, JavaScript, TypeScript eller en anden moderne kodestak, findes der en omfattende værktøjskasse, der blander den velkendte Visual Studio-debugger med AI-drevet vejledning, automatiseret testgenerering og kodegennemgang. I denne guide gennemgår vi, hvordan debugging fungerer i Visual Studio Code og den fulde Visual Studio IDE, hvordan AI integreres i disse arbejdsgange, og hvilke eksterne assistenter der kan forbedre debugging og testning uden at binde dig til en enkelt leverandør.

Grundlæggende fejlfinding i Visual Studio Code

Visual Studio Code leveres med førsteklasses debugging-understøttelse til JavaScript, TypeScript og Node.js (se Node.js-vejledning for begyndere), og kan udvides til næsten ethvert sprog via markedspladsudvidelser. Kernearbejdsgangen er stadig den samme: konfigurer et fejlfindingsmål, angiv breakpoints, start en session og inspicer programmets tilstand, mens det kører.

Fejlfindingsbrugergrænsefladen i VS Code er organiseret omkring visningerne Kør og Fejlfinding, en kompakt værktøjslinje, fejlfindingskonsollen og sidepaneler til kaldstak, variabler og overvågningsudtryk. Sammen giver de dig mulighed for at starte og kontrollere sessioner, hoppe mellem stakrammer og spore de værdier, der betyder noget, mens din kode pauser ved breakpoints.

Før du kan foretage fejlfinding i de fleste projekter, skal du enten bruge VS Codes automatiske konfiguration eller definere en dedikeret launch.json-fil, der beskriver, hvordan du kører din app under fejlfindingsprogrammet. Enkle scripts kører ofte direkte via F5, mens komplekse backends, multi-service apps eller eksterne processer kræver eksplicitte opstartskonfigurationer og vedhæftningsindstillinger.

Det er normalt lige så nemt at starte en session som at åbne filen, der indeholder dit indgangspunkt, og trykke på F5 eller vælge Kør og fejlfind i sidepanelet. VS Code vil spørge, hvilken debugger der skal bruges (f.eks. Node, .NET, Python eller C++), og åbner derefter DEBUG CONSOLE, skifter statuslinjens farve og viser den aktuelt aktive konfiguration, så du altid ved, hvad der kører.

Når udførelsen er sat på pause, vises fejlfindingsværktøjslinjen med standardkontrollerne til at fortsætte, sætte på pause, gå over, gå ind i, gå ud af, genstarte eller stoppe programmet. Hvis du fejlsøger flere mål på én gang, f.eks. en klient og en server, kan du i værktøjslinjen vælge, hvilken session der er aktiv, så dine trinkommandoer gælder for den korrekte proces.

Fejlfindingsfunktioner i Visual Studio Code

Mestring af breakpoints, logpoints og avancerede debug-funktioner

Breakpoints er stadig kernen i enhver fejlfindingsworkflow i VS Code, men editoren giver dig langt mere end blot simple linjeskift. Du kan klikke i venstre margen for at slå et standardbrudpunkt til/fra, bruge F9 på den aktuelle linje eller administrere dem centralt i afsnittet BREAKPOINTS i visningen Kør og fejlfind.

Visuelle signaler hjælper dig med at forstå status for hvert breakpoint med et hurtigt blik: solide røde cirkler betyder aktiv, dæmpede grå cirkler indikerer deaktiveret, og hule ikoner viser breakpoints, der ikke kunne registreres korrekt med målfejlfindingsprogrammet. For bedre synlighed kan du endda aktivere markører i oversigtslinealen, så aktive punkter i din kode fremhæves, mens du scroller.

Betingede breakpoints giver dig kun mulighed for at sætte på pause, når et specifikt udtryk er sandt, når en given tærskel for antal hits er nået, eller når et andet breakpoint allerede er udløst. Du tilføjer dem ved at højreklikke i margenen og vælge Tilføj betinget brudpunkt og derefter angive den ønskede betingelse, hitantal eller triggerforhold.

Udløste breakpoints er især nyttige til ustabile fejl, der kun opstår efter en bestemt forudsætning, såsom at en bestemt anmodningssekvens eller en bestemt metode kaldes først. Du forbinder dem ved at vælge Tilføj udløst breakpoint og linke dem til det breakpoint, der skal aktivere dem.

Inline-breakpoints løser problemet med minimerede eller ekstremt tætte kodelinjer ved at lade dig vedhæfte et breakpoint til en bestemt kolonne i stedet for blot en linje. Ved at bruge Shift+F9 under en fejlfindingssession kan du placere dem præcis, hvor du har brug for dem, selvom der er flere sætninger på en enkelt linje, og de kan også indeholde betingelser, hvis det er nødvendigt.

Funktions- og databreakpoints tager tingene videre ved at lade dig stoppe, når en navngivet funktion rammes, eller når en bestemt variabel tilgås, læses eller ændres. Funktionsbreakpoints indtastes fra BREAKPOINTS-headeren med et funktionsnavn, mens databreakpoints normalt oprettes fra VARIABLES-visningen via kommandoer som Break on Value Change eller Break on Access.

Logpunkter opfører sig som 'faste' breakpoints: i stedet for at stoppe udførelsen udskriver de en brugerdefineret besked til fejlfindingskonsollen, hver gang udførelsen sker. Du kan inkludere udtryk i krøllede parenteser i beskedskabelonen, så du får liveindsigt svarende til midlertidig logføring uden at røre kildekoden.

Inspektion af tilstand: variabler, overvågningsudtryk og fejlfindingskonsollen

Datainspektion under fejlfinding

Når dit program er sat på pause, giver VS Code dig flere måder at inspicere og manipulere tilstand på, så du hurtigt kan teste hypoteser. Afsnittet VARIABLER i visningen Kør og fejlfinding viser lokale værdier, argumenter og globaler for den valgte stakramme, mens hvis du holder musen over symboler i editoren, vises værktøjstip med deres aktuelle værdier.

Du kan ændre variabler direkte fra panelet VARIABLER ved at vælge Indstil værdi, hvilket er praktisk til at undersøge, hvordan forskellige input påvirker adfærd uden at genstarte programmet. Kopier værdi og Kopier som udtryk gør det nemt at indsætte nøjagtige udtryk andre steder, især i WATCH-listen eller fejlfindingskonsollen.

I WATCH-sektionen kan du spore vilkårlige udtryk på tværs af trin og stakrammer og holde en fokuseret liste over de værdier, der virkelig betyder noget for den fejl, du jagter. Du kan filtrere variabler efter navn eller værdi med en dedikeret tastaturgenvej, så lange lister forbliver håndterbare.

Debug-konsollen fungerer også som en REPL, der gør det muligt at evaluere vilkårlige udtryk i konteksten af ​​den valgte frame. Du får syntaksfarvning, indrykning og sprogbevidst redigering, plus input på flere linjer ved hjælp af Shift+Enter, hvilket er perfekt til at afprøve rettelser eller kalde hjælpefunktioner undervejs.

Multi-target debugging i VS Code aktiveres, når du kører flere debug-sessioner på én gang, for eksempel en browserklient og Node.js-backend eller forskellige mikrotjenester. Hver session vises som et element på øverste niveau i visningen CALL STACK, værktøjslinjen viser, hvilken der er aktiv, og alle handlinger udføres på den valgte session, indtil du skifter.

Fjernfejlfinding og fejlfindingsudvidelser i VS Code

Fjernfejlfinding og AI-værktøjer i Visual Studio

Understøttelse af fjernfejlfinding i VS Code afhænger af den sprogspecifikke udvidelse, du bruger, med én bemærkelsesværdig indbygget undtagelse: Node.js-fejlfinderen kan straks tilknyttes fjernprocesser. For andre runtime-programmer som Python, .NET, Go eller PHP installerer du de relevante debug-udvidelser og følger deres dokumentation for eksterne eller container-scenarier.

Visual Studio Marketplace er fyldt med debugger-udvidelser, der tilføjer understøttelse af runtime-programmer som C#, C++, Python, PHP, Ruby, Go, PowerShell og mere. Mange af dem integreres problemfrit med launch.json, understøtter avancerede funktioner som databreakpoints og kan endda tilsluttes containerorkestratorer eller cloud-debuggere.

Hvis du har brug for brugerdefineret adfærd, giver VS Code dig også mulighed for at bygge din egen debugger-udvidelse ved hjælp af Debugger Extension-dokumentationen og eksempelprojekter som udgangspunkt. Dette er især værdifuldt for proprietære runtime-programmer eller interne frameworks, hvor der ikke findes standardværktøjer.

Fejlfinding og test i fuld Visual Studio med Test Explorer

Inde i det fulde Visual Studio IDE er enhedstestning og fejlfinding tæt integreret via Test Explorer, hvilket gør det nemt at køre og gennemgå tests sideløbende med den kode, der testes. Du skal blot indstille breakpoints i dine testmetoder, vælge de tests, du er interesseret i, i Test Explorer, og starte en fejlfindingssession direkte derfra.

Når du vælger Fejlfinding på en eller flere tests, starter Visual Studio testløberen under fejlfindingsprogrammet, så du problemfrit kan bevæge dig mellem testkode og implementering. Dette flow er ideelt til TDD, til undersøgelse af fejlende tests eller til validering af komplekse kanttilfælde, hvor du ønsker finmasket kontrol.

Visual Studio 2022 udvider denne arbejdsgang med dybdegående performanceprofilering for individuelle testmetoder, startende med version 17.8, hvor ethvert relevant Performance Profiler-værktøj kan knyttes til en test. Du kan højreklikke på en metode i Test Explorer, vælge Profil, vælge en profiler, f.eks. Instrumentation eller CPU-forbrug, og analysere, hvorfor en test er langsom eller hukommelseskrævende.

Profileringstests i isolation er yderst nyttige til at bekræfte, at mikrooptimeringer rent faktisk betaler sig, da du kan køre profileren, justere implementeringen og måle effekten i et tæt loop. Dette holder præstationsarbejdet baseret på reelle data i stedet for antagelser.

AI-hjælp til fejlfinding af tests med GitHub Copilot i Visual Studio

Nylige Visual Studio-udgivelser introducerer GitHub Copilot-drevne funktioner, der specifikt er rettet mod fejlfinding og udbedring af fejlende tests. Fra og med Visual Studio 2022 17.12 Preview 2 kan du, hvis du har et aktivt Copilot-abonnement, bede IDE'en om at forklare eller fejlfinde mislykkede tests direkte fra Test Explorer.

To kontekstbevidste kommandoer vises, når du højreklikker på en mislykket test: Forklar fejl med Copilot og Fejlfind med Copilot. Den første giver dig en naturlig forklaring på, hvorfor assertionen mislykkedes, baseret på testoutputtet og koden, mens den anden driver et mere interaktivt fejlfindingsflow.

Når du vælger at foretage fejlfinding med Copilot, starter Visual Studio Copilot Debugger Agent, som fungerer stort set som en AI-par-programmør, der fokuserer specifikt på den fejlende test. Den foreslår en hypotese om den grundlæggende årsag, anvender målrettede redigeringer, kører testen igen under debuggeren og itererer efter behov, indtil fejlen er løst, eller yderligere input er påkrævet.

Gennem hele denne løkke genererer agenten også en detaljeret oversigt over, hvad der blev ændret, og hvorfor, så du kan gennemgå forskellen, forstå begrundelsen og beslutte, om du vil beholde eller justere rettelsen. Du bevarer kontrollen, men det hårde arbejde med trial-and-error-fejlfinding håndteres af AI'en.

Et andet Copilot-assisteret fejlfindingsflow i Visual Studio leverer en 'fejlfindingsplan' til komplekse problemer, indstiller automatisk passende breakpoints og overvågningsudtryk og starter en session for dig. Mens fejlfindingsprogrammet holder pause, inspicerer Copilot de aktuelle værdier, beslutter, om man skal fortsætte med at gå frem eller foreslå en kodeændring, og holder samtalen kørende i Copilot Chat, indtil I når en tilstand, der er gået over.

GitHub Copilot og Copilot Chat til daglig fejlfinding og testning

Ud over disse specialiserede flows hjælper GitHub Copilot i Visual Studio og VS Code dig løbende med at skrive, fejlfinde og teste kode. Den tilbyder indlejrede fuldførelser, der kan strække sig over hele linjer eller blokke med flere linjer, og gætter ofte implementeringen af ​​en metode eller opsætningen af ​​en test blot ud fra en kommentar eller funktionssignatur.

Copilot Chat tilføjer et interaktivt sidepanel og en indlejret Ask Copilot-funktion, der giver dig mulighed for at stille spørgsmål på letforståeligt engelsk, f.eks. "hvorfor kastes denne undtagelse her?" eller "skriv xUnit-tests til denne metode med edge cases inkluderet". Assistenten svarer med kommenteret kode, forklaringer og ofte direkte foreslåede testmetoder.

Fordi Copilot har adgang til den aktuelle fil og den omgivende kontekst, er dens svar normalt mere relevante end en generisk websøgning, især når du navigerer i en stor eller ukendt kodebase. Du kan forfine forslagene, anmode om alternative tilgange eller bede den om udelukkende at fokusere på at skrive tests, fejlfinding eller profileringstips.

En af de undervurderede anvendelser af Copilot Chat er at lade den analysere et stakspor, en fejllog eller et profiler-output og oversætte det til en klar rækkefølge af trin, der skal reproduceres og rettes. Dette forkorter tiden mellem at opdage en fejl og at danne en solid fejlfindingsstrategi.

IntelliCode: AI-drevet IntelliSense, der hjælper med at forhindre fejl

Microsoft IntelliCode supplerer Copilot ved at forbedre IntelliSense med AI-rangerede forslag og fuldførelser af hele linjer baseret på mønstre lært fra tusindvis af offentlige databaser. I stedet for at vise alle mulige medlemmer alfabetisk, skubber IntelliCode de mest sandsynlige og mest korrekte til toppen, markeret med et stjerneikon.

Denne kontekstbevidste rangering forbedrer diskret fejlfinding, fordi du er mindre tilbøjelig til at vælge den forkerte overload eller egenskab, når du konfigurerer kode, hvilket igen reducerer antallet af runtime-problemer, du skal forfølge senere. Det er som at have en stille korrekturlæser, der peger dig i retning af de API'er og mønstre, der almindeligvis bruges korrekt.

IntelliCode kan også registrere, når du foretager den samme redigering flere steder, og foreslår en automatisk løsning til gentagne redigeringer, så du ikke overser et sted og introducerer inkonsekvent adfærd. Det er især relevant i fejlretningssessioner, hvor et mønster skal opdateres på tværs af mange filer.

Da IntelliCode kører lokalt i Visual Studio-miljøet, behøver den ikke at sende din kode til eksterne tjenester for at få rangeringsforslag, hvilket forbedrer privatlivets fred og stadig leverer intelligente fuldførelser. Det understøtter sprog som C#, XAML, C++, JavaScript, TypeScript og Visual Basic i Visual Studio IDE.

DotRush: let C#-fejlfinding, testning og profilering i VS Code

For udviklere, der elsker VS Code, men har brug for en effektiv C#-oplevelse, er DotRush en open source-udvidelse, der giver debugging-, test- og profileringsfunktioner svarende til det fulde Visual Studio-miljø. Den er let, hurtig og fungerer ikke kun i VS Code, men også i kompatible gafler, Neovim og Zed.

DotRush tilbyder standard IntelliSense-sættet (autofuldførelse, gå til definition, find referencer, refactoring, omdøbning) sammen med en indbygget decompiler, der kan vise faktisk C#-kode for assemblies, inklusive kernesystembiblioteker. Det alene er en stærk allieret med fejlfinding, når du har brug for at forstå framework-adfærd.

Udvidelsen analyserer alle målframeworks i et projekt med flere mål på én gang, så du kan se fejl for .NET Framework og .NET Core uden at skifte kontekst. Dette sparer tid ved fejlfinding af kode på tværs af platforme, fordi inkompatibiliteter vises med det samme.

DotRush bruger VSDBG til VS Code og NetCoreDbg til andre editorer, og dine eksisterende launch.json-filer fra den klassiske C#-udvidelse er fuldt kompatible. Du kan blot trykke på F5, vælge .NET Core Debugger og lade udvidelsen bygge og starte projektet til fejlfinding uden kompleks opsætning.

Du kan vælge et opstartsprojekt ved at højreklikke på dets fil eller mappe og markere det som Opstartsprojekt, hvilket afspejler funktionsmåden i det fulde Visual Studio og gør det nemmere at fejlfinde i løsninger med flere projekter. DotRush respekterer også Properties\LaunchSettings.json, når den starter en debug-session, selv med NetCoreDbg.

Derudover inkluderer DotRush understøttelse af Unity- og Godot-fejlfinding, en indbygget Test Explorer til NUnit og xUnit samt .NET-profileringsværktøjer, der kan spore udførelse eller registrere heapdumps. Profileringssessioner kan startes sammen med debuggeren eller knyttes til eksisterende processer, hvor rapporter gemmes i projektmappen til senere inspektion.

Det bredere landskab af AI-kodningsassistenter til fejlfinding og testning

Visual Studios indbyggede AI er kun en del af historien; der er et helt økosystem af eksterne AI-kodningsassistenter, der integrerer med VS Code, JetBrains og andre miljøer for at hjælpe med fejlfinding, testning og kodekvalitet. Disse værktøjer varierer meget i fokus, fra ren autofuldførelse til komplette platforme til kodegennemgang med flere agenter.

Platforme som Qodo fokuserer på kodekvalitet på tværs af hele SDLC, med specialiserede agenter til generering af kode og tests, forbedring af testdækning og udførelse af AI-drevne pull request-gennemgange. De integrerer med IDE'er, terminaler og CI-pipelines for at holde kode, test og gennemgangskommentarer i overensstemmelse med organisatoriske standarder.

Andre assistenter som GitHub Copilot (uden for Visual Studio), Tabnine, Replits AI, Amazon Q Developer, AskCodi, Sourcegraph Cody, DeepCode AI, Figstack, CodeGeeX og CodeGPT bringer hver især deres egne styrker til debugging og testning. Nogle fokuserer på syntaksforslag og refactoring i realtid, andre på sikkerhedsscanning, kodeforklaring, oversættelse på tværs af sprog eller automatiseret testoprettelse.

Agentorienterede værktøjer som Cline, Augment Code, Gemini CLI og Qwen3-Coder skubber ideen videre ved at planlægge flertrinsopgaver, redigere filer, køre terminalkommandoer og iterere på feedback næsten som en junioringeniør, der arbejder under din supervision. Dette kan være særligt effektivt til gentagne fejlfindingsopgaver eller masse-refactoring, der ellers ville være kedeligt.

Når man evaluerer disse assistenter til fejlfindingsscenarier, er det værd at overveje faktorer som sprogdækning, IDE-integration, privatliv og on-prem-muligheder, evnen til at forstå store kodebaser, og hvor godt de håndterer testgenerering, sikkerhedstjek og ydeevnetips. Virksomhedsteams er ofte lige så optaget af styring og compliance som af rå AI-kapacitet.

AI-kodningsassistenter er ikke en erstatning for solide fejlfindingsfærdigheder eller gennemtænkt testdesign, men de er hurtigt ved at blive uundværlige ledsagere, der håndterer standardløsninger, afdækker ikke-åbenlyse problemer og holder dig fokuseret på de dele af problemet, der virkelig kræver menneskelig dømmekraft. Når de bruges korrekt, forkorter de feedback-loops og får Visual Studio og VS Code til at føles langt mere responsive i forhold til, hvordan du rent faktisk arbejder.

Når alt dette kombineres, handler moderne debugging og testning i Visual Studio mindre om at huske alle genveje og mere om at orkestrere klassiske værktøjer (breakpoints, watch windows, profilers) med AI-hjælpere som Copilot, IntelliCode, DotRush og eksterne agenter, så konfiguration, diagnose og iteration flyder næsten kontinuerligt, mens du koder. Når du først er blevet fortrolig med at kombinere debugger-brugergrænsefladen med AI-assisteret analyse, testgenerering og performanceprofilering, falder den nødvendige indsats for at spore fejl, forstå fejl og holde din testsuite sund dramatisk.

diseño y construcción de equipos de agentes de ia
relateret artikel:
Diseño y construcción de equipos de agentes de IA: de la estrategia a la puesta en producción
Relaterede indlæg: