Software per lo Unit Testing

di il
2 risposte

Software per lo Unit Testing

Salve a todos, vorrei segnalarvi questo software per lo Unit Testing di database relazionali. Funziona con MySQL, MariaDB e Percona a partire dalla versione 5.1.

Questa la home del progetto:
http://stk.wikidot.com/stk-uni
Mentre se volete qualche screenshot lo trovate qui:
http://stk.wikidot.com/screensho

Come potete vedere negli screen, si tratta di una libreria di Stored Procedure. I test vengono scritti come stored procedure, esistono i concetti di Test Case e Test Suite, e l'output può essere letto da tabelle/viste relazionali, o può essere restituito come stringa leggibile da riga di comando, o anche in HTML (per reindirizzarlo a un browser).

Questo ci porta a una domanda più generale: a cosa serve lo Unit Testing sui database relazionali?
Ecco, io credo che le metodologie di sviluppo Agile, in generale, si possano applicare anche ai database (non solo i test). I test possono testare qualsiasi oggetto: stored procedure, trigger, viste (che devono contenere certi dati e non altri), colonne (i tipi di dati e i set di caratteri devono essere adatti per contenere i dati che vengono dal mondo reale), plugin, etc...
Ma in un db relazionale si può testare anche i dati stessi, trasformando lo Unit Testing in uno strumento per il Data Cleaning: in pratica, si validano i dati, e per ogni riga contenente dati non validi si genera un warning.

Ma mi sono dilungato anche troppo... se qualcuno di voi giocherà con questo tool, mi farebbe piacere sapere cosa ne pensa.

Buon divertimento

2 Risposte

  • Re: Software per lo Unit Testing

    Usare metodologie di sviluppo Agile NON implica l'impossibilita di rompere quello che prima funzionava. E scaricare la responsabilita' del test di funzionalita' che prima funzionavano e che con la nuova release non funzionano piu' sul committente e' un buon modo per farsi mandare a casa.
    Gli unit test servono a questo: assicurarsi che quello che prima funzionava, continui a funzionare, e che le nuove funzionalita' fanno quello che il commitente ha richiesto.



    PS: mai scritto una frase in cui il termine funzione e sue varianti e' stato utilizzato cosi' tante volte .
  • Re: Software per lo Unit Testing

    Mi sa che mi sono espresso male, perché sono d'accordo con te!

    Gli Unit Test, in questo caso, servono soprattutto per testare le modifiche al database, compresi i tipi di dati e i vincoli di integrità, oltre alle stored procedure e i trigger. Ma non solo: anche le query usate dalle applicazioni possono essere testate (diventa difficile nel caso di "sql dinamico", ma si testa comunque che la query che si spera di generare correttamente funzioni, e lo si fa dall'interno del db, senza connessioni e altre fonti di errori/rallentamenti) e in un db in uso è possibile di tanto in tanto testare i dati inseriti. Quest'ultima cosa è utile soprattutto se si utilizza un db senza vincoli referenziali né transazioni (tabelle MyISAM), se si importano dati da altre fonti, se non ci si fida di un gestionale, ecc...

    Io questo strumento lo uso da tempo, anche se solo ultimamente l'ho modificato pesantemente per cercare di renderlo usabile da chiunque. Ovviamente qualsiasi fidbèc è prezioso...
Devi accedere o registrarti per scrivere nel forum
2 risposte