Gebruikersacceptatietesten (UAT): Proces, checklist en echte voorbeelden
Software kan elke test doorstaan en toch falen bij de mensen die het nodig hebben. UAT is de laatste controle of het het echte bedrijfsprobleem oplost. Ontdek wie het moet uitvoeren, hoe u het moet plannen en wanneer u zich moet afmelden.
- Gebruikersacceptatietests controleren aan de hand van echte scenario’s of de software voldoet aan de echte zakelijke behoeften.
- Het wordt beheerd door zakelijke gebruikers of klanten, niet door het team dat de software heeft gebouwd.
- QA vraagt ”werkt het zoals gespecificeerd?”, Terwijl UAT vraagt ”lost het het probleem op?”.
- Maak afspraken over toegangscriteria, exitcriteria en wie zich afmeldt voordat UAT begint.
Een team levert ooit een declaratiesysteem af dat elke technische test doorstaat. Op de eerste dag ontdekt het financiële team dat het geen claims in meerdere valuta kan afhandelen, die een groot deel van hun werk uitmaken. Niets was “kapot”, maar het was niet bruikbaar. Er bestaan gebruikersacceptatietests om precies dat soort gaten op te vangen vóór de lancering.
In deze handleiding wordt beschreven hoe UAT verschilt van andere tests, hoe u deze stap voor stap kunt uitvoeren en hoe u kunt beslissen wanneer u klaar bent voor release. Het bovenstaande scenario en de onderstaande voorbeelden zijn illustratief en het proces moet worden geschaald om bij uw project te passen.
Wat is UAT?
UAT is meestal de laatste testfase vóór de release, waarin de beoogde gebruikers bevestigen dat de software onder realistische omstandigheden hun werk kan doen. Het wordt ook wel eindgebruikertesten of acceptatietesten genoemd. Het komt na de ontwikkeling en het testen van het systeem, wanneer wordt verwacht dat het product stabiel zal zijn.
Het doel is niet om elke bug te vinden. In dit stadium zouden de meeste daarvan al verdwenen moeten zijn. Het doel is validatie: hebben we het juiste gebouwd? Testers verifiëren dat het product overeenkomt met de specificatie. UAT valideert dat de specificatie en het product daadwerkelijk aan de behoefte voldoen.
UAT versus QA-testen
| Aspect | QA of systeemtesten | UAT |
|---|---|---|
| Belangrijkste vraag | Werkt het zoals aangegeven? | Voldoet het aan de behoefte van het bedrijfsleven? |
| Uitgevoerd door | Testers en QA-ingenieurs | Zakelijke gebruikers of klanten |
| Tijdstip | Tijdens en na de ontwikkeling | Vlak voor de release |
| Gebaseerd op | Eisen en ontwerpen | Echte zakelijke workflows |
| Focus | Defecten, randgevallen, integraties | Gebruiksgemak en geschikt voor het doel |
| Technische kennis | Vaak hoog | Niet nodig |
| Resultaat | Bugrapporten | Acceptatie of afwijzing |
UAT vervangt geen andere tests. Als gebruikers fundamentele bugs blijven tegenkomen, was de build nog niet klaar en verspil je hun beperkte tijd. Deze problemen horen thuis in eerdere testniveaus en regressietesten.
Wie leidt UAT?
| Rol | Verantwoordelijkheid |
|---|---|
| Eindgebruikers | Voer scenario’s uit en geef feedback |
| Producteigenaar of bedrijfsanalist | Definieert de reikwijdte en schrijft of beoordeelt scenario’s |
| UAT-coördinator of QA-leider | Plant de sessies, ondersteunt testers, volgt problemen op |
| Ontwikkelaars | Los problemen op en beantwoord technische vragen |
| Zakelijk sponsoren | Neemt de definitieve aftekeningsbeslissing |
Kies voor testers die vandaag echt het werk doen. Een ervaren schadebehandelaar zal problemen opmerken die een manager of een proxy nooit zou ontdekken. Voeg een scala aan ervaring toe, omdat een nieuwe medewerker vaak verwarrende stappen onthult waar een expert omheen werkt zonder dat hij het merkt. En zorg ervoor dat hun managers daar tijd voor vrijmaken, want UAT kan niet slagen bovenop een volledige werkdruk.
Soorten UAT
| Typ | Wat het controleert | Voorbeeld |
|---|---|---|
| Zakelijke acceptatie | Voldoet aan zakelijke doelstellingen | Het personeel vult een echte claim van begin tot eind in |
| Alfa testen | Intern testen in een gecontroleerde setting | Medewerkers proberen een nieuwe app vóór externe gebruikers |
| Bèta-testen | Echte klanten in reële omstandigheden | Een beperkte openbare preview |
| Acceptatie van contracten | Voldoet aan overeengekomen contractvoorwaarden | Een klant verifieert een opgeleverd systeem |
| Regelgevende acceptatie | Voldoet aan wettelijke of complianceregels | Controles op gezondheidszorg- of bankregels |
| Operationele acceptatie | Klaar om in productie te gaan | Back-ups, monitoring en ondersteunende processen |
Het UAT-proces in zeven stappen
1. Definieer de reikwijdte en doelstellingen
Bepaal wat wordt geaccepteerd, wat buiten de reikwijdte valt en welke bedrijfsresultaten ertoe doen. Bijvoorbeeld: “Financieel personeel kan een onkostendeclaratie indienen, goedkeuren en betalen, in elke ondersteunde valuta.”
2. Maak overeenstemming over acceptatiecriteria
Schrijf in gewone taal op hoe succes eruit ziet, idealiter aan het begin van het project in plaats van de week vóór de lancering. Vage criteria leiden later tot ruzies.
3. Kies en brief testers
Selecteer echte gebruikers, leg het doel uit, laat ze zien hoe ze feedback kunnen vastleggen en maak duidelijk dat ze de software testen en niet zelf worden getest. Veel mensen zijn bang dat er iets misgaat.
4. Bereid de omgeving en gegevens voor
De UAT-omgeving moet zo veel mogelijk op productie lijken als praktisch haalbaar is. Gebruik realistische data, stel de juiste gebruikersrollen in en controleer integraties zoals e-mail. Als u productiegegevens kopieert, maskeer dan eerst persoonlijke gegevens. Voer een snelle rooktest uit, zodat testers niet arriveren om een kapotte constructie te ontdekken.
5. Schrijf scenario’s
Baseer deze op echte workflows in plaats van op individuele knoppen. Ze moeten lezen als hun werk, niet als de software. In onze gids voor testcase versus testscenario wordt uitgelegd hoeveel details u nodig heeft.
6. Voer de tests uit en verzamel feedback
Voer sessies uit met iemand die beschikbaar is om te helpen. Verzamel problemen op één plek, met screenshots. Laat ook wat tijd over voor gratis onderzoek, aangezien mensen dingen proberen die scripts nooit verwachten. Verkennend testen biedt hiervoor handige technieken.
7. Repareren, opnieuw testen en afmelden
Beoordeel de feedback, corrigeer wat belangrijk is en laat dezelfde gebruikers de oplossingen bevestigen. Leg vervolgens een formeel besluit vast.
Een UAT-testcase
Een UAT-testcase moet voor iemand die niet technisch is, gemakkelijk te volgen zijn. Hier is een voorbeeld van een onkostensysteem:
ID: UAT-012
Scenario: Submit a foreign currency expense claim
User role: Sales employee
Before: Logged in, with a USD receipt ready
Steps:
1. Create a new expense claim
2. Enter a client dinner of 80 USD and attach the receipt
3. Submit the claim for approval
Expected: The amount is converted to INR at the current rate
The manager receives an approval request
The claim shows as "Awaiting approval"
Result: Pass / Fail
Comments:
Tester / Date:
Merk op dat het een echte taak beschrijft, geen technische details, en dat er ruimte is voor commentaar. Die opmerkingen blijken vaak het meest waardevolle onderdeel, zoals “dit werkt, maar ik zou die knop nooit vinden”.
Tip: Kijk hoe minstens één gebruiker dit persoonlijk of tijdens een gesprek doet. Mensen werken vaak om verwarrende software heen en melden dit nooit. Als je ze ziet aarzelen, vertel je meer dan een ‘Pass’ ooit zal doen.
In- en uitstapcriteria
| Toegangscriteria (klaar om te beginnen) | Exitcriteria (klaar om te voltooien) |
|---|---|
| Het testen van het systeem is voltooid | Alle kritieke scenario’s zijn uitgevoerd |
| Geen open kritische of hoge bugs | Geen openstaande kritische bugs |
| Omgeving en data zijn klaar | Het overeengekomen slagingspercentage is bereikt |
| Scenario’s worden beoordeeld | Voor de resterende kwesties is een overeengekomen plan vereist |
| Testers zijn geïnformeerd en beschikbaar | Bedrijfssponsor heeft zich afgemeld |
Deze passen in de bredere levenscyclus van softwaretests. Spreek vooraf de cijfers af met uw stakeholders. ‘We zullen beslissen wanneer het goed voelt’ leidt vaak tot een overhaast ja, gedreven door de deadline.
Feedback verwerken
UAT-feedback is een combinatie van dingen, en het is niet allemaal een bug. Sorteer het in categorieën:
| Typ | Voorbeeld | Gebruikelijke actie |
|---|---|---|
| Defect | Het totaal is verkeerd berekend | Oplossing, op basis van de ernst |
| Gemiste vereiste | Meerdere valuta’s worden niet ondersteund | Repareer vóór de lancering of plan opnieuw |
| Probleem met bruikbaarheid | Gebruikers kunnen de verzendknop niet vinden | Vaak de moeite waard om te repareren |
| Wijzigingsverzoek | “Kan het ook naar PDF exporteren?” | Voeg toe aan de achterstand |
| Opleidingsprobleem | De functie werkt, maar werd verkeerd begrepen | Gidsen bijwerken |
Gebruik duidelijke regels voor wat een release blokkeert, zoals beschreven in ernst versus prioriteit. En reageer op elk item, ook op de items die u afwijst. Mensen stoppen met het geven van feedback als het lijkt te verdwijnen. Onze gids over hoe je een bugrapport schrijft kan testers helpen problemen duidelijk te beschrijven.
UAT-checklist
Vóór UAT
- Omvang en acceptatiecriteria worden schriftelijk overeengekomen
- Systeem- en regressietesten zijn voltooid
- Testers worden gekozen, geïnformeerd en krijgen tijd
- Omgeving, rekeningen en realistische data zijn klaar
- Persoonlijke gegevens in kopieën zijn gemaskeerd
- Scenario’s worden door de business beoordeeld
- Er is één plek ingericht waar problemen kunnen worden vastgelegd
- De afgetekende eigenaar wordt genoemd
Tijdens UAT
- Er is een ondersteuningscontact beschikbaar
- Problemen worden elke dag getriggerd
- De voortgang wordt gedeeld met belanghebbenden
- Fixes worden gecontroleerd ingezet en opnieuw getest
Na UAT
- De exitcriteria zijn gecontroleerd
- Bekende problemen zijn gedocumenteerd, met eigenaren
- De formele aftekening wordt geregistreerd
- Trainings- en releaseopmerkingen zijn bijgewerkt
- Er is een korte terugblik gehouden
UAT in Agile-teams
Traditionele UAT komt aan het eind als één grote fase, waarin een verrassing duur is. Agile teams verkorten die lus. Producteigenaren beoordelen elk verhaal tijdens de sprint aan de hand van de acceptatiecriteria, en gebruikers zien werkende software bij sprintrecensies. Veel teams voeren nog steeds een gerichte UAT uit vóór een grote release, vooral wanneer verschillende functies in één workflow worden gecombineerd.
Met frequente releases zorgen technieken zoals feature flags en canary-implementaties ervoor dat echte gebruikers geleidelijk aan nieuw werk kunnen uitproberen. Merk op dat deze acceptatietests aanvullen, maar deze niet automatisch vervangen, vooral in gereguleerde sectoren die een formeel verslag nodig hebben.
Veel voorkomende fouten
- Het als een formaliteit behandelen. Een aftekening zonder echt nut beschermt niemand.
- Gebruik van de verkeerde testers. Ontwikkelaars en QA hebben te veel kennis van het systeem om gebruikers te vertegenwoordigen.
- Begin met een onstabiele build. Testers verliezen snel hun vertrouwen en interesse.
- We laten het tot het laatste moment. Er is dan geen tijd om te corrigeren wat je leert.
- Onrealistische gegevens gebruiken. Testgegevens bevatten zelden de rommelige gevallen die bij echt werk wel voorkomen.
- Laat de reikwijdte groeien. Behandel nieuwe ideeën als wijzigingsverzoeken, tenzij ze echte blokkers zijn.
Tot slot
UAT is je laatste kans om, vóór de release, te leren of de software de mensen die hem gaan gebruiken echt helpt. Plan het vanaf het begin van een project, rekruteer echte gebruikers en spreek af hoe succes eruit ziet. Probeer voor uw volgende release één eenvoudige verandering: ga met één gebruiker zitten tijdens een echt scenario en zeg niets terwijl deze werkt.
Veelgestelde vragen
Wat is gebruikersacceptatietesten in eenvoudige woorden?
Het is de laatste controle waarbij echte gebruikers de software uitproberen met realistische taken om te bevestigen dat deze aan hun behoeften voldoet, voordat deze wordt vrijgegeven.
Wie is verantwoordelijk voor UAT?
Zakelijke gebruikers of klanten voeren de tests uit. Meestal coördineert een producteigenaar of QA-lead, en doorgaans neemt een bedrijfssponsor de uiteindelijke aftekening.
Wat is het verschil tussen UAT en systeemtesten?
Systeemtesten controleren of de software werkt zoals gespecificeerd en worden uitgevoerd door testers. UAT controleert of het voldoet aan de zakelijke behoeften en wordt gedaan door gebruikers.
Wanneer vindt UAT plaats?
Meestal na systeemtests en vóór productierelease, zodra de software stabiel is. Agile teams kunnen in elke sprint ook kleinere acceptatiecontroles uitvoeren.
Kan UAT worden geautomatiseerd?
Delen ervan, zoals herhaalde controles van zakelijke workflows. Om te beoordelen of software nuttig en geschikt is voor het beoogde doel zijn echter nog steeds echte mensen nodig.
Blijf leren
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.
Meer handleidingen over testen, AI en moderne ontwikkeling
Genoten van dit artikel? Kies een onderwerp en ga direct naar onze nieuwste tutorials.
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 →DevOpsOmgevingsvariabelen 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 →SoftwareontwikkelingAPI-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 →TestautomatiseringSpotten 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 →SoftwaretestenCodedekking 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 & SQLDELETE 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 & SQLSQL-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 →SoftwareontwikkelingTypeScript-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 →SoftwareontwikkelingPython *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 →SoftwareontwikkelingPython 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 intelligentieWat 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 →DevOpsMonitoring 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 →DevOpsDocker-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 →TestautomatiseringTDD 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 →SoftwaretestenGebruikersacceptatietesten (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 & SQLSQL 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 & SQLSQL 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 →SoftwareontwikkelingWat 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 →SoftwareontwikkelingJavaScript-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 →SoftwareontwikkelingPython-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 intelligentieWat 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 →DevOpsImplementatie 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 →TestautomatiseringSchilferige 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 →SoftwaretestenBelastingtesten 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 →SoftwaretestenTestcase 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 & SQLOptimalisatie 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 & SQLSQL 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 →SoftwareontwikkelingJavaScript 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 →SoftwareontwikkelingPython-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 →SoftwareontwikkelingPython-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 intelligentieWat 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 →DevOpsLinux-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 →TestautomatiseringSelenium 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 →SoftwaretestenEquivalentiepartitionering: testontwerptechniek uitgelegd met uitgewerkte voorbeelden
Equivalentiepartitionering uitgelegd: hoe je geldige en ongeldige partities kunt vinden, uitgewerkte voorbeelden voor leeftijden, wachtwoorden en ko…
Lees artikel →SoftwaretestenErnst 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 & SQLTutorial 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 & SQLSQL-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 →SoftwareontwikkelingGit 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 →SoftwareontwikkelingPython 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 & SQLSQL 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 →