Ho letto molti articoli che spiegano la panoramica dei test in bianco e nero, inclusa questa domanda su Stack Overflow: link
Tuttavia, ho ancora un po 'di confusione tra i test black-box e white-box a livello base.
In termini di un esempio specifico che usa il modulo doctest
di Python, voglio sapere se mi occupo di test in bianco e nero. Il mio codice è di sotto.
La mia ipotesi da quello che ho letto è che questo tipo di test è classificato come white-box, se scrivo il codice così come i test. Tuttavia, cosa succede se dovessi chiedere a qualcun altro di produrre la sezione dei commenti che produce i test e quindi di eseguire il codice - questo sarebbe quindi il test della black-box?
Forse la mia domanda è davvero se la categorizzazione black-box vs white-box sia inerente al codice stesso o al contesto in cui viene eseguito il codice?
La semplicità che sto cercando è cosa dire da studente che sta imparando sui diversi tipi di test se usare doctest
è una tecnica white-box o black-box o nessuno dei due o "dipende".
Inoltre vorrei anche sapere se la risposta sarebbe la stessa per il tipo di test presenti su siti come Hacker Rank e Codewars che assomigliano a assert_equals(my_function(args), expected)
.
import doctest
def fib(n):
"""
Calculates the n-th Fibonacci number iteratively
>>> fib(0)
0
>>> fib(1)
1
>>> fib(10)
55
>>> fib(15)
610
>>>
"""
a, b = 0, 1
for i in range(n):
a, b = b, a + b
return a
if __name__ == "__main__":
doctest.testmod()