Esiste un diagramma per i test unitari?

1

Sto scrivendo una libreria di software per alcuni calcoli numerici. Mi piacerebbe utilizzare il framework Boost Unit Test per scrivere un test unitario gerarchico che riguardi non solo il comportamento di input / output di base delle funzioni, ma anche la funzionalità più elevata, ad es. risultati corretti per alcuni problemi di test ecc.

Tuttavia, temo, che mi perderò in una complessità di test. C'è un modo standard per elencarli? Come un diagramma di test unitario?

    
posta Eenoku 08.09.2018 - 12:59
fonte

2 risposte

2

Non penso che ci sia un "diagramma standard", ma ci sono convenzioni di denominazione per i test unitari in giro, come questo o questo .

Raccomanderei innanzitutto e soprattutto di avere una buona struttura e documentazione per la biblioteca. Quindi, si dovrebbe stabilire una convenzione di denominazione rigida per i test in modo che sia facile vedere quale test appartiene a quale parte della libreria. In generale, la struttura dei test unitari dovrebbe seguire la struttura del soggetto in esame. Ad esempio, per ogni classe o modulo Foo , i test correlati potrebbero essere in una classe TestFoo o FooTest . Per una convenzione più sofisticata, segui i link sopra.

Se segui questa strada, la struttura della tua lib impone una struttura sufficiente per i tuoi test che non hai bisogno di qualche "lista" o "diagramma" extra.

    
risposta data 08.09.2018 - 16:02
fonte
1

Una possibile soluzione è ridurre la complessità dei test. Ad esempio, con il test basato sulla proprietà (ad esempio, ScalaCheck, QuickCheck) un singolo test potrebbe sostituire diversi test di unità come casi speciali. Quindi l'intera gerarchia di test viene appiattita. I test di proprietà si adattano particolarmente bene alle applicazioni matematiche / numeriche, ma a un costo computazionale.

Un approccio complementare, in linea con le intuizioni dell'OP, consiste nell'utilizzare una struttura di test adattabile a una gerarchia di test. Questo va verso lo sviluppo basato sul comportamento (BDD). È possibile avere una funzione di alto livello (= funzione "BDD") e funzioni di supporto di basso livello (= "Scenari" BDD). Gli strumenti di test BDD si adattano facilmente a questa gerarchia. Alcuni di loro hanno delle belle GUI che organizzano visivamente, se non sono diagrammi. Inoltre, possono servire come documentazione vivente.

Alcuni riferimenti / termini di ricerca BDD: "BDD in azione", Dan North, cetriolo, strumento di serenità.

    
risposta data 08.09.2018 - 17:58
fonte

Leggi altre domande sui tag