Talk – PgTAP: unit testing per PostgreSQL

Abstract

PgTap e’ una suite di funzioni di database che rende semplice la scrittura di test mediante l’utilizzo del protocollo Tap (test anything protocol), che altri non e’ che un’interfaccia per test basata sui file di testo. Questo protocollo era stato sviluppato per creare test sull’interprete Perl, anche se successivamente sono stati implementati parser anche per altri linguaggi.

Quali sono i possibili scenari di utilizzo di pgTap?

  1. Sviluppo di applicazioni: questo e’ lo scenario tipico quando si utilizza PostgreSQL come database di backend e si utilizza una metologia agile di sviluppo del software. Dato che creano test per verificare che le features implementate non generino problemi in altre parti del software, ecco che lo sviluppo di test per il database (schemi, viste, trigger, stored procedure) risulta essere di vitale importanza per generare codice di qualita’;

  2. Validazione degli schema: questo scenario si verifica quando sonostati sviluppati degli schema objects e se ne vuole verificare la consistenza;

  3. Sviluppo di moduli: questo e’ il tipico scenario che si incontra quando si sviluppano moduli per PostgreSQL, in particolare funzioni,tipi od oggetti custom. In questo caso ovviamente sono necessari regression tests al fine di verificare che questi moduli non generino problemi su versioni diverse di PostgreSQL.

PgTap ha molte funzioni utili per testare diversi aspetti del database, come ad es. quali e quante colonne ha il database, il risultato delle query, ed alcune funzioni specifiche.

Un’altra fondamentale funzionalita’ di PgTap e’ pg_prove, cioe’ un tool a riga di comando che permette di eseguire i test. E’ certamente utile nell’ambto della Continuos Integration in quanto sara’ il sistema che, in autonomia, eseguira’ i test e verifichera’ i report. Infatti pg_prove permette di generare report simili a junit, e quindi facilmente gestibili da software quali Jenkins ed altri simili.

Esistono alternative a PgTap? Si e no, cioe’ sono state sviluppate PGUnit ed Epic, ma non sono ormai aggiornate da anni, mentre PgTap e’ ancora attivamente supportato

slides: PgTAP: unit testing per PostgreSQL

Relatore

Grenzi Lucio: Laureato ingegneria informatica, da oltre dieci anni segue attivamente
l’universo OpenSource sviluppando applicazioni che utlizzano prevalentemente
PostgreSQL come database

 

Contatti