È positivo che i tester siano in competizione per vedere chi apre più bug?


54

Sono uno sviluppatore di software. C'è un team di tester che segue ed esegue casi di test scritti dall'analista, ma esegue anche test esplorativi. Sembra che i tester abbiano gareggiato per vedere chi apre più bug e ho notato che la qualità delle segnalazioni di bug è diminuita. Invece di testare la funzionalità e segnalare bug relativi al funzionamento del software, i tester hanno inviato bug su miglioramenti dello schermo, usabilità o stupidi bug.

È buono per il progetto? In caso contrario, come posso (come sviluppatore di software), provare a cambiare il pensiero e le attitudini del team di tester?

Un altro problema è dovuto al fatto che la scadenza è stimata e non può cambiare, quindi man mano che la scadenza si avvicina, i tester si affretteranno a completare i loro casi di test e questo causerà una diminuzione della qualità dei test. Ciò causerà bug legittimi nel prodotto finale ricevuto dal cliente.

OBS: questa competizione non è una pratica dell'azienda! È una competizione tra solo i tester organizzati da loro, e senza premi.


3
I tester sono coinvolti prima di una build? Significa che sono coinvolti nello sviluppo dei requisiti o nei casi d'uso o nelle storie degli utenti, nella revisione della documentazione di progettazione o nella partecipazione alle revisioni del codice? I rapporti sui file dei tester sono corretti e ci sono controlli in atto per assicurarsi che i rapporti siano validi e completi? Se potessi modificare la tua domanda per approfondire i ruoli / le responsabilità dei tester e come sono gestiti i loro rapporti, ciò mi aiuterebbe a scrivere una buona risposta.
Thomas Owens

35
La concorrenza non è necessariamente negativa, ma combinata con incentivi può avere effetti negativi. Questa domanda mi ricorda una storia di The Daily WTF in cui i tester si sono scontrati con gli sviluppatori per creare bug aggiuntivi che potevano poi essere trovati eroicamente . Lettura divertente. Non ripetere quell'errore.
amon,

6
Il tuo punto è ben accolto, ma a parte, apprezzo quando qualcuno mi dice che il mio lavoro ha problemi di usabilità. Questa è una delle cose più difficili da ottenere nel software e anche una delle più preziose da avere.
jpmc26,

9
Essendo venuto da un progetto lungo più di un anno con un meticoloso QA, posso dire che, mentre i difetti di avere troppo spazio bianco tra elementi o simboli di colore diverso che significano che la stessa cosa potrebbe sembrare improduttiva, alla fine migliorano l'esperienza dell'utente, spesso migliorando la produttività, riducendo il carico sul supporto tecnico e dando un aspetto più professionale a un'applicazione, tutti i tratti desiderabili. E, sì, a volte il software verrà ritardato a causa di ciò, ma il prezzo da pagare di solito ne vale la pena.
phyrfox,

9
Numerose risposte suggeriscono che il compito dei tester è quello di trovare bug; questa mentalità è ciò che produce il problema che hai identificato. Il compito dell'assicurazione della qualità è determinare con precisione se il prodotto soddisfa o meno una barra di qualità dichiarata . Non mi interessa se un tester sta producendo segnalazioni di bug; Mi interessa se un tester sta producendo un'analisi accurata e focalizzata sul cliente della qualità del prodotto. Questa è la cosa che dovrebbe essere incentivata.
Eric Lippert,

Risposte:


87

Non credo sia positivo che facciano una gara per trovare il maggior numero di bug. Mentre è vero che il loro compito è trovare i bug, il loro lavoro non è "trovare il maggior numero di bug". Il loro obiettivo non è quello di trovare di più, il loro obiettivo è quello di contribuire a migliorare la qualità del software. Premiarli per aver trovato più bug equivale a premiare un programmatore per aver scritto la maggior parte delle righe di codice, piuttosto che il codice di massima qualità.

Trasformarlo in un gioco dà loro un incentivo a concentrarsi sulla ricerca di molti bug superficiali, piuttosto che sulla ricerca dei bug più critici. Come accennato nella tua modifica, questo è esattamente ciò che sta accadendo nella tua organizzazione.

Si potrebbe sostenere che qualsiasi bug che trovano è un gioco equo e che tutti i bug devono essere scoperti. Tuttavia, dato che il tuo team probabilmente ha risorse limitate, preferiresti che un tester si concentri diverse ore o giorni a sondare a fondo il tuo sistema cercando di trovare bug davvero grandi, o passi diverse ore o giorni a saltare l'app cercando errori tipografici e piccoli errori nell'allineamento degli oggetti su una pagina?

Se la società vuole davvero farne un gioco, dai agli sviluppatori il potere di aggiungere punti a un bug. Gli "stupidi bug" ottengono punti negativi, difficili da trovare bug con segnalazioni ben scritte ottengono più punti. Questo sposta quindi l'incentivo da "trova di più" a "essere il migliore nel fare il tuo lavoro". Tuttavia , anche questo non è raccomandato, perché un programmatore e un analista di QA potrebbero collaborare per sommare artificialmente il loro numero.

Bottom line: non creare un gioco per trovare bug. Trova modi nella tua organizzazione per premiare il buon lavoro e lasciarlo a quello. La gamification premia le persone per aver raggiunto un obiettivo. Non vuoi che un analista di QA abbia l'obiettivo di "trovare il maggior numero di bug", vuoi che il suo obiettivo sia "migliorare la qualità del software". Questi due obiettivi non sono gli stessi.


5
La prima cosa che pensavo fosse simile: se vogliono trasformarlo in un gioco, sarebbe meglio se un responsabile del QA (se ce n'è uno) stabilisse punti sui bug trovati, supponendo che si possa fidare che la persona abbia il miglior interesse di la società in mente. A questo proposito, può controllare meglio la competizione e, sia che lo consideri accettabile o meno, può persino arbitrariamente avvicinare un po 'la competizione assegnando punti leggermente più alti o più bassi per il gusto della competizione. ( altrimenti se una persona va avanti a causa dei test di ciò che ha scritto il nuovo sviluppatore, tutti gli altri rinunciano )
DoubleDouble

2
Anche così, non consiglierei questa idea perché diventa rapidamente noiosa a meno che i membri del tuo team non siano quasi tutti identici (il che non accade). È meglio competere contro te stesso.
DoubleDouble,

1
Votato per l'idea che misurare la produttività del QA in base al numero di bug trovati equivale a misurare la produttività del programmatore mediante righe di codice scritte (o punti della trama chiusi). Entrambi sono ridicoli ma entrambi persistono nelle menti dei PHB che non riescono a vedere un modo più sottile di quantificare le prestazioni.
dodgethesteamroller,

La tua risposta è la stessa cosa che ho pensato. Ma il punto @DoubleDouble sul livello identico dei tester è un buon punto di pensare!
Solo una curiosa mente,

2
Concordato. Anche se il mio precedente lavoro di QA non aveva quote rigide e veloci, c'erano un paio di tester che pensavano che fosse molto importante infastidire ogni piccolo pignolo che riuscivano a trovare - cose come "la maglietta del personaggio è troppo lunga, la maggior parte della gente lo fa non indossare camicie così lunghe "(quando la lunghezza della maglietta del personaggio era del tutto irrilevante per il gioco) piuttosto che cercare veri e propri bug come" collegare / scollegare ripetutamente il cavo di rete sull'host [in una partita ospitata da colleghi] si traduce in una perdita del gioco client e win aggiunti al record online dell'host ".
Doktor J,

17

Non condividerò un po 'le altre risposte. "Trovare bug" per un tester è un po 'come "scrivere codice" è per uno sviluppatore. La quantità grezza è insignificante. Il compito del tester è quello di trovare quanti più bug esistono che possono, non trovare il maggior numero di bug. Se il tester A trova 5 dei 10 bug in un componente di alta qualità e il tester B trova 58 dei 263 bug in un componente di bassa qualità, allora il tester A è il tester migliore.

Volete che gli sviluppatori scrivano la quantità minima di codice per risolvere un problema particolare e volete che un tester scriva il numero minimo di report che descrivono correttamente il comportamento non funzionante. Competere per trovare il maggior numero di difetti è come competere per scrivere la maggior parte delle righe di codice. È fin troppo facile scivolare nel gioco per essere utile.

Se vuoi che i tester competano, dovrebbe essere più direttamente basato su cosa devono fare, vale a dire che il software funzioni come descritto. Quindi forse far competere le persone per vedere chi può scrivere i casi di test più accettati, o ancora meglio, scrivere l'insieme dei casi di test che coprono la maggior parte del codice.

La misura migliore della produttività degli sviluppatori è il numero di attività completate per la complessità delle attività. La misura migliore della produttività del tester è il numero di casi test eseguiti per la complessità del caso test. Vuoi massimizzare questo, non i bug trovati.


3
Il compito del tester è quello di trovare quanti più bug esistono che possono, non trovare il maggior numero di bug. Se c'è una grande differenza tra queste affermazioni sugli obiettivi del test, mi perdo.
Atsby,

6
Perché se il tester A rileva 5 dei 10 bug in un componente di alta qualità e il tester B trova 58 dei 263 bug in un componente di bassa qualità, allora il tester A è il tester migliore.
Gort il robot

6
@Se se un singolo comportamento rotto lo manifesta in 10 luoghi diversi, allora 1 segnalazione di bug sull'effettiva cosa rotta è molto meglio di 8 report di bug separati che descrivono 8 su 10 i diversi sintomi.
Peteris,

8
@Peteris (e Steven) Questi sono entrambi punti interessanti, ma non sono effettivamente comunicati dall'affermazione citata di Steven .
Atsby,

@Atsby Nella frase che citi, la prima clausola è un'affermazione relativa (trova la più grande frazione di bug), e la seconda è assoluta (trova il maggior numero di bug). È la differenza tra dire riempire questo secchio al 90% e riempire questo secchio con 1/2 gallone quando il secchio detiene 1 gallone.
dodgethesteamroller,

16

Sulla base delle mie esperienze personali, questa non è una buona cosa. Quasi sempre porta gli sviluppatori a presentare bug duplicati, ridicoli o completamente non validi. In genere vedrai molti di questi apparire all'improvviso alla fine di un mese / trimestre mentre i tester si affrettano a rispettare le quote. L'unica cosa peggiore di questa è quando penalizzi anche gli sviluppatori in base al numero di bug trovati nel loro codice. I team di test e sviluppo stanno lavorando l'uno contro l'altro a quel punto e uno non può avere successo senza far sembrare l'altro cattivo.

Devi concentrarti sull'utente qui. Un utente non ha idea di quanti bug siano stati archiviati durante il test, tutto quello che vedono è quello che ha superato. Alla fine, agli utenti non importa se si archiviano 20 segnalazioni di bug o 20.000, a condizione che il software funzioni quando lo ricevono. Una metrica migliore per la valutazione dei tester sarebbe il numero di bug segnalati dagli utenti ma che avrebbero dovuto essere ragionevolmente catturati dai tester.

Questo è molto più difficile da tenere traccia, però. È abbastanza semplice eseguire una query del database per vedere quante segnalazioni di bug sono state archiviate da una persona specifica, che sospetto sia il motivo principale per cui la metrica "bug archiviati" è utilizzata da così tante persone.


+1 ma l'unico problema con la tua metrica migliore è che crea un incentivo a non migliorare il sistema di segnalazione dei bug degli utenti ... L'idea è giusta, ma forse dovrebbe essere un "bug trovato più generale al di fuori del processo di test ufficiale"
user56reinstatemonica8

@ user568458 - Supponevo che l'organizzazione in questione avesse team diversi per il QA interno e per il supporto rivolto al cliente e che questa domanda riguardasse solo il QA interno. Se entrambi sono la stessa squadra, allora avrai effettivamente dei conflitti di interesse (usando il mio metodo o meno).
bta,

6

Non c'è niente di sbagliato nel creare un gioco per trovare bug. Hai trovato un modo per motivare le persone. Questo è buono. È stato anche rivelato un fallimento nel comunicare le priorità. Terminare il concorso sarebbe uno spreco. Devi correggere le priorità.

Pochi giochi reali hanno un semplice sistema di punteggio. Perché la caccia ai bug?

Invece di segnare il gioco semplicemente per numero di bug è necessario fornire una misura della qualità della segnalazione. Quindi il contest riguarda meno il numero di bug. Sarà più come una gara di pesca. Tutti cercheranno di trovare il grosso bug che otterrà un punteggio ad alta priorità. Rendi la qualità del bug report parte del punteggio. Chiedi agli sviluppatori di fornire ai tester feedback sulla qualità della segnalazione dei bug.

L'ottimizzazione del bilanciamento del gioco non è un compito semplice, quindi preparati a dedicare un po 'di tempo a farlo bene. Dovrebbe comunicare chiaramente i tuoi obiettivi e dovrebbe essere divertente. Sarà anche qualcosa che puoi regolare man mano che le esigenze aziendali cambiano.


5

Trovare i bug è il loro lavoro. Finché non stanno rendendo le cose meno efficienti (ad esempio, aprendo un bug per ech di 10 errori di battitura invece di uno per coprirne diversi) questo li incoraggia a fare esattamente quello che dovrebbero fare, quindi Non riesco a vedere un aspetto negativo.


Non potrei essere più d'accordo con Moot. Ovviamente le persone potrebbero fare qualcosa di stupido (file di centinaia di errori di battitura, ecc.) - ma "le persone possono fare qualcosa di stupido" seguendo qualsiasi schema.
Fattie,

1

Questa è un'espansione sulla risposta di @ CandiedOrange .

Per iniziare a spostare l'attenzione su obiettivi più utili, considera qualcosa di molto informale e non ufficiale. Ad esempio, gli sviluppatori potrebbero acquistare alcuni token e trofei di piccole dimensioni.

Ogni giorno in cui è stato segnalato almeno un bug significativo, lascia un gettone "Bug del giorno" sulla scrivania del tester. Una volta alla settimana, organizza una cerimonia con una processione di sviluppatori che consegna un token o un trofeo "Bug della settimana" più grande e migliore. Rendi la consegna del trofeo "Bug of the Month" ancora più drammatica, forse con una torta. Ogni token o trofeo dovrebbe essere accompagnato da una citazione che spiega il motivo per cui gli sviluppatori hanno pensato che fosse una buona cosa trovare un bug nei test. Copie delle citazioni dovrebbero essere messe da qualche parte dove tutti i tester possono leggerle.

La speranza è che i tester possano spostare la loro attenzione dal trovare il maggior numero di bug alla raccolta del maggior numero di trofei e gettoni. La loro migliore strategia per farlo sarebbe quella di leggere le citazioni e pensare a quali approcci ai test rischiano di far emergere bug che gli sviluppatori considereranno importanti.

Ignora semplicemente le segnalazioni di bug non importanti. Dal momento che sarebbe tutto molto ufficioso e informale, potrebbe essere chiuso o modificato in qualsiasi momento.


Dovrei essere d'accordo. Una cosa: non fare questo per ottenere l'approvazione dalla direzione. Per farlo sembrare un gioco è fondamentale che i tester sentano di aver capito le regole stesse. Se il sistema di accesso è la priorità assoluta, informali in anticipo e sbloccali. Se i difetti dei casi di uso intenso del traffico sono la priorità piuttosto che i casi d'angolo oscuri, chiariscilo e spiega come viene segnato. Avere semplicemente priorità chiare lo renderà divertente e farà pescare le persone nella giusta buca.
candied_orange,

1

È buono per il progetto?

No . Hai sottolineato tu stesso che hai osservato che si traduce in rapporti di bassa qualità che non sono mirati alla funzionalità richiesta e che i tester finiscono per aggravare il problema, cercando di completare il lavoro che in realtà sono "supposti" "fare.

In caso contrario, come posso (come sviluppatore di software), provare a cambiare il pensiero e le attitudini del team di tester?

Solleva il problema con il tuo Project Manager. Dovrebbero considerare questo genere di cose come parte del loro lavoro. Se il tuo PM non è disposto o incapace di affrontarlo, sei un po 'bloccato nello sviluppo delle tue strategie di coping. (che sarebbe una domanda diversa)


-1

Penso che sarà (o com'è già) se andrà avanti così, non otterrai necessariamente una qualità inferiore. Anche se penso che ridurrà la quantità in rapporto alla qualità. Dipende se questa è una cosa negativa o no. Dipende se

segnalare bug su miglioramenti dello schermo, usabilità o stupidi bug.

è qualcosa che davvero non vuoi. Se questo è chiaro con i tester, vorrei solo dire loro di non fare le cose che non vuoi siano riportate ma di essere chiaro. Fallo quando viene visualizzato di nuovo uno di questi rapporti.

Il motivo per cui hanno una competizione è probabilmente divertirsi mentre lavorano, quindi probabilmente non hanno intenzione di fare un cattivo lavoro (se questo è considerato cattivo).


1
Voglio assolutamente conoscere i problemi di usabilità. Ci riferiamo a loro come "bug nelle specifiche".
RubberDuck,

1
@RubberDuck Bene, se questo è chiaro al 100% con il team, allora c'è un motivo per dirglielo mentre fai sapere che non ti piace quello che fanno e sanno perché. Quindi avvertili. Se questo non viene discusso in modo specifico con il team, non penso che tu possa davvero arrabbiarti con loro e dare solo un esempio di uno dei rapporti di cui non approvi e far loro sapere che non lo vuoi così.
Loko,
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.