Belastingtesten versus stresstesten: verschillen, statistieken en k6-voorbeelden

  1. Home
  2. Blog
  3. Software testen

Softwaretesten

Belastingtesten versus stresstesten: Verschillen, statistieken en k6-voorbeelden

Eén bewijst dat uw systeem het verkeer afhandelt dat u verwacht. De ander zoekt uit waar het kapot gaat en hoe het herstelt. Leer wanneer u elke test moet uitvoeren, welke cijfers u kunt vertrouwen en hoe u een test plant die echte antwoorden oplevert.

9 min leestijd
Belastingtesten versus stresstesten: verschillen, statistieken en k6-voorbeelden

Belangrijkste punten

  • Met belastingtests wordt gecontroleerd of een systeem onder verwacht verkeer aan zijn doelstellingen voldoet.
  • Stresstesten gaan voorbij aan de capaciteit om het breekpunt te vinden en herstel te bestuderen.
  • De instrumenten zijn meestal hetzelfde. Wat verschilt is het doel en het verkeerspatroon.
  • Beoordeel resultaten met percentielen zoals p95 en p99, aangezien gemiddelden ernstige problemen kunnen verbergen.

Uw applicatie werkt perfect met tien gebruikers. Wat gebeurt er op de uitverkoopdag, met tienduizend? Belastingtesten versus stresstesten beschrijven twee verschillende manieren om dit te beantwoorden, en het combineren ervan leidt tot tests die niet bewijzen wat je denkt dat ze doen.

In deze handleiding wordt uitgelegd wat elke test laat zien, de bijbehorende testtypen en hoe u de resultaten kunt lezen. We hebben de onderstaande kleine percentielberekening uitgevoerd op Python 3.13, met gesimuleerde getallen. De k6-scripts zijn illustratieve voorbeelden die we niet hebben uitgevoerd, en de gebruikersaantallen en doelen zijn bedacht, dus vervang ze door uw eigen. Voer deze tests alleen uit op systemen waarvan u de eigenaar bent of waarvoor u toestemming heeft om te testen, aangezien zwaar verkeer op een aanval kan lijken en echte storingen kan veroorzaken.

Het korte antwoord

Bij een belastingstest wordt de vraag gesteld: kunnen we het verkeer dat we verwachten aan, en daarbij onze doelstellingen halen? Een stresstest vraagt ​​zich af: hoeveel kunnen we verdragen voordat we falen, hoe falen we en hoe snel herstellen we?

Denk aan een brug. Een beladingstest rijdt met het verwachte aantal vrachtwagens over de grens en bevestigt dat het in orde is. Een stresstest blijft gewicht toevoegen om erachter te komen wat de limiet is, en of er eerst een waarschuwing wordt gegeven. Gelukkig is software goedkoper om te breken dan een brug.

Belastingtesten versus stresstesten naast elkaar

Aspect Belasting testen Stress testen
Belangrijkste vraag Halen we de doelstellingen bij de verwachte belasting? Waar en hoe breken we?
Verkeersniveau Normale tot verwachte piek Boven verwachting hoogtepunt
Patroon Opvoeren, stabiel blijven Blijf verhogen totdat het mislukt
Mislukking Een mislukte proef De verwachte uitkomst
Belangrijke statistieken Reactietijd, doorvoer, fouten Breekpunt, faalmodus, hersteltijd
Typische timing Vóór elke grote release of evenement Nadat het systeem stabiel is onder belasting
Resultaat Passeren of falen tegen doelen Een capaciteitslimiet en een lijst met zwakke punten

Wat is belastingtesten?

Met belastingtests wordt het realistische verkeer gesimuleerd dat u verwacht, en wordt gemeten hoe het systeem zich gedraagt. Het heeft een doel nodig om te testen, bijvoorbeeld: “bij 500 gelijktijdige gebruikers eindigt 95% van de betaalverzoeken binnen 800 ms, met minder dan 1% fouten.”

Hier ziet u hoe dat eruit zou kunnen zien als een k6-script. k6-tests zijn geschreven in JavaScript en thresholds zetten uw doelen om in een geslaagd of mislukt resultaat:

import http from "k6/http";
import { sleep } from "k6";

export const options = {
  stages: [
    { duration: "5m", target: 500 },   // ramp up
    { duration: "20m", target: 500 },  // hold at expected peak
    { duration: "2m", target: 0 },     // ramp down
  ],
  thresholds: {
    http_req_duration: ["p(95)<800"],
    http_req_failed: ["rate<0.01"],
  },
};

export default function () {
  http.get("https://staging.example.com/products");
  sleep(1);   // think time, as real users pause
}

De sleep is belangrijk. Zonder denktijd hamert elke virtuele gebruiker voortdurend op de server, waardoor veel meer verkeer wordt gegenereerd dan hetzelfde aantal echte mensen zou doen.

Wat is stresstesten?

Stresstesten gaan doelbewust verder dan de verwachte niveaus. Je probeert niet te passeren. Je wilt antwoorden op vragen als:

  • Op welk niveau beginnen de prestaties uit elkaar te vallen?
  • Welk onderdeel faalt als eerste: de database, de applicatieservers of een oproep van derden?
  • Mislukt het probleemloos met duidelijke fouten, of crasht het en gaan er gegevens verloren?
  • Herstelt het zichzelf als het verkeer afneemt?
export const options = {
  stages: [
    { duration: "5m", target: 500 },    // expected peak
    { duration: "5m", target: 1000 },   // beyond it
    { duration: "5m", target: 2000 },   // further
    { duration: "5m", target: 4000 },   // likely to break
    { duration: "10m", target: 0 },     // recovery: does it come back?
  ],
};

Die laatste herstelfase wordt vaak vergeten, en is misschien wel de meest waardevolle. Een systeem dat goed met storingen omgaat, maar nooit herstelt zonder handmatig opnieuw op te starten, betekent nog steeds een storing die iemand midden in de nacht moet verhelpen. Idealiter zou een systeem onder extreme belasting op een gecontroleerde manier zijn werk moeten doen, met duidelijke 503 reacties in plaats van een time-out.

Spike, geniet en andere soorten

Belasting- en stresstests behoren tot een bredere familie van prestatietests:

Typ Patroon Wat het vindt
Rook (prestatie) Een paar gebruikers, kort Of het script en het systeem überhaupt werken
Laden Verwachte piek, vastgehouden Of doelstellingen worden gehaald
Stress Boven capaciteit stijgen Grenzen en faalwijzen
Spike Een plotselinge sprong en dan een val Automatisch schalen en wachtrijgedrag
Genieten (uithoudingsvermogen) Normale belasting voor uren Geheugenlekken, verbindingen die opraken
Capaciteit Geleidelijke stijging De maximale belasting binnen uw doelstellingen

Soak-tests vangen problemen op die korte tests nooit zien. Een klein geheugenlek kan twintig minuten onschuldig lijken en de service pas na twee dagen wegvallen. Spike-tests zijn geschikt voor evenementen zoals flash-verkopen, waarbij het verkeer niet geleidelijk toeneemt.

Metrieken die er toe doen

Metrisch Betekenis Let op
Reactietijd (percentielen) Hoe lang verzoeken duren p95 en p99 stijgen
Doorvoer Verzoeken afgehandeld per seconde Afvlakking naarmate het aantal gebruikers toeneemt
Foutpercentage Percentage mislukte verzoeken Elke plotselinge stijging
CPU en geheugen Gebruik van serverbronnen Verzadiging of gestage groei
Database Trage zoekopdrachten, gebruik van verbindingspool Zwembad uitgeput, slot wacht
Diepte van wachtrij Werk dat wacht om verwerkt te worden Groei die nooit wegebt

Waarom gemiddelden misleiden

Gemiddelden verbergen de langzame verzoeken waar echte mensen over klagen. Om dit te laten zien, hebben we 100 gesimuleerde responstijden gegenereerd, waarvan 95 snel (80 tot 200 ms) en 5 erg langzaam (2,5 tot 4 seconden), en vervolgens de algemene statistieken berekend:

import math, random, statistics

random.seed(3)
times = [random.randint(80, 200) for _ in range(95)] \
      + [random.randint(2500, 4000) for _ in range(5)]

def pct(values, p):
    values = sorted(values)
    return values[math.ceil(p / 100 * len(values)) - 1]

print("avg", round(statistics.mean(times)), "p50", pct(times, 50),
      "p95", pct(times, 95), "p99", pct(times, 99), "max", max(times))

# avg 302 p50 150 p95 199 p99 3740 max 3896

Kijk eens goed naar die cijfers. Het gemiddelde van 302 ms beschrijft niemand. Typische verzoeken duurden ongeveer 150 ms, terwijl de langzame verzoeken meer dan 3 seconden duurden. Zelfs p95 ziet er gezond uit na 199 ms, en alleen p99 onthult het probleem. Een cijfer als p95 betekent dat 95% van de verzoeken zo snel of sneller was.

En één procent van de verzoeken is geen zeldzame gebeurtenis. Als een pagina 50 verzoeken doet, heeft een trage p99 invloed op een groot deel van de paginaweergaven. Stel doelen op de percentielen die voor u belangrijk zijn, en bekijk er meerdere samen.

Tip: Zoek naar de ‘knie’ in je grafieken. Naarmate de belasting toeneemt, blijven de responstijden een tijdje vlak en stijgen dan plotseling, terwijl de doorvoer stopt met groeien. Dat punt is je praktische capaciteit, en het komt vaak lang voordat er daadwerkelijk iets crasht.

Gereedschap

Gereedschap Scripten Bekend om
k6 JavaScript Ontwikkelaarsvriendelijk, drempels passen bij CI
JMeter GUI en XML Volwassen, ondersteunt veel protocollen
Gatling Scala, Java, Kotlin en anderen Op code gebaseerd, efficiënt
Sprinkhaan Python Eenvoudig, op Python gebaseerd gebruikersgedrag

Elk van deze kan zowel belastings- als stresstests uitvoeren. Kies degene die past bij de vaardigheden van uw team, in plaats van een lijst met functies na te jagen. Als u er een in uw pijplijn wilt gebruiken, gaat u naar Wat is CI/CD.

Hoe u een toets plant

  1. Stel doelen. Gebruik echte analyses om uw piekverkeer te vinden en doelen te definiëren.
  2. Kies trajecten. Modelleer realistisch gebruikersgedrag, zoals browsen, zoeken en afrekenen, in realistische proporties. Alleen het raken van de startpagina bewijst weinig.
  3. Gebruik een realistische omgeving. Een kleine testserver kan de productie niet voorspellen. Noteer eventuele verschillen.
  4. Gegevens voorbereiden. Gebruik realistische volumes, want een zoekopdracht die snel is op 100 rijen kan op 10 miljoen rijen crawlen.
  5. Waarschuw mensen. Vertel uw operationele team en eventuele derde partijen, en voer niet per ongeluk een laadtest uit bij een betalingsprovider. Mock externe diensten waar nodig.
  6. Begin klein. Voer eerst een kleine rooktest uit om te bevestigen dat uw script werkt.
  7. Houd alles in de gaten. Zonder serverstatistieken zul je zien dat de snelheid is vertraagd, maar niet waarom.
  8. Herhaal. Voer het na elke oplossing opnieuw uit en houd een basislijn bij om mee te vergelijken.

Het lezen van de resultaten

Symptoom Mogelijke oorzaak
Trage reacties, maar lage CPU Wachten op een database, slot of externe dienst
Database-CPU is hoog Ontbrekende indexen of inefficiënte zoekopdrachten
Plotselinge verbindingsfouten Verbindingspool of bestandslimiet bereikt
Het geheugen stijgt gestaag Een lek of een onbegrensde cache
CPU van belastinggenerator is hoog De testtool is de bottleneck, niet uw systeem

Databases vormen een veelvoorkomend knelpunt, dus als query’s het probleem vormen, lees dan onze handleiding voor SQL-queryoptimalisatie. Die laatste rij van de tabel is een belangrijke valkuil: controleer altijd ook de gezondheid van de machine die de belasting genereert.

Veel voorkomende fouten

  • Gebruikers verwarren met verzoeken. Maak duidelijk of een doel gelijktijdige gebruikers of verzoeken per seconde betekent.
  • We laten de bedenktijd achterwege. Dit leidt tot meer bezoekersaantallen en levert misleidende resultaten op.
  • Te laat testen. Een week voor de lancering is er geen tijd meer om architectuurproblemen op te lossen.
  • Met gebruik van één eindpunt. Echt verkeer combineert lees-, schrijf- en zoekacties.
  • Caching verbergt alles. Identieke herhaalde verzoeken testen mogelijk alleen je cache, dus varieer de gegevens.
  • Eén keer testen. De prestaties veranderen bij elke release, dus voer regelmatig tests uit.

Tot slot

Voer belastingtests uit om te bevestigen dat u het verwachte verkeer aankan, en stresstests om erachter te komen wat er gebeurt als u dat niet kunt. Begin klein: kies uw belangrijkste gebruikerstraject, stel één duidelijk doel en voer een korte test uit tegen staging met monitoring ingeschakeld. Die eerste run leert je meestal iets, en van daaruit kun je verder bouwen.

Veelgestelde vragen

Wat is het belangrijkste verschil tussen belasting- en stresstests?

Met belastingtests wordt het gedrag onder verwacht verkeer gecontroleerd aan de hand van vastgestelde doelen. Stresstesten gaan verder dan het vermogen om het breekpunt te vinden en hoe het systeem herstelt.

Moet ik eerst een belastingtest of een stresstest uitvoeren?

Eerst een test laden. Zodra het systeem onder het verwachte verkeer zijn doelstellingen bereikt, voert u stresstests uit om de grenzen ervan te verkennen. Stressresultaten betekenen weinig voor een onstabiel systeem.

Wat is het verschil tussen een stresstest en een piektest?

Bij een stresstest wordt de belasting doorgaans stap voor stap verhoogd totdat deze faalt. Een piektest springt plotseling naar een hoog niveau, om te zien hoe het systeem omgaat met abrupte veranderingen.

Wat is p95-responstijd?

Dit betekent dat 95% van de verzoeken op of onder dat tijdstip zijn afgerond. Het beschrijft de ervaring van de meeste gebruikers beter dan gemiddeld.

Kan ik belastingtests uitvoeren op productie?

Dat kan, maar voorzichtig, met toestemming, toezicht en een manier om snel te stoppen. De meeste teams beginnen met een productie-achtige staging-omgeving om het risico voor echte gebruikers te verminderen.

Blijf leren

Werk met Stack Quora

Hulp nodig met testen, WordPress of SEO?

We helpen teams betere software te leveren en hun sites te laten groeien. Vertel ons waar u mee bezig bent en wij stellen een duidelijke volgende stap voor.

Blijf lezen

Meer handleidingen over testen, AI en moderne ontwikkeling

Genoten van dit artikel? Kies een onderwerp en ga direct naar onze nieuwste tutorials.

Kunstmatige intelligentie

AI-hallucinaties uitgelegd: waarom taalmodellen dingen verzinnen en hoe ze te verminderen

AI-hallucinaties uitgelegd: wat ze zijn, waarom taalmodellen ze produceren, veelvoorkomende typen, hoe je ze kunt verminderen met aarding en aanwijz…

Lees artikel →
DevOps

Omgevingsvariabelen uitgelegd: .env-bestanden, geheimen en configuratie goed gedaan

Omgevingsvariabelen uitgelegd met Python-voorbeelden die we hebben uitgevoerd: ze lezen en instellen, waarom elke waarde een string is, .env-bestand…

Lees artikel →
Softwareontwikkeling

API-snelheidsbeperking uitgelegd: algoritmen, headers en afhandeling van 429-fouten

API-snelheidsbeperking uitgelegd met een simulatie die we hebben uitgevoerd: token-bucket, vast venster, schuifvenster, 429 reacties, headers van sn…

Lees artikel →
Testautomatisering

Spotten in Python: unittest.mock, patch en de fouten die tests doen liegen

Spotten in Python met unittest.mock, getest: Mock en return_value, side_effect, patchen waar een naam wordt gebruikt, spec en autospec, spotdatums e…

Lees artikel →
Softwaretesten

Codedekking uitgelegd: lijn versus filiaaldekking en wat 100% werkelijk betekent

Codedekking uitgelegd met een echte dekking.py-run: dekking van lijnen, vertakkingen en condities, een rapport lezen, waarom 100% dekking nog steeds…

Lees artikel →
Databases & SQL

DELETE versus TRUNCATE versus DROP in SQL: verschillen, terugdraaien en wanneer elk te gebruiken

DELETE versus TRUNCATE versus DROP uitgelegd met geteste SQL: wat elk verwijdert, terugdraaien, triggers, identiteitsreset, snelheid en hoe PostgreS…

Lees artikel →
Databases & SQL

SQL-weergaven uitgelegd: creëer, gebruik en vermijd de valkuilen, met voorbeelden

SQL-weergaven uitgelegd met query's die we hebben uitgevoerd: een weergave maken, live resultaten, kolommen verbergen, prestaties, bijwerkbare en ge…

Lees artikel →
Softwareontwikkeling

TypeScript-interface versus type: echte verschillen, getest met de compiler

TypeScript-interface versus type, gecontroleerd met de echte compiler: wat beide kunnen doen, wat slechts één kan doen, samenvoegen van declaraties,…

Lees artikel →
Softwareontwikkeling

Python *args en **kwargs uitgelegd: flexibele functies met duidelijke voorbeelden

Python *args en **kwargs uitgelegd met code die we hebben uitgevoerd: in- en uitpakken, parametervolgorde, argumenten die alleen trefwoorden en posi…

Lees artikel →
Softwareontwikkeling

Python Lambda-functies: syntaxis, echt gebruik en wanneer u ze niet moet gebruiken

Python lambda-functies uitgelegd met code die we hebben uitgevoerd: syntaxis, sorteren met sleutel, kaart en filter, sluitingen, de laat-bindende va…

Lees artikel →
Kunstmatige intelligentie

Wat zijn AI-agenten? Hoe ze werken, met een eenvoudige agentloop die u kunt uitvoeren

Wat zijn AI-agenten? Een duidelijke gids voor de agentenlus, tools, geheugen en vangrails, met een kleine Python-lus die we hebben uitgevoerd, echte…

Lees artikel →
DevOps

Monitoring versus waarneembaarheid: het echte verschil, met logboeken, statistieken en sporen

Monitoring versus waarneembaarheid uitgelegd: bekende en onbekende fouten, logboeken, statistieken en sporen, een walkthrough voor afrekenincidenten…

Lees artikel →
DevOps

Docker-volumes versus bindingsmounts: bewaar containergegevens op de juiste manier

Docker-volumes versus bind-mounts uitgelegd: waarom containergegevens verdwijnen, benoemde volumes, bind-mounts, tmpfs, Compose-voorbeelden, back-up…

Lees artikel →
Testautomatisering

TDD versus BDD: belangrijkste verschillen, één functie die op beide manieren is gebouwd en wanneer deze moet worden gebruikt

TDD versus BDD uitgelegd met één kortingsfunctie die in beide richtingen is gebouwd: rood-groen-refactor met code die we hebben uitgevoerd, gegeven-…

Lees artikel →
Softwaretesten

Gebruikersacceptatietesten (UAT): proces, checklist en echte voorbeelden

Gebruikersacceptatietesten uitgelegd: wie voert het uit, hoe het verschilt van QA, een proces in zeven stappen, een UAT-testcase-sjabloon, een check…

Lees artikel →
Databases & SQL

SQL NULL-waarden uitgelegd: IS NULL, COALESCE, NULLIF en de te vermijden vallen

SQL NULL-waarden uitgelegd met query's die we hebben uitgevoerd: logica met drie waarden, IS NULL, COALESCE, NULLIF, hoe aggregaten, joins en sorter…

Lees artikel →
Databases & SQL

SQL CASE WHEN-instructie: syntaxis, echte voorbeelden en veelvoorkomende fouten

SQL CASE WHEN uitgelegd met vragen die we hebben uitgevoerd: eenvoudige en doorzochte formulieren, volgorde van de voorwaarden, draaipunten met SUM,…

Lees artikel →
Softwareontwikkeling

Wat is JWT? JSON-webtokens uitgelegd met een werkend voorbeeld

Wat is JWT? JSON Web Tokens uitgelegd: de drie delen, een token gebouwd en waarmee is geknoeid in de code die we hebben uitgevoerd, JWT versus sessi…

Lees artikel →
Softwareontwikkeling

JavaScript-gebeurtenislus uitgelegd: call-stack, microtaken en timers met voorbeelden

De JavaScript-gebeurtenislus uitgelegd met code die we hebben uitgevoerd: call-stack, taak- en microtask-wachtrijen, waarom setTimeout 0 niet onmidd…

Lees artikel →
Softwareontwikkeling

Python-generatoren en opbrengst uitgelegd: bespaar geheugen met echte voorbeelden

Python-generatoren en opbrengst uitgelegd met code die we hebben uitgevoerd: hoe ze pauzeren en hervatten, gemeten geheugenbesparingen, pijplijnen, …

Lees artikel →
Kunstmatige intelligentie

Wat zijn inbeddingen? Vectoren en cosinusovereenkomst eenvoudig uitgelegd

Wat zijn insluitingen? Een gids in duidelijke taal over vectoren, cosinusovereenkomst en semantisch zoeken, met een klein voorbeeld dat we hebben ui…

Lees artikel →
DevOps

Implementatie van blauwgroen versus kanarie: verschillen, afwegingen en hoe te kiezen

Blauw-groen versus kanarie-implementatie uitgelegd: hoe elk werkt, kosten, risico's en terugdraaien, stabiele gebruikersbucket die we hebben getest,…

Lees artikel →
Testautomatisering

Schilferige tests: wat de oorzaak ervan is en hoe u ze voorgoed kunt oplossen

Zwakke tests uitgelegd met demo's die we hebben uitgevoerd: de belangrijkste oorzaken, hoe je er een kunt bevestigen en diagnosticeren, goede oploss…

Lees artikel →
Softwaretesten

Belastingtesten versus stresstesten: verschillen, statistieken en k6-voorbeelden

Belastingtesten versus stresstesten uitgelegd: wat elk bewijst, piek- en soak-tests, de statistieken die er toe doen, waarom gemiddelden misleiden, …

Lees artikel →
Softwaretesten

Testcase versus testscenario: belangrijkste verschillen, voorbeelden en wanneer deze te gebruiken

Testcase versus testscenario uitgelegd: duidelijke definities, een tabel naast elkaar, één functie voor het opnieuw instellen van wachtwoorden, over…

Lees artikel →
Databases & SQL

Optimalisatie van SQL-query's: lees uitvoeringsplannen en repareer langzame query's, met timing

Optimalisatie van SQL-query's getest op een miljoen rijen: lees uitvoeringsplannen, voeg de juiste indexen toe, repareer niet-sargeerbare filters, g…

Lees artikel →
Databases & SQL

SQL UNION versus UNION ALL: verschillen, voorbeelden en geteste prestaties

SQL UNION versus UNION ALL uitgelegd met de query's die we hebben uitgevoerd: duplicaten, de regels volgen beide, een echte databug, gemeten prestat…

Lees artikel →
Softwareontwikkeling

JavaScript Fetch API-tutorial: GET, POST, foutafhandeling en time-outs

Een JavaScript Fetch API-tutorial getest tegen een lokale server: GET en POST, waarom 404 niet gooit, een herbruikbare helper, queryreeksen, time-ou…

Lees artikel →
Softwareontwikkeling

Python-bestandsverwerking: lezen, schrijven, CSV, JSON en pathlib met voorbeelden

Het verwerken van Python-bestanden uitgelegd met code die we hebben uitgevoerd: open modi, met het lezen van grote bestanden, CSV, JSON, pathlib, bi…

Lees artikel →
Softwareontwikkeling

Python-klassen en -objecten: OOP-zelfstudie met echte voorbeelden

Python-klassen en -objecten uitgelegd met code die we hebben uitgevoerd: __init__, methoden, klasse versus instantie-attributen, overerving, eigensc…

Lees artikel →
Kunstmatige intelligentie

Wat is een groot taalmodel? Hoe LLM's werken, uitgelegd zonder de hype

Wat is een groot taalmodel? LLM's uitgelegd in duidelijke taal: tokens, inbedding, aandacht, training, temperatuur- en contextvensters, een kleine d…

Lees artikel →
DevOps

Linux-opdrachten voor beginners: de essentiële terminalgids met voorbeelden

Linux-opdrachten voor beginners, gegroepeerd op taak: navigatie, bestanden, logboeken bekijken, grep, pipelines, machtigingen, processen en archieve…

Lees artikel →
Testautomatisering

Selenium versus toneelschrijver: belangrijkste verschillen, code vergeleken en welke te kiezen

Selenium versus Playwright vergeleken: architectuur, wachten, browser- en taalondersteuning, debuggen, dezelfde test in beide tools, migratieadvies …

Lees artikel →
Softwaretesten

Equivalentiepartitionering: testontwerptechniek uitgelegd met uitgewerkte voorbeelden

Equivalentiepartitionering uitgelegd: hoe je geldige en ongeldige partities kunt vinden, uitgewerkte voorbeelden voor leeftijden, wachtwoorden en ko…

Lees artikel →
Softwaretesten

Ernst versus prioriteit bij het testen van software: verschillen, matrix en echte voorbeelden

Ernst versus prioriteit bij het testen van software uitgelegd: duidelijke definities, een vierwegmatrix met voorbeelden, niveauschalen, wie deze bep…

Lees artikel →
Databases & SQL

Tutorial voor SQL-subquery's: typen, gecorreleerde subquery's en BESTAAN met voorbeelden

Een SQL-subquery-tutorial met query's die we hebben uitgevoerd: scalaire, IN-, FROM- en SELECT-subquery's, gecorreleerde subquery's, EXISTS, de NOT …

Lees artikel →
Databases & SQL

SQL-transacties en ACID uitgelegd: COMMIT-, ROLLBACK- en isolatieniveaus

SQL-transacties en ACID uitgelegd met een bankoverschrijving die we hebben uitgevoerd: COMMIT, ROLLBACK, savepoints, locks, isolatieniveaus, dirty r…

Lees artikel →
Softwareontwikkeling

Git merge vs rebase: verschillen, voorbeelden en wanneer je wat gebruikt

Git merge vs rebase uitgelegd met echte logoutput, een vergelijkingstabel, de gouden regel van rebase en een veilige teamwerkwijze.

Lees artikel →
Softwareontwikkeling

Python list comprehension: syntaxis, voorbeelden en wanneer je het vermijdt

Python list comprehension uitgelegd: syntaxis, filteren, if-else, geneste lussen, gemeten tijden en wanneer een gewone for-lus beter is.

Lees artikel →
Databases & SQL

SQL JOIN uitgelegd met voorbeelden (Inner, Left, Right, Full)

Begrijp SQL joins stap voor stap met voorbeeldtabellen en queries: INNER, LEFT, RIGHT, FULL, CROSS en SELF, plus veelgemaakte fouten en prestatietips.

Lees artikel →