I tester dovrebbero automatizzare il loro lavoro?


9

Stiamo cercando di impostare il nostro processo di test. Ci chiediamo se i nostri tester dovrebbero sviluppare test di regressione automatizzati o se gli sviluppatori dovrebbero farlo.

E gli altri tipi di test automatizzati? I tester dovrebbero svilupparli?


Basta iniziare a chiamarli "sviluppatori in test" e l'ambiguità viene risolta.
Edward Strange,

@Crazy Ma non è più costoso avere 2 team di sviluppatori?
Jader Dias,

5
Più costoso di cosa? Vendere un prodotto scarsamente testato? Collo di bottiglia del processo di sviluppo perché gli sviluppatori stanno scrivendo test anziché prodotto?
Edward Strange,

Risposte:


12

Dico che i tester dovrebbero sviluppare i test automatizzati - hanno l'approccio "al di fuori degli occhi" al codice e individueranno (o dovrebbe essere solo "può"?) Individuare i bug a cui non hai pensato, figuriamoci gestire .

Inoltre, la loro comprensione dei requisiti funzionali potrebbe essere di livello superiore rispetto a quella degli sviluppatori, quindi si colloca tra le conoscenze di basso livello del programmatore, ma non altrettanto elevate di quelle del BA.


Ma non potevano semplicemente chiedere agli sviluppatori di scrivere quel test case?
Jader Dias,

1
Per i motivi che ho detto sopra, gli sviluppatori avrebbero saputo molto di più sull'implementazione interna e avrebbero approcciato il software in modo diverso da quello proveniente dall'esterno.
James Love,

Non riesco a vedere in che modo l'implementazione di un test case potrebbe differire da persona a persona.
Jader Dias,

5
@Jader, vuoi che persone diverse scrivano i test automatizzati rispetto al codice originale. Altrimenti i test saranno distorti per funzionare con il codice così come è stato scritto.
Marcie,

3
Nelle ultime due settimane, ho avuto uno sviluppatore che mi ha aiutato a scrivere dispositivi per il suo codice. È un ottimo sviluppatore, ma sicuramente perde alcune sfumature di copertura per il suo codice solo perché non pensa alla copertura in modo approfondito su base regolare. Se gli sviluppatori aiutano con i test, chiedi a un tester di rivedere il loro lavoro.
Ethel Evans,

11

Se puoi automatizzarlo, automatizzalo.

Lascia i tester liberi di trovare le cose che non puoi automatizzare. E quando trovano un nuovo bug, se può essere automatizzato e aggiunto ai test automatici, aggiungilo.


Ma perché dovrebbero e non solo gli sviluppatori?
Jader Dias,

@JaderDias, come è stato detto, i tester non dovrebbero avere preconcetti sul codice che stanno tentando di testare
CaffGeek,

3

A mio avviso, sviluppatori e tester sono responsabili di diversi tipi di test.

Lo sviluppatore, mentre scrive la logica, dovrebbe anche scrivere test unitari e di integrazione. Ciò consentirà allo sviluppatore di assicurarsi che ciò che ha scritto finora funzioni come previsto. Inoltre, questi test saranno ancora disponibili affinché lo sviluppatore possa eseguire le modifiche future. Una volta completata la logica, lo sviluppatore può essere certo che ciò che è scritto funziona nel momento in cui comprende le specifiche e può passare al tester.

Il tester da questo punto dovrebbe essere responsabile della scrittura di test a livello di sistema che assicurino che la logica aziendale funzioni come previsto.

Dato che gli sviluppatori sono spesso troppo attaccati al codice, i tester dovrebbero essere in grado di aiutare a ripulire i test degli sviluppatori, ma non viceversa.


Curioso della tua ultima frase: non pensi che gli sviluppatori possano contribuire ai test funzionali? Cosa succede se i tester descrivono la struttura del test e identificano i casi di test e gli sviluppatori aiutano solo l'implementazione?
Miss Cellanie,

1
Penso che sto immaginando tester che sono sviluppatori a pieno titolo e in grado di scrivere i propri test. Il loro compito sarebbe quello di esaminare i requisiti e parlare con l'utente per identificare i casi di test, quindi scrivere i casi. Questo lascia gli sviluppatori di logica liberi di essere vicini alla logica mentre la scrivono. Inoltre lascia i tester abbastanza lontani dal "possedere" la logica che possono provare a romperla con obiettività e senza rimorso.
Taylor Price,

2

Nella mia esperienza, il modo in cui un tester configura ed esegue automaticamente un caso di test differisce in realtà dal modo in cui lo sviluppatore lo fa. I tester penseranno di più su come ottenere il maggior numero di informazioni dal test case, su come eseguire i test rapidamente, su come mantenere i test mantenibili e così via. Soprattutto, i tester vedranno sfumature di copertura dei test che gli sviluppatori mancheranno.

Se le risorse di sviluppo del test sono scarse, gli sviluppatori possono dare una mano, ma un tester dovrebbe rivedere attentamente il loro lavoro. Gli sviluppatori dovrebbero lavorare su dispositivi e strumenti di test prima di scrivere casi di test reali e gli sviluppatori non dovrebbero mai scrivere casi di test per il proprio codice. Avere sviluppatori che possono aiutare con i test ha dei vantaggi: espone gli sviluppatori ad altri pezzi del prodotto e i test possono aiutarli a diventare sviluppatori migliori. Tuttavia, proprio come il lavoro di uno sviluppatore junior non passerebbe mai senza una revisione del codice, il lavoro di controllo qualità di uno sviluppatore dovrebbe ottenere una revisione del QA da qualcuno con più esperienza di test.

Modificato per aggiungere: sono un SDET con 5 anni di esperienza. Lavoro con grandi sviluppatori con oltre 10 anni di esperienza ciascuno e ultimamente ho lavorato con loro per superare un collo di bottiglia nei test.


0

Una cosa che vorrei davvero poter vedere sono i solidi strumenti di automazione per i tester che consentiranno loro di registrare in modo efficace i loro progressi attraverso uno script di test e quindi consentire che lo script venga eseguito automaticamente in futuro. Soprattutto se ciò facilita anche l'esecuzione dello stesso script su diverse versioni del sistema operativo senza che il tester debba esaminarle tutte manualmente.

Sfortunatamente, certamente per il prodotto su cui lavoro, nessuno degli strumenti sul mercato fa proprio il lavoro. Ma vale la pena tenerlo a mente e guardare a ciò che è disponibile sul mercato nel caso in cui ci sia qualcosa che potrebbe funzionare per quello che stai facendo.


Visual Studio 2010 (Premium o Ultimate, non ricordo quale) ha qualcosa che registra le azioni dello schermo per automatizzare il test dell'interfaccia utente. Ho visto una demo di questo da Andrew Woodward MVP mentre facevo uno spettacolo di UI Testing SharePoint, incredibilmente roba.
James Love,

Registra e riproduci giustamente ha una reputazione abbastanza scarsa. Tende ad essere piuttosto fragile e difficile da mantenere. Sì, in quanto veloce e sporco "Devo eseguirlo su 4 data center diversi, non voglio conservarlo per un uso futuro", va bene, ma è orribile da mantenere perché si finisce con tonnellate di ripetizioni. Un piccolo elemento cambia e all'improvviso devi aggiornare 100 test. Doloroso. Inoltre, non sostituisce in alcun modo il test manuale, che tende a essere progettato supponendo che un essere umano noterà tutte quelle altre cose che non hai verificato esplicitamente.
testerab,

Ciò che sarebbe piuttosto dolce sarebbe qualcosa che potrebbe portare le cose a un livello leggermente inferiore rispetto allo spostamento del puntatore e al clic del mouse, in modo da registrare effettivamente quale pulsante è stato cliccato anziché dove si è verificato il clic. Ciò renderebbe questo tipo di test più resiliente e pratico. Quando è necessario eseguire tutti gli script su, ad esempio, nove diverse versioni di Windows, è un incubo doverlo fare manualmente su tutti.
glenatron,

L'identificazione del pulsante per ID anziché per posizione è perfettamente possibile con alcuni strumenti. Registrare e riprodurre script fatti in questo modo è ANCORA orribile da mantenere, purtroppo - non risolve il problema della ripetizione. Non credo che ci sia alcun modo di scappare dalla necessità di progettare attentamente l'automazione del test, se in realtà si desidera conservare degli script o crearne più di una dozzina. Hai mai pensato di utilizzare qualcosa basato su parole chiave come Robot Framework insieme a Auto-It?
testerab,

0

Una distinzione fondamentale che è davvero importante qui è questa: i tuoi tester stanno semplicemente controllando o stanno testando ?

Questo post sul blog di Michael Bolton lo spiega meglio, ma in sostanza: stanno solo cercando di confermare il comportamento o stanno cercando di trovare problemi con il sistema?

Penso che sia utile considerare anche i quadranti dei test Agile (Brian Marick li descrisse originariamente, ma li ho trovati nel libro "Agile Testing" di Lisa Crispin e Janet Gregory: anche se non stai seguendo una metodologia di sviluppo Agile, penso che il la distinzione tra test che criticano il prodotto e test che supportano il team, è davvero utile quando si considera l'automazione e si cerca di sviluppare un piano per chi fa cosa e perché.

Ad esempio, i controlli di unità scritti dagli sviluppatori fungono da rilevatori di modifiche, consentendo di rilevare le regressioni in anticipo quando vengono rieseguite regolarmente: si tratta di test che supportano il team. Controlli di regressione a livello di sistema che sono automatizzati in modo da poter essere rieseguiti regolarmente e rapidamente supportano anche il team rilevando precocemente le regressioni e completando i test unitari effettuati dagli sviluppatori. Ciò consente di risparmiare tempo per i tester per eseguire test che criticano il prodotto, ad esempio test esplorativi. O eventualmente applicare alcuni dei controlli automatici per lo stress test del prodotto.

L'altra cosa che mi piace molto della presentazione di Lisa Crispin che ho collegato è che sottolinea che l'automazione può anche essere usata per supportare i test manuali - creando dati di test, automazione usata per ottenere uno scenario al punto su cui vuoi concentrarti oggi, per esempio.

Considerando che questi due articoli, si spera, ti aiuteranno ad analizzare quale tipo di test vuoi fare, a rendere più facile individuare quale potrebbe essere adatto per l'automazione e capire quali bit di automazione sono più adatti per essere eseguiti dai tester e quali dagli sviluppatori.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.