Passaggio 0: messa a fuoco e non essere sopraffatto
Ci sono diversi tipi di test che puoi fare. Esistono test unitari, test di accettazione, test di integrazione, sviluppo guidato dai test (TDD), sviluppo guidato dal comportamento (BDD), sviluppo guidato dai test di accettazione (ATDD), ecc. Non ancora impantanati nella terminologia. Concentrati sui test di accettazione (vedi nota), che significa approssimativamente testare la versione finale del tuo programma completo. Una volta che ti sei bagnato con i test più semplici, puoi iniziare a guardare il mondo più vasto dei test del software.
Note: Some folks may give advice to start with unit testing. That's
cool, too. That can be pretty easy if you're using a language with a
built-in unit testing framework. If not, installing a unit testing
framework can be a pain. This is why I recommend starting with
acceptance testing, because you don't need a fancy framework. All you need
is a way to call your program from a script or from another program. You
probably already have the tools to do that on your machine.
Passaggio 1: crea alcuni dati di test
Crea una cartella e in quella cartella metti alcuni file fittizi. Fai in modo che tu possa facilmente trovarli tutti (es: i loro nomi iniziano tutti con "f"), alcuni di essi (es: alcuni nomi terminano con una "Z", altri no), nessuno di essi (es. : nessuno ha la parola "foobar" nel loro nome). Questi sono i tuoi dati di prova. Se il tuo programma può cercare sottocartelle, crea anche alcune sottocartelle.
Passaggio 2: crea un semplice script di test
Scrivi uno script di test usando qualsiasi linguaggio di scripting con cui ti trovi a tuo agio - python, bash, PowerShell, ecc. Questo script dovrebbe chiamare il tuo programma con parametri per cercare i file. Ad esempio, dovrebbe dirti dove cercare (ad esempio: la tua nuova cartella) e cosa cercare (es .: F *, * Z, foobar ). Poiché controlli quanti file ci sono nella tua cartella di test, dovresti sapere che una ricerca di F * restituirà i file X, cercando * Z dovrebbe restituire i file Y, e la ricerca di foobar dovrebbe restituire 0.
Nota: non è necessario utilizzare un linguaggio di scripting. Di solito è più facile che creare un programma di test compilato. Se conosci solo una lingua, però, usa quella lingua per ora.
In realtà non deve essere più fantasioso di quello - un singolo script che chiama la tua funzione, e poi verifica che ciò che ritorna è ciò che ti aspetti. Fallo per diversi criteri di ricerca. Fai stampare alla tua sceneggiatura un nome semplice per ciascun test e "PASS" o "FAIL".
Passaggio 3: aggiungi altri casi di test
Mentre stai scrivendo i tuoi primi test, probabilmente scriverai dei test per i casi semplici. Pensa a edge cases - verifica i limiti di ciò che il tuo codice può fare. Il tuo programma accetta una discussione indicando dove cercare? Scrivi un test in cui non gli viene fornito l'argomento per assicurarsi che venga stampato un messaggio di errore appropriato. Puoi passare più di un argomento? Argomenti che sono stringhe vuote o percorsi a cartelle che non esistono?
Quando scopri bug, aggiungi un caso di test prima correggi il bug in modo da poterlo duplicare. Risolvi il bug e verifica che il tuo caso di test passi ora. Quando aggiungi nuove funzionalità puoi fare la stessa cosa: aggiungi un test prima aggiungendo la nuova funzione. Dovrebbe fallire, fino a quando non funzionerà. Questo è noto come TDD, o Test Driven Development.
Passaggio 4: impara
Una volta che hai dimestichezza con ciò, puoi iniziare a guardare altri strumenti per semplificare la procedura. Ad esempio, cetriolo o la struttura del robot sono buone scelte per i test di accettazione, ma ce ne sono molti, molti altri.