Blockchain-Test-Tutorial

Inhaltsverzeichnis:

Anonim

Was ist Blockchain?

Blockchain ist ein gemeinsam genutzter Datenbankspeicher, der eine ständig wachsende Liste von Datensätzen enthält, die als Blöcke bezeichnet werden. Jeder Block enthält einen Hash des vorherigen Blocks und einen Zeitstempel.

In diesem Tutorial lernen Sie:

  • Was ist Blockchain?
  • Funktionen von Blockchain enthalten
  • Art der Blockchain
  • Hauptkomponenten einer Blockchain
  • Vorteile der Blockchain
  • Herausforderungen beim Blockchain-Testen
  • Phasen des Blockchain-Testens 7
  • Schlüsseltesttypen für Blockchain-Anwendungen 10
  • Blockchain-Testwerkzeuge 10

Funktionen von Blockchain enthalten

  • Dezentrales System : Nützlich in verschiedenen Branchen wie Finanzen, Immobilien usw.
  • Bessere Sicherheit : Verwendet mehrere Knoten, um Transaktionen abzuschließen und zu authentifizieren
  • Authentizität : Ermöglicht dem eindeutigen Algorithmus die Verarbeitung von Daten
  • Erhöhte Kapazität : Erhöht die Kapazität des gesamten Netzwerks

Art der Blockchain

Hier sind drei Arten von Blockchain:

Konsortium Blockchain:

Mehrere Organisationen haben Zugriff und Autorität über das Netzwerk. Es ist ein vollständig dezentrales System

Öffentliche Blockchain:

Bei dieser Art von Blockchain-Tests hat jeder Zugriff auf das Netzwerk und kann am Konsens teilnehmen. Sein dezentrales System.

Private Blockchain:

Nur einzelne Organisationen haben Zugriff und Autorität über das Netzwerk. Es ist ein teilweise dezentrales System.

Öffentlichkeit Privat Konsortium
Zugriff
  • Jemand
  • Einzelne Organisation
  • Mehrfachorganisation
Teilnehmer
  • Ohne Erlaubnis
  • Anonym
  • Erlaubt
  • Bekannte Identitäten
  • Erlaubt
  • Bekannte Identitäten
Sicherheit
  • Konsensmechanismus
  • Arbeitsnachweis / Stapelnachweis
  • Vorab genehmigte Teilnehmer
  • Abstimmungs- / Mehrparteienkonsens
  • Vorab genehmigte Teilnehmer
  • Abstimmungs- / Mehrparteienkonsens
Transaktionsgeschwindigkeit
  • Schleppend
  • Leichter und schneller
  • Leichter und schneller

Hauptkomponenten einer Blockchain

Knotenanwendung

Jeder Knoten muss eine Computeranwendung installieren und ausführen, die für das Ökosystem bestimmt ist, an dem er teilnehmen möchte

Gemeinsames Hauptbuch

Eine Datenstruktur (Ledger) wird innerhalb der Knotenanwendung verwaltet. Inhalte für das Ökosystem können angezeigt werden, sobald die Knotenanwendung ausgeführt wird.

Konsensalgorithmus

Der Konsensalgorithmus wird als Teil der Knotenanwendung implementiert und liefert die "Spielregeln" dafür, wie das Ökosystem zu einer einzigen Ansicht des Hauptbuchs gelangt.

Virtuelle Maschine

Abstraktion einer Maschine, die mit Anweisungen betrieben und als Teil der Knotenanwendung implementiert wird, die jeder Teilnehmer im Ökosystem ausführt.

Wie funktioniert Blockchain?

Vorteile der Blockchain

  • Zeitersparnis : Blockchain reduziert die Transaktionszeit von Tagen auf Minuten. Die Transaktionslösung ist schneller, da keine Überprüfung durch eine zentrale Behörde erforderlich ist.
  • Kostengünstig : Blockchain-Transaktionen weniger Abwicklung. Teilnehmer können Wertgegenstände direkt austauschen. Blockchain beseitigt Doppelarbeit, da die Teilnehmer Zugriff auf ein freigegebenes Hauptbuch haben.
  • Erhöhen Sie die Sicherheit : Der Sicherheitsschutz von Blockchain gegen Betrug und Internetkriminalität.

Herausforderungen beim Blockchain-Testen

  • Verständnis der Technologie - Blockchain ist eine neue Technologie, und das Verständnis der Technologie mit Domänenkenntnissen ist beim Testen der Blockchain-Anwendung sehr wichtig
  • Fehlende Tools zum Testen von Blockchain - Beim Testen von Blockchain-basierten Anwendungen dreht sich alles um Tools. Die Auswahl des richtigen Werkzeugs pro Anwendung ist eine der wichtigsten Entscheidungen.
  • Definieren der Teststrategie - Entwerfen Sie wie jede Anwendung die Teststrategie für die Blockchain-Anwendung. Dies ist eine der größten Herausforderungen, da die Teststrategie fundiertes Wissen und Verständnis für die Technologie und Anwendung erfordert.
  • Block- und Kettengröße - Neben Standardtests, Werkzeugen und bewährten Methoden ist auch das Testen auf Blockgröße und Kettengröße wichtig. Blockchain-Anwendungen können fehlschlagen, wenn die Blockgröße und die Kettengröße nicht ordnungsgemäß überprüft werden.
  • Integrationstests - Da die Blockchain-Anwendung mehrere Komponenten enthält, sollten Integrationstests ordnungsgemäß und häufig durchgeführt werden, um zu testen, ob alle Komponenten ordnungsgemäß integriert sind, um Fehler zu vermeiden.
  • Leistung und Auslastung - Wenn die Leistung und Auslastung nicht getestet werden, erhalten Sie nur wenig oder gar keinen Einblick in die Leistung der Blockchain-Anwendung sowohl in der Produktion als auch unter bestimmten Workloads und Netzwerkbedingungen.
  • Sicherheit - Die Sicherung der Daten sollte in der Blockchain-Anwendung am wichtigsten sein. Blockchain kann Teil verschiedener Sektoren wie Gesundheit, Finanzen usw. sein. Jede Art von böswilligen Angriffen kann sich auf die Blockchain-Anwendung auswirken

Phasen des Blockchain-Testens

Initiationsphase:

  • Grundlegendes zur Blockchain-Architektur : In dieser Phase verstehen und analysieren wir die geschäftlichen und funktionalen Anforderungen. Dies beschreibt das Verhalten der Anwendung und wie der Benutzer mit der Anwendung interagiert
  • Entwurf einer vollständigen Teststrategie : In dieser Phase beschreiben wir den Testansatz zum Testen einer Anwendung. Dies sollte im Detail erfolgen, damit alle Ziele vollständig abgedeckt werden.

Design-Phase:

  • Testfallerstellung : In dieser Phase schreibt das QA-Team die Testfälle mit den richtigen Schritten. Diese Testfälle werden von Business Analyst (BA) geprüft.
  • Testdatenerstellung : In dieser Phase werden Testdaten erstellt oder aus der vorherigen Umgebung gegen Geschäftsanforderungen extrahiert. Testdaten können manuell oder mithilfe von Automatisierungstools erstellt werden.
  • Umgebungseinrichtung : In diesem Schritt wird die Testumgebung als Bedarf für Unternehmen oder Anwendungen konfiguriert
  • Leistungsmetriken : Leistungsmetriken repräsentieren die Informationen in Bezug auf die Leistung der Anwendung, des Systems oder der Komponenten

Testphase:

  • API-Tests : Beim API-Test stellen wir sicher, dass die Interaktion zwischen Anwendungen im Blockchain-Ökosystem wie erwartet ist
  • Blocktest : Alle Blöcke im Netzwerk sollten einzeln getestet werden, um eine ordnungsgemäße Zusammenarbeit sicherzustellen.
  • Funktionstests : In Funktionstests bewerten wir die Arbeit verschiedener Funktionsteile der Blockchain (z. B. intelligente Verträge).
  • Leistungstests : Details wie Netzwerklatenz basierend auf Blockgröße, Netzwerkgröße, erwarteter Transaktionsgröße und wie lange eine Abfrage dauert, um die Ausgabe mit dem speziellen Authentifizierungsprotokoll zurückzugeben
  • Sicherheitstests : Auf diese Weise stellen wir sicher, dass die Anwendung anfällig für Angriffe ist und Systeme die Daten schützen können und in der Lage sind, böswillige Angriffe usw. zu verarbeiten.
  • Integrationstests : Beim Integrationstest stellen wir sicher, dass alle Komponenten der Anwendung ordnungsgemäß integriert sind und die Aktionen ordnungsgemäß ausführen
  • Smart Contract Testing : Beim Smart Contract Testing werden detaillierte Funktionstests der Geschäftslogik und des Geschäftsprozesses durchgeführt.

Berichtsphase:

  • Projektzusammenfassungsbericht : Beschreiben Sie die Gesamtübersicht über Projektdetails, Projektdaten, Kosten und Aufgabendetails
  • Testbericht für intelligente Verträge : Dieser Bericht beschreibt die Details der Verarbeitung von intelligenten Verträgen, Daten und Regeln
  • Sicherheitstestbericht : Zeigt anfällige Informationen in einem formellen Dokument für den Kunden und das höhere Management an. Der Bericht enthält das Testdatum, Testdaten und eine Zusammenfassung der gefundenen Sicherheitsanfälligkeiten
  • Leistungstestbericht : Dieser Bericht enthält Details zur Leistung von Anwendungen wie Geschwindigkeit, Skalierbarkeit, Zuverlässigkeit usw.

Schlüsseltesttypen für Blockchain-Anwendungen

Funktionsprüfung

Funktionstests spielen beim Blockchain-Testen eine wichtige Rolle, da sie bei der Bewertung der Geschäftsanforderungen, -prozesse und der Effektivität von Anwendungsfällen hilfreich sind. Nachfolgend sind die Komponenten aufgeführt, die im Rahmen von Funktionstests getestet werden können: 1) Blockgröße und Kettengröße 2) Hinzufügen eines Blocks 3) Datenübertragung

Integrationstests

Blockchain-Anwendungen funktionieren in mehreren Umgebungen. Daher ist es wichtig, systemübergreifende Verbindungen zu testen

Leistungstest:

Es hilft bei der Identifizierung von Hardware- und Software-Engpässen im Voraus. Auf diese Weise können Sie auch die potenziellen Kosten für die Ausführung der Anwendung in der Cloud oder in anderen Umgebungen ermitteln.

Knotentests

Alle verschiedenen Knoten im Netzwerk müssen unabhängig voneinander getestet werden, um eine reibungslose Zusammenarbeit zu gewährleisten.

API-Tests:

Die Anwendungsprogrammierschnittstelle testet die Interaktion zwischen Anwendungen im Blockchain-Ökosystem. API-Tests stellen sicher, dass Anforderungen und Antworten ordnungsgemäß formatiert und ausgeführt werden.

Blockchain-Testwerkzeuge

Hier sind einige wichtige Blockchain-Testtools:

1) Ethereum-Tester:

Es ist eine Open-Source-Testbibliothek, die auf GitHub Repo verfügbar ist. Die verwaltbare API-Unterstützung für verschiedene Testanforderungen ist einfach einzurichten .

2) Ganache:

Es ist früher als Testrpc bekannt und ist die weit verbreitete Bibliothek zum lokalen Testen von Ethereum-Verträgen. Es funktioniert durch eine Art Pseudo-Spinnen bis B lockchain , dass Sie den Zugriff auf Konten erhalten Sie für verwenden können T esting.

3) Hyperledger Composer:

Hyperledger Composer ist ein Open-Source-Tool, mit dem Entwickler Blockchain-Anwendungen erstellen können. Mit diesem Tool können wir hauptsächlich drei Arten von Tests durchführen: interaktive Tests, automatisierte Einheiten- und Systemtests.

Dieser Artikel wurde von Suman Dass verfasst.