Tutorial per testare la blockchain

Che cosa è Blockchain?

Blockchain è un database condiviso che archivia un elenco di record in continua crescita, chiamati blocchi. Ogni blocco contiene un hash del blocco precedente e un timestamp.

In questo tutorial imparerai:

Le funzionalità di Blockchain includono

  • Sistema decentralizzato: Utile in vari settori come la finanza, il settore immobiliare ecc.
  • Migliore sicurezza: utilizza più nodi per completare e autenticare le transazioni
  • Autenticità: consente all'algoritmo univoco di elaborare i dati
  • Capacità aumentata: Aumenta la capacità dell'intera Rete

Tipo di Blockchain

Ecco tre tipi di Blockchain:

Blockchain del Consorzio:

Più organizzazioni avranno accesso e autorità sulla rete. È un sistema completamente decentralizzato

Blockchain pubblica:

In questo tipo di test blockchain, tutti hanno accesso alla Rete e possono prendere parte al Consenso. Il suo sistema decentralizzato.

Blockchain privata:

Solo le organizzazioni singole avranno accesso e autorità sulla rete. È un sistema parzialmente decentralizzato.

Pubblico Privata Consorzio
accesso a
  • Chiunque
  • Unica organizzazione
  • Organizzazione multipla
A chi e' rivolto
  • Permissionless
  • Anonimo
  • gestite le autorizzazioni
  • Identità conosciute
  • gestite le autorizzazioni
  • Identità conosciute
Sicurezza
  • Meccanismo di consenso
  • Prova di lavoro/Prova di stack
  • Partecipanti pre-approvati
  • Consenso di voto/multipartitico
  • Partecipanti pre-approvati
  • Consenso di voto/multipartitico
Velocità di transazione
  • Rallentare
  • Più leggero e più veloce
  • Più leggero e più veloce

Componenti principali di una blockchain

Applicazione del nodo

Ogni Nodo deve installare ed eseguire un'applicazione informatica definitiva per l'ecosistema a cui desidera partecipare

diviso Ledger

Una struttura dati (registro) è gestita all'interno dell'applicazione node. I contenuti per l'ecosistema possono essere visualizzati una volta che l'applicazione node è in esecuzione.

Algoritmo di consenso

L'algoritmo di consenso è implementato come parte dell'applicazione del nodo, fornendo le "regole del gioco" su come l'ecosistema arriverà a una vista univoca del registro.

Macchina virtuale

Astrazione di una macchina gestita tramite istruzioni e implementata come parte dell'applicazione del nodo che ogni partecipante all'ecosistema esegue.

Come funziona Blockchain?

Vantaggi della Blockchain

  • Che fa risparmiare tempo: Blockchain riduce il tempo di transazione da giorni a minuti. La soluzione Transaction è più veloce perché non richiede la verifica da parte di un'autorità centrale.
  • Costo-efficace: Transazioni Blockchain meno maneggevoli. I partecipanti possono scambiarsi direttamente oggetti di valore. La blockchain elimina la duplicazione degli sforzi perché i partecipanti hanno accesso a un registro condiviso.
  • AUMENTA LA SICUREZZA: Protezione della sicurezza della Blockchain contro frodi e criminalità informatica.

Sfide nei test Blockchain

  • Comprendere la tecnologia– Blockchain è una nuova tecnologia e comprendere la tecnologia con la conoscenza del dominio è molto importante per testare l’applicazione Blockchain
  • Mancanza di strumenti di test Blockchain– Il test delle applicazioni basate su blockchain riguarda esclusivamente gli strumenti. Selezionare lo strumento giusto in base all'applicazione è una delle decisioni importanti.
  • Definizione della strategia di test– Come qualsiasi applicazione, progettare la strategia di test per l'applicazione Blockchain. È una delle sfide più grandi poiché la strategia di test richiede una conoscenza e una comprensione approfondite della tecnologia e dell'applicazione.
  • Dimensioni del blocco e della catena– Insieme ai test standard, agli strumenti e alle migliori pratiche in atto, è importante anche il test per la dimensione del blocco e della catena. Le applicazioni blockchain potrebbero fallire senza un'adeguata convalida della dimensione del blocco e della dimensione della catena.
  • Test d'integrazione– Poiché nell’applicazione Blockchain sono coinvolti più componenti, i test di integrazione dovrebbero essere eseguiti correttamente e frequentemente per verificare che tutti i componenti siano adeguatamente integrati per evitare eventuali errori.
  • Prestazioni e carico-Il mancato test delle prestazioni e del carico fornisce informazioni scarse o nulle sulle prestazioni dell'applicazione Blockchain sia in produzione che in carichi di lavoro e condizioni di rete specifici.
  • Sicurezza– La protezione dei dati dovrebbe essere la cosa più importante nell’applicazione Blockchain. La Blockchain può far parte di vari settori come la sanità, la finanza, ecc. Qualsiasi tipo di attacco dannoso può avere un impatto sull'applicazione Blockchain

Fasi del test Blockchain

Fase di iniziazione:

  • Capire Blockchain Architectura: In questa fase comprendiamo e analizziamo i requisiti aziendali e funzionali. Descrive il comportamento dell'applicazione e il modo in cui l'utente interagirà con l'applicazione
  • Progettazione completa della strategia di test: Durante questa fase, descriviamo l'approccio di test per testare un'applicazione. Questo dovrebbe essere fatto in dettaglio in modo che ogni obiettivo sia completamente coperto.

Fase di progettazione:

  • Creazione del caso di test: In questa fase, il team QA scrive i casi di test con passaggi adeguati. Questi casi di test vengono esaminati da Business Analyst (BA).
  • Testare la creazione dei dati: in questa fase, i dati di test vengono creati o estratti dall'ambiente precedente in base ai requisiti aziendali. I dati di test possono essere creati manualmente o utilizzando strumenti di automazione.
  • Impostazione dell'ambiente: In questa fase, l'ambiente di test viene configurato come necessario per il Business o l'applicazione
  • Metriche delle prestazioni: Le metriche prestazionali rappresentano le informazioni in termini di prestazioni dell'applicazione, del sistema o dei componenti

Fase di test:

  • Test API: Nei test API, ci assicuriamo che l'interazione tra le applicazioni nell'ecosistema blockchain sia come previsto
  • Test di blocco: Tutti i blocchi della Rete dovrebbero essere testati individualmente per garantire una corretta cooperazione.
  • Test di funzionalità: Nei test funzionali, valutiamo il lavoro di varie parti funzionali della Blockchain (ad esempio, contratti intelligenti).
  • Test di Performance: Dettagli come la latenza di rete in base alla dimensione del blocco, alla dimensione della rete, alla dimensione prevista della transazione e al tempo impiegato da una query per restituire l'output con il protocollo di autenticazione specializzato
  • Test di sicurezza: In questo modo, ci assicuriamo che l'applicazione sia vulnerabile agli attacchi e che i sistemi possano proteggere i dati e siano in grado di gestire attacchi dannosi, ecc.
  • Test d'integrazione: Nel test di integrazione, ci assicuriamo che tutti i componenti dell'applicazione siano integrati correttamente e che eseguano le azioni in modo appropriato
  • Test del contratto intelligente: Il test Smart Contract riguarda l'esecuzione di test funzionali dettagliati della logica e del processo aziendale.

Fase di rapporto:

  • Rapporto riepilogativo del progetto: Descrivere la panoramica generale dei dettagli del progetto, le date del progetto, i costi e i dettagli delle attività
  • Rapporto sui test del contratto intelligente: Questo rapporto descrive i dettagli dell'elaborazione di contratti intelligenti, dati e regole
  • Rapporto sui test di sicurezza: mostra le informazioni vulnerabili in un documento formale per il cliente e il management superiore. Il rapporto contiene la data del test, i dati del test e il riepilogo delle vulnerabilità rilevate
  • Rapporto sul test delle prestazioni: Questo report mostra i dettagli riguardanti le prestazioni delle applicazioni, come velocità, scalabilità, affidabilità, ecc.

Tipi di test chiave sull'applicazione Blockchain

Test di funzionalità

I test funzionali svolgono un ruolo importante nei test Blockchain poiché aiutano a valutare i requisiti aziendali, i processi e l'efficacia dei casi d'uso. Di seguito sono riportati i componenti che possono essere testati come parte del test funzionale: 1) Dimensione del blocco e dimensione della catena 2) Aggiunta di un blocco 3) Dati Transmission

Test d'integrazione

L'applicazione Blockchain funziona in più ambienti. Pertanto, è importante testare le connessioni tra sistemi

Test delle prestazioni:

Aiuta a identificare in anticipo i colli di bottiglia hardware e software. Ciò può anche aiutarti a capire i costi potenziali dell'esecuzione dell'applicazione nel cloud o in altri ambienti.

Test dei nodi

Tutti i diversi nodi della rete devono essere testati in modo indipendente per garantire una cooperazione fluida.

Test dell'API:

L'Application Programming Interface testa l'interazione tra le applicazioni nell'ecosistema blockchain. L'API Testing assicura che le richieste e le risposte siano formattate e gestite correttamente.

Strumenti di test della blockchain

Ecco alcuni strumenti di test Blockchain importati:

1)Ethereum Test:

È una libreria di test open source disponibile nel repository GitHub. È facile da impostare con supporto API gestibile per vari requisiti di test.

2) Ganache:

È precedentemente noto come Testrpc, è la libreria ampiamente utilizzata per i test Ethereum contratti a livello locale. Funziona creando una sorta di finzione Blockchain che ti dà accesso agli account per i quali puoi utilizzare Tstima.

3) Compositore Hyperledger:

Hyperledger Composer è uno strumento open source che aiuta gli sviluppatori a creare applicazioni blockchain. Utilizzando questo strumento, possiamo eseguire principalmente tre tipi di test: test interattivi, test di unità automatizzate e test di sistema. Se sei interessato a imparare come creare applicazioni blockchain e lavorare con strumenti come Hyperledger Composer, consulta questa guida su come diventare uno sviluppatore blockchain per iniziare il tuo viaggio in questo entusiasmante campo.