Att köra och sammanställa kod gör att du kan utföra flera typer av testning, främst med fokus på
funktionella aspekter av din kod, men berör också aspekter av
prestanda och
integration testning. Här är en uppdelning:
* Enhetstestning: Detta är den vanligaste typen som utförs genom sammanställning och exekvering. Du testar enskilda komponenter (funktioner, metoder, klasser) isolerat för att verifiera att de beter sig som förväntat med tanke på specifika ingångar. Du skulle vanligtvis skriva påståenden inom din testkod (med ramverk som Junit, Pytest eller andra) för att kontrollera utgångarna.
* Integrationstestning: Även om det ofta görs separat, kan körningskod hjälpa till med integrationstest om du har att göra med mindre system. Du testar interaktionen mellan olika moduler eller komponenter * efter * de har varit oberoende enhetstestade. Du kontrollerar att anslutningarna och dataflödet mellan delarna fungerar korrekt.
* regressionstest: Efter att ha gjort ändringar i din kod (bugfixar, nya funktioner), sammanställer och kör koden (ofta med en befintlig svit med enhets- och integrationstester) hjälper till att identifiera om dina ändringar har infört oväntade problem i tidigare arbetande delar.
* röktestning: Detta är ett mycket högt test för att säkerställa att den sammanställda koden fungerar. Du letar efter katastrofala misslyckanden - börjar programmet till och med? Ger det några uppenbarligen fel utgångar? Det är en sanitetskontroll innan du går till strängare testning.
* Systemtestning (begränsad): Du kan göra några grundläggande systemtestning genom sammanställning och exekvering. Till exempel kan du verifiera att programmet hanterar förväntade ingångar och utgångar korrekt inom hela systemet. Full systemtest innebär dock vanligtvis mer omfattande scenarier och miljöer.
* Prestandatestning (begränsad): Du kan få * en del * rudimentär prestationsinformation genom att timing exekveringen av din kod eller övervaka resursanvändning (CPU, minne). Dedikerade prestationstestverktyg och metoder ger emellertid mycket mer exakta och detaljerade resultat.
Vad du inte kommer direkt från sammanställning och utförande:
* Användbarhetstest: Detta fokuserar på hur enkelt programmet är att använda ur användarens perspektiv. Du får inte direkt detta från att bara köra kod; Du behöver användaråterkoppling.
* Säkerhetstest: Att köra koden ensam garanterar inte säkerheten. Dedikerad säkerhetstest är avgörande för att hitta sårbarheter.
* Stresstestning/lasttestning: Dessa tester pressar systemet till sina gränser för att hitta brytpunkter. Du behöver verktyg som är specifikt utformade för att simulera höga belastningar.
* statisk analys: Statisk analys undersöker din kod * utan att * köra den, identifiera potentiella problem (som kodlukt, buggar) rent genom kodanalys. Sammanställning är en del av utvecklingsprocessen men det ger inte i sig en djup statisk analys.
Kort sagt, sammanställning och körning av din kod är avgörande för ett brett utbud av testaktiviteter, men det bildar bara en del av en omfattande teststrategi. Att använda det innebär effektivt att skriva bra enhetstester och integrationstester och eventuellt några enkla prestandakontroller. Andra testtyper behöver dedikerade verktyg och tillvägagångssätt.