In un team molto piccolo, in cui il test della scatola nera e della scatola bianca viene eseguito dalla stessa persona, quale dovrebbe essere prima il tester?
In un team molto piccolo, in cui il test della scatola nera e della scatola bianca viene eseguito dalla stessa persona, quale dovrebbe essere prima il tester?
Risposte:
Qualunque cosa debba essere la più corretta.
Scherzi a parte, i test in white box (ovvero test degli interni del codice) dovrebbero idealmente essere eseguiti con test unitari da parte dello sviluppatore che ha scritto il codice. I test unitari verrebbero accumulati nel tempo, e parte del processo di compilazione in modo da non perdere tempo con il codice che sappiamo che non funziona come dovrebbe. I test unitari diventano più importanti quanto più piccola è la tua squadra, in particolare perché non hai un esercito di tester per risolvere i problemi.
I test in black box (ovvero i test attraverso l'interfaccia utente / di sistema) sono in genere ciò che fanno la maggior parte dei tester.
Tutti i test devono avere la priorità su quanto sia importante una funzione per il prodotto finito. Se la missione è fornire uno strumento per eseguire X e il prodotto non esegue X, questo è un grosso problema.
Test in scatola nera per verificare le funzionalità. Test in bianco se necessario se le cose sono rotte. Se tutti i test della scatola nera superano e la copertura è buona, i test della scatola bianca non sono necessari.
Scatola nera.
I componenti della scatola bianca di solito dipendono dai componenti della scatola nera, quindi vorrei prima provare la scatola nera e poi passare alla scatola bianca.
Prima fai dei test sui bianchi pensando come programmatore / sviluppatore per assicurarti che le cose funzionino bene. Quindi esegui il test della scatola nera di solito cercando di pensare come se fossi l'utente finale, senza pensare alla struttura interna del programma. A volte devi pensare come un programmatore / sviluppatore anche se stai facendo un test nero perché potresti testare un modulo interno che è stato scritto da un'altra persona e non hai accesso al codice.
Se vuoi avere un buon ciclo di test, dovresti avere persone diverse che fanno entrambe le cose :
Uno sviluppatore focalizzato principalmente sui test white-box sa cosa è cambiato di recente nel codice, quali aree sono più complesse (e quindi probabilmente si rompono), ecc. E può concentrare gli sforzi in modo appropriato in queste aree molto probabilmente per introdurre nuovi difetti.
D'altra parte, un tester QA incentrato sui test in scatola nera può avvicinarsi più facilmente ai test come un utente finale. Senza alcuna conoscenza interna del codice, possono adottare un nuovo approccio e non sono influenzati dalla conoscenza di come vengono implementate le diverse parti della soluzione. Cattureranno bug che lo sviluppatore potrebbe aver trascurato o regressioni da modifiche al codice che hanno accidentalmente rotto altre aree dell'applicazione.
Per rispondere alla tua domanda, il test in white box deve essere eseguito per primo. Ma devi davvero avere una persona diversa che esegue il test della scatola nera se vuoi che sia efficace.
Mi piace iniziare con il test della scatola nera, quindi utilizzare le informazioni sulla copertura del codice o il debugger per capire cosa sto facendo e analizzare cosa sta succedendo.
Ma la vera risposta è che dipende . Probabilmente mi immergerò nel codice prima (o addirittura prima) se sto facendo test API, ma molto più tardi se il mio obiettivo è quello di esaminare alcuni scenari end-to-end di grandi dimensioni.
Direi prima i test di Black Box , semplicemente perché come sostenitori di TDD, i test sono scritti prima che il codice (o box) esista comunque :)
I test di White Box (per quanto ho capito) sono più utili in una mentalità di debug.
Test della scatola nera, perché stai scrivendo test prima dell'esistenza del codice. Il tester deve sviluppare test automatici che richiedono molto tempo in parallelo con il codice di scrittura dello sviluppatore per essere efficienti in un piccolo team.
Se il codice è già stato scritto, ti suggerirei di dedicare un po 'di tempo a delineare la copertura del test da un punto di vista della scatola nera per assicurarti di avere un po' di tempo per il brainstorming prima di ingombrare il tuo cervello con il codice reale. Tuttavia, puoi quindi passare alla casella bianca e guardare il codice prima di andare troppo avanti con i test effettivi per avere un'idea delle aree a rischio e dare la priorità a quei test che hai fatto il brainstorming in precedenza (e aumentarli con nuovi test pensati da guardando parti del codice che sembrano complicate o discutibili).
Né. Cerco di scrivere buoni test usando il mio BICEP destro , tenendo presente le CORRETTE condizioni al contorno, indipendentemente dall'ordine in cui vengono in mente. Questi sono entrambi gli acronimi proposti nel Pragmatic Unit Testing .
Il mio obiettivo è quello di concentrarmi sulla scrittura di buoni test e non su quale colore scrivere per primo.
Per prima cosa esegui il test della scatola bianca .
Secondo per il test della scatola nera.
> Test della scatola nera
I. Il tester dovrebbe controllare il funzionamento dell'applicazione, ad esempio casella di testo, pulsante di opzione, casella di riepilogo, pulsante di comando, ecc.
II. Il tester dovrebbe verificare il funzionamento non funzionale dell'applicazione, come logo, immagine, ortografia, ecc. Ecc. ,,
III. Il tester dovrebbe controllare l'intero flusso dell'applicazione.
Nota: per verificare le condizioni positive e negative.