Se il test funzionale è riferito come scatola nera..come può essere fatto a livello di test unitario?

1

Preparando me stesso per ISTQB, ho trovato un po 'strane molte cose nei loro libri di testo. Per esempio. chiamano test black box come test funzionali quando non si è interessati a strutturati, ma si osserva solo l'output in base agli input. Ma più tardi dicono che i test funzionali sono fatti a livelli ... beh, come posso fare un test unitario senza sapere come funziona se riesco a vederlo (e devo vederlo). È una scatola bianca ma poi è nel conflitto ...

    
posta John V 08.04.2013 - 20:01
fonte

3 risposte

1

Quando si eseguono i test unitari, non si cura dell'attuazione effettiva della soluzione, ma solo dei risultati attesi. La differenza è il livello di unità che stai testando. Se si sta testando una classe, non ci si assicura che vengano chiamati metodi interni ma che venga restituita la risposta corretta. In che modo l'unità ottiene la risposta non è ciò che stai testando.

I diversi livelli di test coprono l'interazione e la logica dei pezzi della tua implementazione ma sono agnostici rispetto a ciò che sono in realtà.

Aggiorna Generalmente, gli sviluppatori eseguono test di unità a grana fine. Tuttavia, anche un tester può eseguire test dell'unità di livello inferiore. Concentrandosi su parti specifiche di un'operazione, ad esempio inviando i dati al server stesso anziché tramite l'interfaccia Web (rimuovendo l'interfaccia Web dall'unità). Oppure per testare l'interfaccia web, spoofing della risposta fornita in modo che tu possa testare il suo comportamento in isolamento.

Conoscere l'implementazione consentirebbe di determinare le "unità" di livello inferiore, tuttavia i test stessi non sanno nulla dei dettagli effettivi della soluzione.

    
risposta data 08.04.2013 - 20:45
fonte
1

Puoi eseguire test black box o white box a qualsiasi livello di astrazione. Considera la seguente funzione:

double getDistance(double side1, double side2) {
    return pythagorean(side1, side2);
}

Un test della scatola nera dovrebbe controllare se hai la risposta giusta. Ad esempio, un test del riquadro bianco verrebbe verificato che pythagorean() sia stato chiamato, piuttosto che lawOfSines() ,

Il prossimo livello di astrazione su potrebbe avere una funzione come:

boolean inRange(double x, double y) {
    return getDistance(x, y) <= getMaximumRange();
}

Un test del riquadro nero a questo livello dovrebbe verificare che certi valori siano precalcolati all'interno o all'esterno dell'intervallo. Un test del riquadro bianco controllerebbe anche che getDistance() e getMaximumRange() siano stati chiamati con i valori corretti durante il calcolo. Questo rende getDistance() un dettaglio casella bianca in questo livello, anche se si trattava di un dettaglio di una scatola nera in un livello inferiore.

Nella stragrande maggioranza dei casi, i test unitari non dovrebbero preoccuparsi affatto dell'implementazione. cioè dovresti fare i test black box. Spesso i test dell'unità white box sono inevitabili, ma dovrebbero essere ridotti al minimo, quindi l'accoppiamento dei test alla tua implementazione è ridotto al minimo.

    
risposta data 08.04.2013 - 21:16
fonte
0

Test della scatola nera significa che non è necessario sapere cosa c'è dentro la scatola per costruire il test. Non specifica la dimensione o la dimensione della casella.

Test unità significa che testare unità di codice una alla volta. Ciò è in contrasto con il test di integrazione in cui testate diverse unità che interagiscono tra loro. Non specifica quanto piccole o quanto grandi siano le unità.

Test funzionale definisce i criteri di test in base alla funzione del codice in prova, in contrasto con il test strutturale in cui i criteri di test sono basati sulla struttura del codice. Il test funzionale è una tecnica test della scatola nera

Copertura del codice è un gruppo di criteri di test che appartiene alla categoria test della finestra di vetro (non test della casella bianca poiché il bianco è opaco come nero).

    
risposta data 28.04.2014 - 07:41
fonte

Leggi altre domande sui tag