Smart Contracts testen

Dec 22 2022
Wie testet man intelligente Verträge und warum tut man das überhaupt? Der grundlegende Schritt bei der Entwicklung intelligenter Verträge für Ihre web3-Lösungen besteht darin, sie zu testen, bevor Sie sie überhaupt im Testnetz bereitstellen. Das Ausführen von Tests, die das implementierte Feature überprüfen, ist entscheidend! Agenda: „Das Testen von Smart Contracts bedeutet, eine detaillierte Analyse und Bewertung eines Smart Contracts durchzuführen, um die Qualität seines Quellcodes während des Entwicklungszyklus zu bewerten.

Wie testet man intelligente Verträge und warum tut man das überhaupt?

Der grundlegende Schritt bei der Entwicklung intelligenter Verträge für Ihre web3-Lösungen besteht darin, sie zu testen, bevor Sie sie überhaupt im Testnetz bereitstellen. Das Ausführen von Tests, die das implementierte Feature überprüfen, ist entscheidend!

Agenda:

  • Einleitung,
  • Was ist es?
  • Was es macht?
  • Werkzeug,
  • Fazit.

„Das Testen von Smart Contracts bedeutet die Durchführung einer detaillierten Analyse und Bewertung eines Smart Contracts, um die Qualität seines Quellcodes während des Entwicklungszyklus zu bewerten.“

In einfachen und praktischen Worten: Testen bedeutet, einfache Varianten der Verwendung der Funktionen zu schreiben und zu erwarten, dass die Ergebnisse den vordefinierten Anweisungen entsprechen.

Einfaches Beispiel: Smart Contract überträgt Token von Adresse zu Adresse und das ist alles.

Es ist erforderlich, einen Test wie diesen zu schreiben:

  • zwei Wallets generieren (zum Beispiel Alice & Bob),
  • Führen Sie die Übertragungsfunktion von Alice zu Bob mit einem Vermögen von 1 ETH aus.
  • Erwarten Sie, dass Bob Wallet den Wert um 1 ETH erhöht,
  • Erwarten Sie, dass die Alice-Wallet um 1 ETH sinkt.
  • Überprüfen Sie, ob Grenzfälle ordnungsgemäß gehandhabt werden, z. B. der Versuch, mehr Geld zu überweisen, das ihm gehört, usw.

Was es macht?

„Das Testen eines Smart Contracts erleichtert das Identifizieren von Fehlern und Schwachstellen und verringert die Wahrscheinlichkeit von Softwarefehlern, die zu kostspieligen Exploits führen könnten.“

Gemäß obigem Beispiel mit Alice und Bob prüft das Testen implementierte Features vor dem weiteren Einsatz. Sie sollten Fehler für Bugs werfen und es ermöglichen, diese leicht zu identifizieren, wenn Tests richtig beschrieben sind.

Definitionsquellen:

Werkzeug

Smart Contracts werden hauptsächlich in Solidity geschrieben, aber das Testen wird mit JavaScript durchgeführt. Verschiedene Plattformen und Lösungen bieten eine einfache Architektur zum Testen, eine davon ist Truffle.

Mehr über Trüffel:

Truffle erstellt eine richtige Ordnerstruktur, die für jedes Projekt gleich ist, kurz gesagt:

  • es gibt eine Vertragsmappe, in der Verträge abgelegt werden,
  • und es gibt einen Testordner, der Tests speichert.

mocha.js:

chai.js-Dokumente:

In einer Testdatei werden Verträge angebahnt und dann verschiedene Konditionen geprüft.

Tests werden mit dem CLI-Befehl von der Terminalebene ausgeführt und es ist alles.

Um den Vertrag lokal bereitzustellen und generierte Wallets mit etwas Geld zu implementieren, ist Ganache aus dem Truffle Toolkit äußerst hilfreich. Es betreibt nur eine lokale Blockchain und erstellt Wallets mit einem Guthaben von 100 ETH.

Mehr über Ganache:

Waffel

Es ist ein weiteres Smart-Contract-Testtool, das von ETHWorks entwickelt wurde.

„Damit können Sie neue Smart Contracts erstellen und diese mit Mocha und Chai testen. Viele Menschen wählen Waffel statt Trüffel, da es einfacher und leichter zu erlernen ist.“

Mehr in:

Fazit

Das Testen von Smart Contracts ist eine leistungsstarke und wirklich benötigte Fähigkeit, die den Verlust einer großen Menge an Vermögenswerten verhindern kann. Blockchain ist unveränderlich, wenn der Vertrag mit Fehlern bereitgestellt wird, verliert er im glücklichen Szenario nur einige Funktionen. Der schlimmste Fall ist, wenn einige Benutzer Geld verlieren.

Magst du das? Folgen Sie repo mit allen Themen aus der Challenge: