Návod na testování blockchainu

Co je Blockchain?

Blockchain je sdílený databázový obchod, který neustále narůstá seznam záznamů, nazývaných bloky. Každý blok obsahuje hash předchozího bloku a časové razítko.

V tomto tutoriálu se naučíte:

Mezi vlastnosti blockchainu patří

  • Decentralizovaný systém: Prospěšné v různých odvětvích, jako jsou finance, nemovitosti atd.
  • Lepší bezpečnost: Používá více uzlů k dokončení a ověření transakcí
  • Pravost: Umožňuje jedinečnému algoritmu zpracovávat data
  • Zvýšená kapacita: Zvyšuje kapacitu celé sítě

Typ blockchainu

Zde jsou tři typy blockchainu:

Blockchain konsorcia:

Přístup a oprávnění prostřednictvím sítě bude mít více organizací. Je to plně decentralizovaný systém

Veřejný blockchain:

Při tomto typu testování blockchainu má každý přístup k síti a může se zúčastnit konsensu. Jeho decentralizovaný systém.

Soukromý blockchain:

Přístup a oprávnění k síti budou mít pouze jednotlivé organizace. Je to částečně decentralizovaný systém.

Veřejné soukromý Konsorcium
Přístup
  • Někdo
  • Jediná organizace
  • Vícenásobná organizace
Účastníci
  • Bezproblémová
  • Anonymní
  • Povoleno
  • Známé identity
  • Povoleno
  • Známé identity
Bezpečnost
  • Mechanismus konsensu
  • Proof of Work/Proof of Stack
  • Předem schválení účastníci
  • Hlasování/konsensus více stran
  • Předem schválení účastníci
  • Hlasování/konsensus více stran
Rychlost transakce
  • Pomalu
  • Lehčí a rychlejší
  • Lehčí a rychlejší

Hlavní součásti blockchainu

Aplikace uzlu

Každý uzel musí nainstalovat a spustit počítačovou aplikaci definitivní pro ekosystém, do kterého se chce zapojit

Společná Ledger

Uvnitř aplikace uzlu je spravována datová struktura (hlavní kniha). Obsah ekosystému lze zobrazit, jakmile je aplikace uzlu ve spuštěném stavu.

Konzenzní algoritmus

Algoritmus konsenzu je implementován jako součást aplikace uzlu, která poskytuje „pravidla hry“ pro to, jak ekosystém dospěje k jedinému pohledu na účetní knihu.

Virtuální stroj

Abstrakce stroje ovládaného instrukcemi a Implementováno jako součást uzlové aplikace, kterou provozuje každý účastník ekosystému.

Jak funguje blockchain?

Výhody blockchainu

  • Úspora času: Blockchain zkracuje dobu transakce ze dnů na minuty. Řešení Transaction je rychlejší, protože nevyžaduje ověření centrálním orgánem.
  • Cenově výhodné: Blockchain transakce méně manipulace. Účastníci si mohou přímo vyměnit cenné předměty. Blockchain odstraňuje duplicitní úsilí, protože účastníci mají přístup ke sdílené účetní knize.
  • Zvyšte bezpečnost: Bezpečnostní ochrana blockchainu proti podvodům a kyberzločinu.

Výzvy v testování blockchainu

  • Pochopení technologie– Blockchain je nová technologie a pochopení technologie se znalostí domény je velmi důležité při testování aplikace Blockchain
  • Nedostatek nástrojů pro testování blockchainu– Testování aplikací založených na blockchainu je především o nástrojích. Výběr správného nástroje podle aplikace je jedním z důležitých rozhodnutí.
  • Definování testovací strategie– Jako každá aplikace navrhování testovací strategie pro aplikaci Blockchain. Je to jedna z největších výzev, protože strategie testování vyžaduje hluboké znalosti a pochopení technologie a aplikace.
  • Velikost bloku a řetězu– Spolu se standardním testováním, nástroji a zavedenými osvědčenými postupy je důležité také testování velikosti bloku a velikosti řetězce. Blockchainové aplikace mohou selhat bez řádného ověření velikosti bloku a velikosti řetězce.
  • Testování integrace– Jelikož je v aplikaci Blockchain zapojeno více komponent, integrační testování by mělo být prováděno správně a často, aby se ověřilo, že všechny komponenty jsou správně integrovány, aby se předešlo jakémukoli selhání.
  • Výkon a zatížení-Neschopnost testovat výkon a zátěžové testování poskytuje malý nebo žádný přehled o tom, jak si blockchainová aplikace vede jak v produkci, tak i při specifickém pracovním zatížení a síťových podmínkách.
  • Bezpečnost– Zabezpečení dat by mělo být v aplikaci Blockchain nejdůležitější. Blockchain může být součástí různých sektorů, jako je zdravotnictví, finance atd. jakýkoli typ škodlivých útoků může ovlivnit aplikaci Blockchain

Fáze testování blockchainu

Iniciační fáze:

  • Porozumění blockchainu Architecture: V této fázi rozumíme a analyzujeme obchodní a funkční požadavky. Popisuje chování aplikace a způsob interakce uživatele s aplikací
  • Kompletní návrh strategie testování: Během této fáze popisujeme testovací přístup pro testování aplikace. To by mělo být provedeno podrobně, aby byl plně pokryt každý cíl.

Fáze návrhu:

  • Vytvoření testovacího případu: V této fázi tým QA napíše testovací případy se správnými kroky. Tyto testovací případy jsou přezkoumány Business Analyst (BA).
  • Vytváření testovacích dat: V této fázi jsou testovací data vytvořena nebo extrahována z předchozího prostředí podle obchodních požadavků. Testovací data lze vytvářet ručně nebo pomocí automatizačních nástrojů.
  • Nastavení prostředí: V tomto kroku je testovací prostředí nakonfigurováno jako potřeba pro Business nebo aplikaci
  • Výkonnostní metriky: Metriky výkonu představují informace o výkonu aplikace, systému nebo komponent

Testovací fáze:

  • Testování API: Při testování API zajišťujeme, aby interakce mezi aplikacemi v blockchainovém ekosystému probíhala podle očekávání
  • Blokové testování: Všechny bloky v síti by měly být testovány jednotlivě, aby byla zajištěna správná spolupráce.
  • Funkční testování: Ve Funkčním testování hodnotíme práci různých funkčních částí Blockchainu (např. chytré kontrakty).
  • Testování výkonu: Podrobnosti, jako je latence sítě na základě velikosti bloku, velikosti sítě, očekávané velikosti transakce a jak dlouho trvá dotaz, než vrátí výstup pomocí specializovaného ověřovacího protokolu
  • Testování bezpečnosti: Tímto zajišťujeme, že aplikace je zranitelná vůči útokům a systémy mohou chránit data a jsou schopny zvládnout škodlivé útoky atd.
  • Testování integrace: Při testování integrace zajišťujeme, aby byly všechny součásti aplikace správně integrovány a aby byly náležitě prováděny akce
  • Testování chytrých smluv: Testování Smart Contract je o provedení podrobného funkčního testování obchodní logiky a procesu.

Fáze přehledu:

  • Souhrnná zpráva projektu: Popište celkový přehled podrobností o projektu, data projektu, náklady a podrobnosti o úkolu
  • Zpráva o testování inteligentní smlouvy: Tato sestava popisuje podrobnosti o Smart kontraktu, zpracování dat a pravidel
  • Zpráva o testování zabezpečení: Zobrazuje zranitelné informace ve formálním dokumentu pro klienta a vyšší management. Zpráva obsahuje datum testování, testovací data a souhrn nalezených zranitelností
  • Zpráva o testování výkonu: Tato zpráva zobrazuje podrobnosti týkající se výkonu aplikací, jako je rychlost, škálovatelnost, spolehlivost atd.

Klíčové typy testování na blockchainové aplikaci

Funkční testování

Funkční testování hraje důležitou roli v blockchainovém testování, protože pomáhá při hodnocení obchodních požadavků, procesů a efektivity případů použití. Níže jsou uvedeny komponenty, které lze testovat v rámci funkčního testování: 1) Velikost bloku a velikost řetězce 2) Přidání bloku 3) Data Transmission

Testování integrace

Blockchain aplikace funguje ve více prostředích. Je tedy důležité otestovat mezisystémová spojení

Testování výkonu:

Pomáhá při identifikaci hardwarových a softwarových úzkých míst předem. To vám také může pomoci zjistit potenciální náklady na provoz aplikace v cloudu nebo jiných prostředích.

Testování uzlů

Všechny různé uzly v síti musí být testovány nezávisle, aby byla zajištěna hladká spolupráce.

Testování API:

Application Programming Interface testuje interakci mezi aplikacemi v blockchainovém ekosystému. Testování API zajišťuje, že požadavky a odpovědi jsou správně naformátovány a provozovány.

Nástroje pro testování blockchainu

Zde jsou některé nástroje pro testování importu Blockchain:

1)Ethereum Tester:

Jedná se o open-source testovací knihovnu dostupnou na GitHubu. Snadno se nastavuje se spravovatelnou podporou API pro různé požadavky na testování.

2) Ganache:

To je dříve známé jako Testrpc, je široce používaná knihovna pro testování Ethereum smlouvy lokálně. Funguje to tak, že se točí jakousi maketou Blockchain, který vám umožní přístup k účtům, které můžete použít Testing.

3) Hyperledger Composer:

Hyperledger Composer je open-source nástroj, který pomáhá vývojářům vytvářet blockchainové aplikace. Pomocí tohoto nástroje můžeme provádět především tři typy testování: interaktivní testování, automatizované jednotky a testování systému. Pokud se chcete naučit, jak vytvářet blockchainové aplikace a pracovat s nástroji, jako je Hyperledger Composer, podívejte se na tuto příručku na jak se stát vývojářem blockchainu nastartovat svou cestu v tomto vzrušujícím oboru.