Quali sono gli svantaggi dei test unitari?
Ho risposto a questo: Cos'è il test unitario del software e perché è importante? - Ora diamo un'occhiata al lato opposto.
"Quali sono gli svantaggi del test unitario?"
Per prima cosa parliamo di cucina.
Supponiamo che vogliate fare una frittata.
(Fonte immagine: IHOP)
Una colazione, niente di speciale. Hai bisogno di alcuni ingredienti però, come uova, latte, bacon, formaggio, pomodori, sale..
E qui ci sono alcune cose che [molto probabilmente] ispezioneresti, valuteresti, verificheresti e così via.
- Quante uova? Sono fresche?
- Quale tipo di latte? Quanto? È andato a male?
- La tua ciotola (per strapazzare) è pulita?
- La tua padella è abbastanza calda? Quando ci metti la pancetta?
- E così via..
Ogni volta che controlli, ispezioni, valuti, assaggi,... - stai testando. Stai facendo osservazioni e dando giudizi mentre sei nel processo di creazione del prodotto. Stai testando il tuo lavoro e i tuoi componenti. Stai facendo un white box testing in questo senso.
Ma nota che non stai testando il prodotto.
In teoria, uno potrebbe provare a cucinare senza prestare alcuna attenzione al processo e ai componenti, e assaggiare il prodotto finale - la frittata - dopo, al termine.
Ma ci sono implicazioni:
- Certamente ci vorrà più tempo fino ai risultati della valutazione;
- Sarà troppo tardi per prendere azioni correttive;
- Non sarete in grado di rispondere al cambiamento;
- Alcuni problemi (come il latte avariato o la ciotola sporca) non si manifesteranno immediatamente all'assaggio ma potrebbero avere serie conseguenze sulla salute.
Tutto ciò si traduce bene nello sviluppo del software. Vedi anche: Cos'è il test a scatola bianca?
Se volete essere efficaci ed efficienti allora il test a scatola bianca è necessario.
Ma se vi affidate solo al test unitario - siete in svantaggio. Anche un eccellente test unitario non può mitigare un test funzionale assente o scarso [scatola nera]. Quest'ultimo è un approccio out-of-the-box: Cos'è il black box testing?
Il black box testing può aiutare ad evitare i fallimenti sollevando domande come queste.
- Siamo cucinando l'ordine giusto? Forse il cliente voleva questo invece.
(Fonte immagine: IHOP)
- Siamo seguendo la ricetta giusta? Il test della scatola nera non solo verifica i requisiti ma aiuta a raffinarli identificando lacune e contraddizioni.
- Ci sono minacce al valore e al successo? Comprese quelle non esplicitamente dichiarate. Sai, alcune persone non mangiano il bacon, altre sono allergiche al latte.
- Ci sono minacce al processo? "Successo" in pratica significa non solo "soddisfare i requisiti" ma anche rispettare il budget e i tempi. Un buon testing aiuta ad identificare i problemi che rendono lo sviluppo più lungo o più costoso.
Ora, una domanda che chiunque potrebbe fare - perché non fare entrambe le cose durante il processo? E se le stesse persone fanno sia i test unitari che quelli funzionali, c'è davvero qualche differenza?
E questo è quello che sta succedendo ultimamente.
Convergenza di ruoli, evoluzione delle competenze
Vedi come specie diverse hanno un aspetto molto simile? - Si stavano evolvendo per adattarsi ad ambienti simili.
(Fonte immagine: Pinterest * Artis Natura Magistra *)
Approcci come Agile, DevOps, Lean, e altri mettono l'accento sulla qualità in tutto il processo. (Naturalmente, ci sono implementazioni scadenti e vere e proprie implementazioni sbagliate.)
Quando è fatto bene, i programmatori imparano a testare, e i tester imparano a trattare il codice. Gli stakeholder del business imparano ad essere coinvolti nel processo di ingegneria. L'intero team si assume la responsabilità della qualità in ogni fase del processo.
E mentre i ruoli di "puro-blackbox-QA-functional-testing" possono estinguersi come quegli Icthyosaurus, il testing - pensiero critico e problem solving - rimarrà e prospererà essendo un antenato comune di tutte le professioni di ingegneria.
Grazie per aver letto!
- Se ti è piaciuta questa risposta, per favore, vota e seguimi
- Se l'hai trovata utile condividila con altri
- Non sei d'accordo o non ti è piaciuta? Sparami un commento! Sono sicuro che c'è un margine di miglioramento.
Articoli simili
- Quali sono i casi di test per i test di integrazione di un'applicazione Gmail?
- Quali sono i vantaggi e gli svantaggi dei sistemi e dei software applicativi?
- Quali sono gli svantaggi dei piani dati del cellulare visibile di Verizon?
- Quali sono i vantaggi e gli svantaggi dell'uso dei punti rispetto ai pixel per il design delle app mobili?