Winst:
- Vermogen om een vereiste en acceptatiecriteria om te zetten in uitgebreide testgevallen met technieken zoals gelijkwaardigheidsklassen, grenswaardeanalyse en beslissingstabellen, met ondersteuning van kunstmatige intelligentie
- Mogelijkheid om positieve, negatieve en edge-scenario's afzonderlijk te produceren en de door kunstmatige intelligentie gemiste edge-cases aan te vullen met productinformatie
- Mogelijkheid om traceerbaarheid tot stand te brengen en hiaten in de dekking en onnodige opgeblazenheid te elimineren door testgevallen te koppelen aan acceptatiecriteria
Het werk van de tester begint vaak met een schone lei: hij heeft een vereiste ("de gebruiker moet zijn wachtwoord opnieuw kunnen instellen") en hij moet deze ene zin omzetten in tientallen concrete controles die moeten bewijzen dat de software daadwerkelijk correct werkt. Deze transformatie wordt testontwerp genoemd. Het kennen van het verschil tussen een testscenario – een doelstelling op hoog niveau die beschrijft wat er moet worden getest, zoals ‘ongeldig wachtwoord moet worden afgewezen’ – en een testcase – een uitvoerbare eenheid die dat scenario gedetailleerd beschrijft met concrete stappen, invoer en verwachte uitkomst, is van cruciaal belang. Kunstmatige intelligentie (AI) versnelt precies dit lege pagina-moment: binnen enkele seconden één vereiste omzetten in tientallen conceptscenario's. Maar onthoud: AI repliceert welke situaties je maar kunt bedenken; Jij kiest met jouw productkennis welke situaties echt belangrijk zijn.
In dit onderdeel leert u stap voor stap hoe u een vereiste kunt omzetten in een uitgebreide maar overzichtelijke testsuite met AI-ondersteuning.
Stap voor stap: van eis tot proefset
Stap 1 — Verduidelijk de vereiste. Verzamel acceptatiecriteria (voorwaarden waaraan een taak moet voldoen om als ‘klaar’ te worden beschouwd) voordat je de AI de ruwe vereiste geeft. "Wachtwoord moet opnieuw ingesteld kunnen worden" is niet voldoende; Regels als "resetlink is 30 minuten geldig", "hetzelfde wachtwoord kan niet opnieuw worden gebruikt" vormen de bron van de echte test.
Stap 2 — Implementeer testtechnieken. Zeg niet alleen maar ‘schrijf een script’ over AI; Vraag naar klassieke testontwerptechnieken op naam:
- Equivalentieklassen (equivalentiepartitionering): het verdelen van invoer in groepen waarvan wordt verwacht dat ze hetzelfde gedrag produceren. Voor het leeftijdsveld zijn 'geldig bereik', 'te klein' en 'te groot' bijvoorbeeld klassen; Het is voldoende om één voorbeeld uit elke klasse te testen.
- Grenswaardeanalyse: Het testen van drempelwaarden op basis van het feit dat fouten het meest optreden bij de grenzen. Het is alsof je 17, 18, 19 afzonderlijk test voor de leeftijdsgrens van 18 jaar.
- Beslissingstabel: Tabel met combinaties van meerdere aandoeningen en de verwachte uitkomst van elke combinatie.
- Statusovergang: het testen van de systeemovergangen van staat naar staat (bijvoorbeeld volgorde: aangemaakt → betaald → verzonden) en ongeldige overgangen.
Stap 3 — Scheid positieve, negatieve en randtoestanden. Vraag om een positieve test (verwacht resultaat met correcte invoer), een negatieve test (juiste fout met ongeldige invoer) en een randgeval – grensgevallen of ongebruikelijke gevallen. AI benadrukt over het algemeen het positieve; Negatieve en randgevallen zijn onvolledig tenzij u hier uitdrukkelijk om vraagt.
Stap 4 — Prioriteer en snoei. AI kan 60 scenario’s genereren; Ze zijn niet allemaal even waardevol. Geef prioriteit aan degenen met een hoog risico (geld, veiligheid, gegevensverlies) en combineer de duplicaten.
Tip: Stuur een apart verzoek naar de AI met de mededeling "genereer 5 ondenkbare randgevallen op basis van deze vereiste". De meest waardevolle bijdrage van AI is dat het je vaak herinnert aan bijzondere situaties die je over het hoofd hebt gezien.
Zwakke prompt/sterke prompt
Zwak: "Schrijf testcases voor het opnieuw instellen van het wachtwoord."
Strong: "Genereer testcases voor de functie 'wachtwoord opnieuw instellen' met de volgende acceptatiecriteria: link 30 minuten geldig, eenmalig gebruik, laatste 3 wachtwoorden kunnen niet opnieuw worden gebruikt, account voor 15 minuten vergrendeld na 5 onjuiste pogingen. Pas gelijkwaardigheidsklassen en grenswaardeanalyse toe. Geef positieve, negatieve en randgevallen in aparte kopjes. Voor elk geval: ID, vereiste, stappen, testgegevens, verwacht resultaat, bijbehorende acceptatiecriteria. Benadruk beveiligings-/vergrendelingsscenario's, neem het."
Krachtige prompt; Het geeft regels, technieken, uitvoerformaat en prioriteitsvolgorde. AI produceert dus uitvoerbare en traceerbare testgevallen, en geen decoratieve.
Uitvoerformaat van testcase
Vraag om een gestructureerd formaat dat rechtstreeks in de testmanagementtool van uw team kan worden geïmporteerd (bijvoorbeeld TestRail, Zephyr, Xray). De volgende tabel toont de componenten van een goede testcase:
gebied
Beschrijving
voorbeeld
Identiteitskaart
unieke identificatie
TC-PWD-014
Titel
kort doel
Verlopen koppelingen worden afgewezen
voorwaarde
Conditie vereist vóór testen
De resetlink is 31 minuten geleden gegenereerd
stappen
Opeenvolgende acties
1. Klik op de link 2. Voer een nieuw wachtwoord in
gegevens testen
Gebruikte concrete waarden
oude link, nieuw wachtwoord "Abc!2345"
verwacht resultaat
Gedrag moet worden geverifieerd
Fout 'Link verlopen', wachtwoord verandert niet
Acceptatiecriteria
traceerbaarheidslink
AK-3: link geldig gedurende 30 minuten
prioriteit
Risiconiveau
hoog
Vier kopieerbare sjablonen
1) Technisch gebaseerde scenarioproductie:
Jouw rol: senior testontwerper. Genereer testcases voor feature: [feature en acceptatiecriteria]. Toepassen: gelijkwaardigheidsklassen, breekpuntanalyse, beslissingstabel. Geef output in 3 groepen: Positief / Negatief / Edge case. Elke case: ID, preconditie, stappen, testgegevens, verwacht resultaat, bijbehorende acceptatiecriteria, prioriteit (Hoog/Medium/Laag).
2) Edge-casejager:
Noem 10 randgevallen die normaal gesproken over het hoofd worden gezien voor de volgende feature: [feature]. Schrijf in één zin op waarom het voor elk risicovol is. Denk aan assen als leeg/null, invoer te lang, gelijktijdigheid, time-out, formaatfouten, Unicode/emoji, negatief/nul, netwerkstoring.
3) Productie van beslissingstafels:
Maak een beslissingstabel voor de volgende bedrijfsregel: [regels]. Kolommen: voorwaardecombinaties; rijen: elke voorwaarde en verwachte actie. Markeer onhaalbare of conflicterende combinaties. Stel vervolgens voor elke combinatie een testcase voor.
4) Traceerbaarheidscontrole:
Gegeven de volgende lijst met acceptatiecriteria en de volgende testgevallen: [criteria] / [gevallen]. Laat in tabelvorm zien aan welke acceptatiecriteria GEEN testgevallen voldoen (dekkingsgat) en aan welke gevallen niet wordt voldaan door enig criterium (overbodig geval).
drie minikoffers
Geval 1 — Waarde van randtoestanden. Een expert van een fintech-team had 18 scripts geschreven voor de functie voor geldoverdracht. Hij paste het ‘edge case hunter’-sjabloon toe op AI; AI herinnerde aan de situatie van "het tegelijkertijd overbrengen van hetzelfde saldo van twee apparaten" (gelijktijdigheid). Toen dit scenario werd getest, werd een kwetsbaarheid voor dubbele uitgaven gevonden en gesloten voordat het live ging. Eén enkele marginale situatie voorkwam een potentieel verlies van zes cijfers.
Geval 2 — Het trimmen van de uitstulping. Een team liet de AI een script maken voor het lidmaatschapsformulier en er kwamen 74 cases binnen. Bij het uitvoeren van het traceerbaarheidssjabloon bleek dat 74 gevallen aan slechts 9 acceptatiecriteria voldeden, waarbij veel gevallen opnieuw dezelfde gelijkwaardigheidsklasse testten. De set werd teruggebracht van 74 naar 23 significante gevallen; de looptijd daalde met 68%, de dekking nam niet af.
Geval 3 — Verkeerde veronderstelling. De AI stelde voor om ongeldige datums zoals ‘31 februari’ te testen voor een datumveld, maar wist niet dat de kalendercomponent die het team gebruikte dit al blokkeerde. De expert elimineerde 4 van de 6 door de AI geproduceerde datumscenario’s als onnodig in de context van het product. AI gegenereerde mogelijkheden; een productinformatieselectie gemaakt.
Veel voorkomende fouten
- Een script aanvragen zonder acceptatiecriteria op te geven. Zonder te weten wat waar is, produceert AI oppervlakkige scenario’s die vaak voorbijgaan aan het echte risico.
- Gewoon genoegen nemen met positieve tests. Het expliciet niet willen van negatieve en randgevallen. Hier liggen vaak fouten.
- Accepteren wat geproduceerd wordt zoals het is. Vergeten dat de AI de productcontext niet kent en onnodige of onmogelijke scenario’s op de set achterlaten.
- Traceerbaarheid omzeilen. Het niet koppelen van cases aan acceptatiecriteria; Hierdoor wordt niet gezien welk criterium niet wordt getoetst (dekkingsgat).
- Kwantiteitsmisvatting. Blij zijn omdat "60 scripts zijn uitgebracht". De waarde zit niet in het aantal, maar in de omvang die het risico afdekt.
Samengevat
Testontwerp gaat over het vertalen van een eis van één zin in concrete, uitvoerbare cases die de juistheid van de software bewijzen. AI versnelt deze transformatie enorm: het levert uitgebreide blauwdrukken op als je het acceptatiecriteria, klassieke testtechnieken (equivalentieklassen, breekpunt, beslissingstabel, statusovergang) en een duidelijk uitvoerformaat geeft. Maar AI is gericht op het positieve, kent de productcontext niet en kan onnodige opgeblazenheid veroorzaken. Het is jouw taak om expliciet om negatieve en randgevallen te verzoeken, de traceerbaarheid vast te stellen, prioriteiten te stellen op basis van risico's en te snoeien.
Applicatie taak
Kies een feature uit uw eigen project en noteer de acceptatiecriteria. Laat de AI testcases genereren met de template ‘techniekgebaseerde scenariogeneratie’. Pas dan de sjablonen ‘edge case hunter’ en ‘traceability check’ toe. Als resultaat: (1) voeg minimaal 3 randgevallen toe die de AI overslaat, (2) snoei gevallen die niet aansluiten bij acceptatiecriteria, (3) schrijf nieuwe gevallen als er acceptatiecriteria zijn die niet zijn getest. Giet de laatste set in een spreadsheet.
controlelijst
- [ ] Voordat ik een script aanvraagde, heb ik de acceptatiecriteria verduidelijkt.
- [ ] Ik vroeg YZ om equivalentieklassen en grenswaardeanalyse op naam.
- [ ] Ik heb afzonderlijk positieve, negatieve en randtoestanden gegenereerd.
- [ ] Elke testcase heb ik gekoppeld aan een acceptatiecriterium (traceerbaarheid).
- [ ] Ik heb de scope gap en onnodige gevallen gecontroleerd met de tabel.
- [ ] Ik heb prioriteit gegeven aan risico en de gezwollen set gesnoeid.