Handledning för blockchain-testning

Vad är Blockchain?

Blockchain är en delad databas som ständigt växer lista med poster, kallade block. Varje block innehåller en hash av föregående block och en tidsstämpel.

I den här handledningen kommer du att lära dig:

Funktioner i Blockchain inkluderar

  • Decentraliserat system: Fördelbart inom olika branscher som finans, fastigheter etc.
  • Bättre säkerhet: Använder flera noder för att slutföra och autentisera transaktioner
  • Autencitet: Tillåter den unika algoritmen att bearbeta data
  • Ökad kapacitet: Ökar kapaciteten för hela nätverket

Typ av blockkedja

Här är tre typer av blockchain:

Konsortium Blockchain:

Flera organisationer kommer att ha tillgång till och auktoritet över nätverket. Det är ett helt decentraliserat system

Offentlig blockkedja:

I den här typen av blockkedjetestning har alla tillgång till nätverket och kan ta del av Consensus. Dess decentraliserade system.

Privat blockkedja:

Endast enskilda organisationer kommer att ha åtkomst och auktoritet över nätverket. Det är ett delvis decentraliserat system.

offentliga Privat Consortium
Tillgång
  • Någon
  • Enskild organisation
  • Flera organisation
Deltagare
  • Permissionless
  • Anonym
  • Tillåten
  • Kända identiteter
  • Tillåten
  • Kända identiteter
Säkerhet
  • Konsensusmekanism
  • Bevis på arbete/bevis på stack
  • Förhandsgodkända deltagare
  • Röstning/flerpartikonsensus
  • Förhandsgodkända deltagare
  • Röstning/flerpartikonsensus
Transaktionshastighet
  • Sakta
  • Lättare och snabbare
  • Lättare och snabbare

Huvudkomponenterna i en blockchain

Nodapplikation

Varje nod måste installera och köra en datorapplikation som är definitiv för det ekosystem de vill delta i

Delade Ledger

En datastruktur (reskontra) hanteras inuti nodapplikationen. Innehållet för ekosystemet kan ses när nodapplikationen körs.

Konsensusalgoritm

Konsensusalgoritmen implementeras som en del av nodapplikationen och tillhandahåller "spelets regler" för hur ekosystemet kommer fram till en enda vy av redovisningen.

Virtuell maskin

Abstraktion av en maskin som drivs med instruktioner och implementeras som en del av nodapplikationen som varje deltagare i ekosystemet kör.

Hur fungerar Blockchain?

Fördelar med Blockchain

  • Tids sparande: Blockchain minskar transaktionstiden från dagar till minuter. Transaktionslösningen är snabbare eftersom den inte kräver verifiering av en central myndighet.
  • Kostnadseffektiv: Blockchain-transaktioner mindre hantering. Deltagarna kan byta värdeföremål direkt. Blockchain tar bort dubbelarbete eftersom deltagarna har tillgång till en delad reskontra.
  • Öka säkerheten: Blockchains säkerhetsskydd mot bedrägerier och cyberbrottslighet.

Utmaningar i Blockchain Testing

  • Förstå tekniken– Blockchain är en ny teknik och att förstå tekniken med domänkunskap är mycket viktigt för att testa Blockchain Application
  • Brist på Blockchain-testverktyg– Blockchain-baserad applikationstestning handlar om verktyg. Att välja rätt verktyg enligt ansökan är ett av de viktiga besluten.
  • Definiera teststrategi– Som vilken applikation som helst, designa Test Strategy för Blockchain-applikation. Det är en av de största utmaningarna eftersom Test Strategy kräver djupgående kunskap och förståelse för tekniken och tillämpningen.
  • Block och kedjestorlek– Tillsammans med standardtestning, verktyg och bästa praxis på plats, är testning av blockstorlek och kedjestorlek också viktigt. Blockchain-applikationer kan misslyckas utan korrekt validering av blockstorlek och kedjestorlek.
  • Integrationstestning– Eftersom det finns flera komponenter involverade i Blockchain-applikationen, bör integrationstestning göras korrekt och ofta för att testa att alla komponenter är korrekt integrerade för att undvika eventuella fel.
  • Prestanda och belastning-Att misslyckas med att testa prestanda och belastningstestning ger liten eller ingen insikt i hur Blockchain-applikationen presterar i såväl produktion som under specifika arbetsbelastningar och nätverksförhållanden.
  • Säkerhet– Att säkra data bör vara det viktigaste i Blockchain-applikationen. Blockchain kan vara en del av olika sektorer som hälsa, finans etc. alla typer av skadliga attacker kan påverka Blockchain-applikationen

Faser av blockkedjetestning

Initieringsfas:

  • Förstå Blockchain Architecture: I denna fas förstår och analyserar vi affärs- och funktionskraven. Detta beskriver applikationens beteende och hur användaren kommer att interagera med applikationen
  • Utformning av fullständig teststrategi: Under denna fas beskriver vi testmetoden för att testa en applikation. Detta bör göras i detalj så att alla mål är helt täckta.

Designfas:

  • Skapa testfall: I denna fas skriver QA-teamet testfallen med korrekta steg. Dessa testfall granskas av Business Analyst(BA).
  • Testa dataskapande: I denna fas skapas eller extraheras testdata från den tidigare miljön mot affärskrav. Testdata kan skapas manuellt eller med hjälp av automationsverktyg.
  • Miljöinställning: I det här steget konfigureras testmiljön som behov av Business eller applikation
  • Prestandamätningar: Prestandamått representerar informationen när det gäller applikationens, systemets eller komponenternas prestanda

Testfas:

  • API-testning: Vid API-testning säkerställer vi att interaktionen mellan applikationer i blockkedjeekosystemet är som förväntat
  • Blocktestning: Alla block i nätverket bör testas individuellt för att säkerställa korrekt samarbete.
  • funktions~~POS=TRUNC: I funktionstestning utvärderar vi arbetet i olika funktionella delar av blockkedjan (t.ex. smarta kontrakt).
  • Prestandatester: Detaljer som nätverkslatens baserad på blockstorlek, nätverksstorlek, förväntad transaktionsstorlek och hur lång tid en fråga tar att returnera utdata med det specialiserade autentiseringsprotokollet
  • Säkerhetstestning: I detta säkerställer vi att applikationen är sårbar för attacker och Systems kan skydda data och kan hantera skadliga attacker, etc.
  • Integrationstestning: Vid integrationstestning säkerställer vi att alla komponenter i applikationen är korrekt integrerade och utför åtgärderna på rätt sätt
  • Smart kontraktstestning: Smart Contract-testning handlar om att utföra detaljerade funktionstester av affärslogik och process.

Rapportfas:

  • Projektsammanfattningsrapport: Beskriv den övergripande översikten av projektdetaljer, projektdatum, kostnad och uppgiftsdetaljer
  • Smart kontraktstestningsrapport: Den här rapporten beskriver detaljerna för bearbetning av smarta kontrakt, data och regler
  • Säkerhetstestningsrapport: Visar sårbar information i ett formellt dokument för klienten och högre ledning. Rapporten innehåller testdatum, testdata och sammanfattning av de upptäckta sårbarheterna
  • prestationstestningsrapport: Den här rapporten visar detaljer om prestanda för applikationer som hastighet, skalbarhet, tillförlitlighet, etc.

Nyckeltesttyper på blockkedjeapplikationer

funktions~~POS=TRUNC

Funktionstestning spelar en viktig roll i Blockchain-testning eftersom det hjälper till att utvärdera affärskrav, processer och effektiviteten av användningsfall. Nedan är de komponenter som kan testas som en del av funktionstestning: 1) Blockstorlek och kedjestorlek 2) Lägga till ett block 3) Data Transmission

Integrationstestning

Blockchain-applikationer fungerar i flera miljöer. Så det är viktigt att testa anslutningar mellan system

Prestandatester:

Det hjälper till att identifiera hårdvaru- och mjukvaruflaskhalsar i förväg. Detta kan också hjälpa dig att räkna ut de potentiella kostnaderna för att köra applikationen i molnet eller andra miljöer.

Nodtestning

Alla olika noder i nätverket måste testas oberoende för att säkerställa smidigt samarbete.

API-testning:

Application Programming Interface testar interaktionen mellan applikationer i blockkedjeekosystemet. API-testning säkerställer att förfrågningar och svar formateras och fungerar korrekt.

Blockchain testverktyg

Här är några importverktyg för Blockchain-testning:

1)Ethereum Testare:

Det är ett testbibliotek med öppen källkod tillgängligt på GitHub-repo. Det är lätt att ställa in upp med hanterbart API-stöd för olika testkrav.

2) Ganache:

Det är tidigare känt som Testrpc, är det flitigt använda biblioteket för testning Ethereum avtal lokalt. Det fungerar genom att snurra upp ett slags hån Blåskedja som ger dig tillgång till konton du kan använda för Testing.

3) Hyperledger Composer:

Hyperledger Composer är ett verktyg med öppen källkod som hjälper utvecklare att bygga blockchain-applikationer. Med detta verktyg kan vi utföra huvudsakligen tre typer av testning: interaktiv testning, automatiserad enhet och systemtestning. Om du är intresserad av att lära dig hur man bygger blockchain-applikationer och arbetar med verktyg som Hyperledger Composer, kolla in den här guiden på hur man blir en blockchain-utvecklare för att kickstarta din resa i detta spännande område.