Hvordan man er en røvhul, når man tester bugs

At vide, hvad man skal teste, er undertiden forvirrende for ikke-tekniske produktledere, der fra tid til anden er tvunget til at bære haten Quality Assurance. Her er et par forskellige personas at tage på, når det er tid til at få dine hænder beskidte.

via Pexels

Denne artikel blev oprindeligt offentliggjort den 10. december 2019 på madewithlove-bloggen.

Ugh… jeg kan ikke tro det! Hvordan fandt han det? - nogle vrede ingeniører

Dette er mit mål, når jeg tester for fejl. Jeg vil finde de små kanttilfælde, som udviklere ikke har tænkt på. Jeg er produktchef i madewithlove og til tider tager jeg rollen som kvalitetssikring. Dette er især vigtigt, når du bygger et kunde-vendt API. Jeg tænker på at teste ud fra et par forskellige perspektiver for at nå mine mål.

Som min mor ...

Hvad ville min mor gøre? Selvom hun er fra den tavse generation, er hun temmelig jævnt teknisk kyndig. Hun bliver for det meste forvirret, når hun skal skifte mellem applikationer eller håndtere oprydningen. Jeg fandt for nylig ud af, at hendes telefon var langsom, fordi hun havde omkring 900 åbne Safari-faner. Dette skete fordi hun bruger Google Chrome til mobilsøgning, men når du åbner links fra Gmail på iPhone, starter Safari.

Jeg anvender dette til test ved ikke at rydde op efter mig selv. Hvad hvis der var 100 brugere på denne liste? Hvad hvis jeg i stedet for et korrekt formateret foto uploade en 20-megapixel-behemoth? Hvad sker der, hvis jeg kopierer og indsætter de forkerte data i et felt?

Det vigtigste er, at dokumentationen skal matche, hvad oplevelsen er. Mindre uoverensstemmelser her er meget forvirrende for nogle brugere. Er der for eksempel nævnt det rigtige AUTH-token-navn? Er parametrene korrekt defineret med et klart eksempel?

Som udvikler ...

Udvikling er baseret på at få tingene til at fungere inden for rammer inden for et vist sæt forudsætninger. Hvad hvis disse krav ikke længere er sandt? For disse typer logikfejl forsøger jeg at få applikationen til ugyldige tilstande. Hvad hvis mit efternavn har s̨̕p͡҉҉e͟͞cia̸͘͞l c̷̵h҉̴̨a̴̸͏r̵á̴͠ćt̴͢e̶ŗ̛́s? Hvad hvis min alder er før Unix-epoken? Hvad sker der, hvis jeg sletter et overordnet objekt fra systemet og derefter opretter et barn med samme navn? Her er et godt eksempel, der har at gøre med at acceptere forespørgselsparameter:

Forventet: / brugere? Name_filter = fre

Forsøgt: / brugere? Name_filter [] = fre

Udvikleren forventede næsten helt sikkert en streng i stedet for en matrix. Hvad sker der med appen?

Som en røvhul ...

Ud over at teste suksestilstander, er det vigtigt at prøve alle mulige ugyldige input, når du håndterer en API. Jeg sender Unicode, emojis, uudskårne strenge, enkelte citater, ordene "falske" og "null", heltal (positive og negative) og mere. I fremtiden håber jeg, at disse typer problemer er dækket af ejendomsbaseret test, men det er noget, vi endnu ikke har løst ved madwithlove. Det vigtigste er, at vi er i overensstemmelse med håndteringen af ​​input. Den store liste over frække strenge er nyttige her.

Afsendelse af emoji og misdannede anmodninger virker uhøfligt, men mit mål er at hjælpe slutbrugeren med at undgå inkonsekvente stater. Det er vigtigt at prøve disse ting for at få den bedst mulige oplevelse. Jeg føler mig lidt skyldig i at returnere en billet til mindre dokumentationsændringer eller problemer som dette. Jeg lover - jeg prøver ikke at være en røvhul.