Zelfstudie over blockchain-testen

Inhoudsopgave:

Anonim

Wat is blockchain?

Blockchain is een gedeelde databaseopslag die continu groeit met records, blokken genaamd. Elk blok bevat een hash van het vorige blok en een tijdstempel.

In deze tutorial leer je:

  • Wat is blockchain?
  • Kenmerken van Blockchain omvatten
  • Type blockchain
  • Hoofdcomponenten van een blockchain
  • Voordelen van Blockchain
  • Uitdagingen bij het testen van blockchain
  • Fasen van blockchain-testen 7
  • Belangrijkste testtypen op Blockchain-applicatie 10
  • Blockchain-testtools 10

Kenmerken van Blockchain omvatten

  • Gedecentraliseerd systeem : gunstig in verschillende industrieën zoals financiën, onroerend goed enz.
  • Betere beveiliging : gebruikt meerdere knooppunten om transacties te voltooien en te verifiëren
  • Authenticiteit : hiermee kan het unieke algoritme gegevens verwerken
  • Verhoogde capaciteit : vergroot de capaciteit van het hele netwerk

Type blockchain

Hier zijn drie soorten Blockchain:

Consortium Blockchain:

Meerdere organisaties hebben toegang tot en autoriteit over het netwerk. Het is volledig gedecentraliseerd systeem

Openbare blockchain:

Bij dit type blockchain-testen heeft iedereen toegang tot het netwerk en kan hij deelnemen aan consensus. Het gedecentraliseerde systeem.

Privé blockchain:

Alleen afzonderlijke organisaties hebben toegang en autoriteit over het netwerk. Het is een gedeeltelijk gedecentraliseerd systeem.

Openbaar Privaat Consortium
Toegang
  • Iedereen
  • Eén organisatie
  • Meerdere organisaties
Deelnemers
  • Toestemmingloos
  • Anoniem
  • Toegestaan
  • Bekende identiteiten
  • Toegestaan
  • Bekende identiteiten
Veiligheid
  • Consensusmechanisme
  • Bewijs van werk / bewijs van stapel
  • Vooraf goedgekeurde deelnemers
  • Stemmen / consensus met meerdere partijen
  • Vooraf goedgekeurde deelnemers
  • Stemmen / consensus met meerdere partijen
Transactiesnelheid
  • Langzaam
  • Lichter en sneller
  • Lichter en sneller

Hoofdcomponenten van een blockchain

Node-applicatie

Elke Node moet een computertoepassing installeren en uitvoeren die definitief is voor het ecosysteem waaraan ze willen deelnemen

Gedeeld grootboek

Een datastructuur (ledger) wordt beheerd binnen de node-applicatie. De inhoud van het ecosysteem kan worden bekeken zodra de knooppunttoepassing actief is.

Consensus-algoritme

Het consensusalgoritme wordt geïmplementeerd als onderdeel van de knooppunttoepassing en biedt de 'spelregels' voor hoe het ecosysteem tot een enkele weergave van het grootboek zal komen.

Virtuele machine

Onttrekking van een machine die wordt bediend met instructies en geïmplementeerd als onderdeel van de knooppunttoepassing die elke deelnemer in het ecosysteem uitvoert.

Hoe werkt Blockchain?

Voordelen van Blockchain

  • Tijdbesparend : Blockchain verkort de transactietijd van dagen naar minuten. De transactieoplossing is sneller omdat er geen verificatie door een centrale autoriteit vereist is.
  • Kosteneffectief : Blockchain-transacties minder afhandeling. Deelnemers kunnen rechtstreeks waardeartikelen ruilen. Blockchain voorkomt dubbel werk omdat deelnemers toegang hebben tot een gedeeld grootboek.
  • Verhoog de beveiliging : de beveiliging van Blockchain tegen fraude en cybercriminaliteit.

Uitdagingen bij het testen van blockchain

  • De technologie begrijpen - Blockchain is een nieuwe technologie en het begrijpen van de technologie met domeinkennis is erg belangrijk bij het testen van Blockchain-applicaties
  • Gebrek aan Blockchain -testtools - Bij het testen van Blockchain-gebaseerde applicaties draait alles om tools. Het selecteren van de juiste tool per toepassing is een van de belangrijke beslissingen.
  • Teststrategie definiëren - Zoals elke applicatie, teststrategie ontwerpen voor Blockchain-applicatie. Het is een van de grootste uitdagingen, aangezien teststrategie diepgaande kennis en begrip van de technologie en toepassing vereist.
  • Blok- en kettingmaat - Naast standaardtesten, tools en de best practices die op hun plaats zijn, is testen op blokmaat en kettingmaat ook belangrijk. Blockchain-applicaties kunnen mislukken zonder de juiste validatie van blokgrootte en kettinggrootte.
  • Integratietesten - Aangezien er meerdere componenten betrokken zijn bij de Blockchain-applicatie, moeten integratietests correct en regelmatig worden uitgevoerd om te testen of alle componenten correct zijn geïntegreerd om storingen te voorkomen.
  • Prestaties en belasting - Het niet testen op prestatie- en belastingtests geeft weinig of geen inzicht in hoe de Blockchain-applicatie presteert in zowel productie als onder specifieke workloads en netwerkomstandigheden.
  • Beveiliging - Het beveiligen van de gegevens zou het belangrijkste moeten zijn in de Blockchain-applicatie. Blockchain kan deel uitmaken van verschillende sectoren, zoals gezondheid, financiën, enz. Elk type kwaadwillende aanval kan de Blockchain-applicatie beïnvloeden

Fasen van blockchain-testen

Inrichtingsfase:

  • Blockchain-architectuur begrijpen : in deze fase begrijpen en analyseren we de zakelijke en functionele vereisten. Dit beschrijft het gedrag van de applicatie en hoe de gebruiker met de applicatie zal omgaan
  • Ontwerpen van een volledige teststrategie : tijdens deze fase beschrijven we de testaanpak voor het testen van een applicatie. Dit moet in detail worden gedaan, zodat elk doel volledig wordt afgedekt.

Ontwerpfase:

  • Testcase maken : in deze fase schrijft het QA-team de testcases met de juiste stappen. Deze Testcases worden beoordeeld door Business Analist (BA).
  • Testgegevens maken : in deze fase worden testgegevens gemaakt of geëxtraheerd uit de vorige omgeving tegen zakelijke vereisten. Testgegevens kunnen handmatig of met behulp van automatiseringstools worden aangemaakt.
  • Omgeving instellen : in deze stap wordt de testomgeving geconfigureerd als de behoefte aan Business of applicatie
  • Performance Metrics : Performance Metrics vertegenwoordigen de informatie in termen van prestaties van de applicatie, het systeem of de componenten

Testfase:

  • API-testen : bij API-testen zorgen we ervoor dat de interactie tussen applicaties in het blockchain-ecosysteem verloopt zoals verwacht
  • Blokkeertesten : alle blokken op het netwerk moeten afzonderlijk worden getest om een ​​goede samenwerking te garanderen.
  • Functioneel testen : bij Functioneel testen evalueren we het werk van verschillende functionele delen van de Blockchain (bijvoorbeeld slimme contracten).
  • Prestatietests : details zoals netwerklatentie op basis van blokgrootte, netwerkgrootte, verwachte transactiegrootte en hoelang het duurt voordat een query de uitvoer retourneert met het gespecialiseerde authenticatieprotocol
  • Beveiligingstests : hierbij zorgen we ervoor dat de applicatie kwetsbaar is voor aanvallen en dat systemen de gegevens kunnen beschermen en in staat zijn om kwaadwillende aanvallen, enz.
  • Integratietests : bij integratietests zorgen we ervoor dat alle componenten van de applicatie correct zijn geïntegreerd en de acties op de juiste manier uitvoeren
  • Smart Contract Testing : Smart Contract testing gaat over het uitvoeren van gedetailleerde functionele testen van bedrijfslogica en processen.

Rapportfase:

  • Projectoverzichtsrapport : Beschrijf het algemene overzicht van projectdetails, projectdatums, kosten en taakdetails
  • Smart Contract Testing Report : dit rapport beschrijft de details van de verwerking van smartcontracten, gegevens en regels
  • Security Testing Report : toont kwetsbare informatie in een formeel document voor de klant en hoger management. Het rapport bevat de testdatum, testgegevens en een samenvatting van de gevonden kwetsbaarheden
  • prestatietestrapport : dit rapport toont de details met betrekking tot de prestaties van applicaties zoals snelheid, schaalbaarheid, betrouwbaarheid, etc.

Sleuteltesttypen op Blockchain-applicatie

Functioneel testen

Functioneel testen speelt een belangrijke rol bij blockchain-testen, omdat het helpt bij het evalueren van zakelijke vereisten, processen en effectiviteit van use-cases. Hieronder staan ​​de componenten die kunnen worden getest als onderdeel van functionele tests: 1) Blokgrootte en kettinggrootte 2) Een blok toevoegen 3) Datatransmissie

Integratietesten

Blockchain-applicaties werken in meerdere omgevingen. Het is dus belangrijk om inter-systeemverbindingen te testen

Prestatietesten:

Het helpt bij het vooraf identificeren van knelpunten in hardware en software. Dit kan u ook helpen de mogelijke kosten te berekenen van het uitvoeren van de applicatie in de cloud of andere omgevingen.

Knooppunt testen

Alle verschillende knooppunten op het netwerk moeten onafhankelijk worden getest om een ​​soepele samenwerking te garanderen.

API-testen:

Application Programming Interface test de interactie tussen applicaties in het blockchain-ecosysteem. API-tests zorgen ervoor dat verzoeken en antwoorden correct worden opgemaakt en werken.

Blockchain-testtools

Hier zijn enkele tools voor het importeren van Blockchain-testen:

1) Ethereum-tester:

Het is een open-source testbibliotheek die beschikbaar is op de GitHub-opslagplaats. Het is eenvoudig in te stellen met beheersbare API-ondersteuning voor verschillende testvereisten.

2) Ganache:

Het was eerder bekend als Testrpc , is de veelgebruikte bibliotheek voor het lokaal testen van Ethereum-contracten. Het werkt door het draaien van een soort mock B lockchain die u toegang geeft tot accounts die u kunt gebruiken voor T esting.

3) Hyperledger-componist:

Hyperledger Composer is een open-source tool waarmee ontwikkelaars blockchain-applicaties kunnen bouwen. Met behulp van deze tool kunnen we hoofdzakelijk drie soorten testen uitvoeren: interactief testen, geautomatiseerd testen en systeemtesten.

Dit artikel is bijgedragen door Suman Dass.