Testing delle Applicazioni Erlang con PropEr

by theArchitect
SHARE
Testing delle Applicazioni Erlang con PropEr
© Guida-HTML5.it

Introduzione

Il testing è una parte fondamentale dello sviluppo software, specialmente in linguaggi come Erlang, dove la concorrenza e la tolleranza ai guasti sono cruciali. In questo tutorial, esploreremo PropEr, uno strumento di testing basato sulla generazione di dati casuali e sulla verifica delle proprietà. PropEr è particolarmente utile per testare il comportamento di sistemi concorrenti e distribuiti, permettendo di scoprire bug che potrebbero non emergere con test tradizionali.

Codice completo

Iniziamo creando un semplice modulo Erlang che implementa una funzione per sommare due numeri. Successivamente, utilizzeremo PropEr per testare questa funzione.


-module(calculator).
-export([add/2]).

add(X, Y) -

Ora, creiamo un modulo di test utilizzando PropEr. Assicurati di avere PropEr installato nel tuo ambiente Erlang. Puoi farlo aggiungendo PropEr al tuo progetto tramite rebar3 o direttamente scaricandolo dal repository ufficiale.


-module(calculator_tests).
-include_lib("proper/include/proper.hrl").
-export([prop_add/0]).

prop_add() -

Spiegazione

Nel modulo calculator, abbiamo definito una semplice funzione add/2 che restituisce la somma di due numeri. Questo è un esempio di una funzione semplice che possiamo testare.

Nel modulo calculator_tests, utilizziamo la macro ?FORALL di PropEr per generare coppie di numeri interi X e Y. La proprietà che stiamo testando è che la funzione add/2 restituisca il risultato corretto, ovvero che calculator:add(X, Y) sia uguale a X + Y.

Per eseguire il test, utilizziamo il comando:


proper:quickcheck(calculator_tests:prop_add/0).

Questo comando avvierà il test e genererà vari casi di test per verificare la proprietà definita. Se PropEr trova un caso in cui la proprietà non è soddisfatta, fornirà informazioni dettagliate su cosa è andato storto, aiutandoti a identificare e risolvere i bug nel tuo codice.

Best practice

  • Definisci proprietà chiare: Assicurati che le proprietà che stai testando siano ben definite e rappresentino il comportamento atteso del tuo codice.
  • Utilizza generatori personalizzati: Se le tue funzioni accettano tipi di dati complessi, considera di scrivere generatori personalizzati per coprire tutti i casi possibili.
  • Testa i casi limite: Includi test per casi limite e situazioni particolari che potrebbero causare errori nel tuo codice.
  • Integra i test nel tuo flusso di lavoro: Esegui i test di PropEr regolarmente durante lo sviluppo per catturare i bug il prima possibile.

Riepilogo

In questo tutorial, abbiamo esplorato come utilizzare PropEr per testare le applicazioni Erlang. Abbiamo creato un semplice modulo di calcolo e un modulo di test che verifica le proprietà della funzione di somma. PropEr è uno strumento potente che può aiutarti a garantire la qualità del tuo codice, specialmente in scenari complessi e concorrenti.

Approfondisci con risorse ufficiali

SHARE