Testare gli Smart Contract

Dec 22 2022
Come testare i contratti intelligenti e perché farlo? Il passaggio fondamentale per lo sviluppo di contratti intelligenti per le tue soluzioni web3 è testarlo prima ancora di implementarlo su testnet. L'esecuzione di test che verificano la funzionalità implementata è fondamentale! Agenda: “Test di smart contract significa eseguire un'analisi e una valutazione dettagliate di uno smart contract per valutare la qualità del suo codice sorgente durante il ciclo di sviluppo.

Come testare i contratti intelligenti e perché farlo?

Il passaggio fondamentale per lo sviluppo di contratti intelligenti per le tue soluzioni web3 è testarlo prima ancora di implementarlo su testnet. L'esecuzione di test che verificano la funzionalità implementata è fondamentale!

Ordine del giorno:

  • introduzione,
  • che cos'è?
  • cosa fa?
  • utensili,
  • conclusione.

"Testare un contratto intelligente significa eseguire un'analisi e una valutazione dettagliate di un contratto intelligente per valutare la qualità del suo codice sorgente durante il ciclo di sviluppo."

In parole semplici e pratiche: il test sta scrivendo semplici varianti dell'utilizzo delle caratteristiche e prevedendo che i risultati siano uguali alle affermazioni predefinite.

Semplice esempio, il contratto intelligente sta trasferendo token da un indirizzo all'altro ed è tutto.

È necessario scrivere un test come questo:

  • generare due portafogli (ad esempio Alice & Bob),
  • eseguire la funzione di trasferimento da Alice a bob con asset pari a 1 ETH,
  • aspettarsi che il portafoglio Bob aumenti il ​​valore di 1 ETH,
  • aspettati che il portafoglio Alice diminuisca di 1 ETH,
  • controlla se i casi limite sono gestiti correttamente, come un tentativo di trasferire più fondi di cui è di proprietà, ecc.

Cosa fa?

"Testare uno smart contract semplifica l'identificazione di bug e vulnerabilità e riduce la possibilità di errori del software che potrebbero portare a costosi exploit".

Secondo l'esempio precedente con Alice e Bob, i test controllano le funzionalità implementate prima di un'ulteriore distribuzione. Dovrebbero generare errori per bug e consentire di identificarli facilmente, se i test sono descritti correttamente.

fonti di definizioni:

Utensili

I contratti intelligenti sono scritti principalmente in Solidity, ma i test vengono eseguiti con JavaScript. Diverse piattaforme, soluzioni offrono alcune semplici architetture per i test, una di queste è il tartufo.

Maggiori informazioni sul tartufo:

Truffle crea una struttura di cartelle adeguata che è la stessa per ogni progetto, in breve:

  • c'è una cartella del contratto in cui sono archiviati i contratti,
  • e c'è una cartella dei test che memorizza i test.

mocha.js:

documenti chai.js:

Nel file di test vengono avviati i contratti e quindi vengono verificate le diverse condizioni.

I test vengono eseguiti con il comando cli dal livello del terminale ed è tutto.

Per avere un contratto distribuito localmente e implementare portafogli generati con alcuni fondi, estremamente utile è la ganache di tartufo toolkit. Gestisce solo una blockchain locale e crea portafogli con un saldo di 100ETH.

Maggiori informazioni sulla ganache:

Cialda

È un altro strumento di test del contratto intelligente creato da ETHWorks.

“Ti consente di creare nuovi contratti intelligenti e testarli utilizzando Mocha e Chai. Molte persone scelgono il waffle al posto del tartufo, perché è più semplice e facile da imparare”.

Di più in:

Conclusione

Testare contratti intelligenti è un'abilità potente e davvero necessaria, che può prevenire la perdita di enormi quantità di risorse. Blockchain è immutabile, se il contratto viene distribuito con errori, nello scenario fortunato ha perso solo alcune funzionalità. Il caso peggiore è quando un utente perde fondi.

Ti è piaciuto? Segui il repository con tutti gli argomenti della sfida: