Nota dell'editore: Benvenuto nella serie Leadership In Test del guru e consulente del testing software Paul Gerrard. La serie è pensata per aiutare i tester con qualche anno di esperienza—soprattutto quelli che lavorano in team agili—a eccellere nei ruoli di leader e manager del testing.
Questo articolo parte dall'inizio: di cosa si occupa il testing software? Imparerai i concetti base del testing software che incorniceranno il tuo modo di pensare mentre ti avvicini all’arte e alla scienza della qualità del software.
Iscriviti alla newsletter The QA Lead per ricevere una notifica quando saranno pubblicate le nuove parti della serie—e approfondisci con il corso Leadership In Test di Paul. Se lo fai, usa il nostro codice coupon esclusivo QALEADOFFER per ottenere $60 di sconto sul corso!
Quando sei un test manager in un progetto, è molto probabile che la gente dia per scontato che tu sia l’esperto in tutto ciò che riguarda il testing. Gli altri membri del team probabilmente avranno idee ben radicate o eccentriche sul testing; alcuni potrebbero avere (o almeno diranno di avere) più esperienza di te.
Le aspettative sul testing sono spesso irrealistiche e anche persone esperte assumono visioni superficiali rispetto a ciò che il testing può ottenere. Alcuni metteranno in dubbio la tua competenza, il valore che porti al team, o addirittura le tue motivazioni. Può essere difficile.
Nella tua carriera di gestione del testing, dovrai adattarti a circostanze nuove e in evoluzione. Incontrerai stakeholder aziendali e di progetto di alto livello. Ti unirai a team di varie dimensioni, composti da persone con background molto diversi. Potrebbero avere molta esperienza, oppure, in realtà, poca o quasi nulla.
Il tuo ruolo potrebbe variare dall’essere il tester a gestire un team numeroso oppure provvedere alla supervisione delle attività di testing in un progetto, essere incaricato di consigliare un team Agile, o capire come il testing si inserisce in un regime di continuous delivery.
Prima di iniziare a usare termini come testing, stakeholder e obiettivi degli stakeholder, è meglio essere abbastanza chiari su cosa stiamo parlando.
Definizione di “Test”
La parola test è usata sia come sostantivo sia come verbo. Riguarda il testing come attività e il risultato di questa attività. Ha a che fare con le persone o le organizzazioni che commissionano questa attività e coloro che utilizzano i risultati. E riguarda soprattutto le persone che si definiscono tester e i sistemi complessi su cui lavoriamo.
Se vogliamo parlare di testing neutro rispetto al contesto, avremo bisogno di una definizione di test che sia anch'essa neutra, così sono andato a cercare la definizione di test sul sito dictionary.com. Tra le molte pagine di riferimenti alla parola test e alle sue applicazioni in molti ambiti, la definizione tratta dall'American Heritage Dictionary è la più adatta:
Test: (sostantivo) una procedura di valutazione critica; un mezzo per determinare la presenza, la qualità o la veridicità di qualcosa; una prova
Non esiste una sola definizione; piuttosto, ci sono tre varianti. Bene, penso che non sia poi così male, dato che tutte e tre insieme ci forniscono le basi di cui abbiamo bisogno. Diamo un'occhiata più da vicino a ciascuna.
Una procedura di valutazione critica
La valutazione critica implica un giudizio abile riguardo alla veridicità o al valore intrinseco di qualcosa. Un test è una procedura, di solito composta da una serie di passaggi che includono una qualche forma di preparazione, esecuzione, raccolta dei risultati, analisi e interpretazione. Questa non è una descrizione definitiva di una procedura di test. Potrebbero esserci più passaggi e si potrebbero suddividere ulteriormente questi passaggi principali.
La procedura non richiede necessariamente documentazione preparata, ma alcuni test sono documentati in questo modo (e i test automatizzati sono sempre in qualche modo scritti secondo uno script). La cosa importante è che al centro di un test ci sia un processo di riflessione perspicace.
Questo processo di ragionamento è guidato dalla necessità di valutare il sistema sotto test rispetto alla sua adeguatezza, coerenza, comportamento, accuratezza, affidabilità o qualsiasi altro aspetto o proprietà rilevante.
Un mezzo per determinare la presenza, la qualità o la veridicità di qualcosa
Un test può determinare facilmente la presenza (o assenza) di qualcosa, ma la qualità è un'altra questione: il termine è carico di connotazioni emotive, ma ci viene in aiuto lo stesso dizionario. La qualità può essere, “una caratteristica, proprietà o attributo essenziale o distintivo”. Ora possiamo vedere che un test può rivelare queste proprietà.
Nota che non sto usando il termine qualità per riflettere la relazione tra utente o stakeholder e prodotto. La qualità è come la bellezza – sta negli occhi di chi guarda. Non lasciarti trascinare in discussioni su come si misura la qualità (con il testing). Tendo a evitare completamente la parola che inizia per Q.
Nota che non sto usando il termine qualità per riflettere la relazione tra utente o stakeholder e prodotto. La qualità è come la bellezza – sta negli occhi di chi guarda. Non lasciarti trascinare in discussioni su come si misura la qualità (con il testing). Tendo a evitare completamente la parola che inizia per Q.
Un test può determinare la verità di qualcosa? Beh, anche questo ha senso. Tipicamente, abbiamo bisogno di verificare un'affermazione come “questo sistema soddisfa un certo requisito” o “questo sistema si comporta in un certo modo” o “questo sistema è accettabile” e così via. C'è una certa dose di giudizio soggettivo coinvolto, ma possiamo vedere che un test o una serie di test potrebbero fornire prove affinché qualcuno possa esercitare quel giudizio e prendere una decisione.
Un processo di valutazione
Il concetto di prova implica che il processo di test di un sistema ci aiuterà a valutare quel sistema rispetto alle sue qualità. Lo scopo di tale valutazione è normalmente quello di prendere una decisione.
La decisione potrebbe essere quella di accettare o rifiutare il sistema, ma potrebbe anche essere quella di evidenziarne le carenze in modo che possano essere corrette in qualche modo. Un test potrebbe anche influenzare una persona o un’organizzazione a cambiare direzione – a ripensare un progetto; ad allentare o modificare un requisito; a scartare un componente e ricominciare da capo; ad acquistare invece di costruire o costruire invece di acquistare.
Un modo naturale di guardare a un sistema sotto test è considerarlo come se fosse sotto processo e che verrà giudicato in qualche modo.
Definizione di Testing
Dalla nostra definizione del nome "test", possiamo facilmente derivare il verbo.
Testare: (verbo) valutare criticamente; determinare la presenza, la qualità o la verità di qualcosa; condurre una prova.
Fin qui tutto bene.
Ma non poi così bene, in realtà. Sfortunatamente, la professione del testing è afflitta da problemi terminologici. Non possiamo presentare qui un glossario definitivo. Nei tuoi progetti, per evitare malintesi, ti suggerisco di chiedere quale sia l'obiettivo di ogni tipo di test definito anziché affidarti a una definizione presunta.
Tipi Comuni di Test Di Cui Sentirai Parlare
Fare un tutorial su ognuno di questi tipi di test del software va oltre lo scopo di questo articolo, ma come tester sentirai spesso parlare di questi (alcuni dei quali probabilmente ti sarai già documentato):
- Test Black Box
- Test di regressione
- Test di unità
- Beta testing
- Test manuali
- Test automatici o test di automazione
- Test End-to-End
- Test di stress
- Test di sicurezza
- Test di performance
- Test White Box
- Test di accettazione
- Test di integrazione
- Test di carico
- Test di sistema
- Test non funzionali
Indipendentemente dal tipo di test di cui si parla, il mio consiglio è di chiedere sempre quale sia l’obiettivo del test, anche se sembra portare un nome comunemente accettato come unit test o acceptance testing. L'interpretazione di cosa significhino questi termini può differire da team a team.
Iscriviti alla newsletter di The QA Lead per ricevere una notifica quando verranno pubblicate nuove parti della serie—e approfondisci il tema con il corso di Paul Leadership In Test. Se lo fai, usa il nostro codice coupon esclusivo QALEADOFFER per ottenere $60 di sconto sul corso!
Lettura correlata: 7 STRUMENTI BASE DI QUALITY ENGINEERING E PERCHÉ TI SERVONO
