Testveiledning for blokkjede
Hva er Blockchain?
Blockchain er en delt databasebutikk som stadig øker listen over poster, kalt blokker. Hver blokk inneholder en hash av forrige blokk og et tidsstempel.
I denne opplæringen lærer du:
- Hva er Blockchain?
- Funksjoner av Blockchain inkluderer
- Type blokkjede
- Hovedkomponenter i en blokkjede
- Fordeler med Blockchain
- Utfordringer i blokkjedetesting
- Faser av blokkjedetesting 7
- Nøkkeltestingstyper på blokkjedeapplikasjon 10
- Blockchain-testverktøy 10
Funksjoner av Blockchain inkluderer
- Desentralisert system: Fordelaktig i ulike bransjer som finans, eiendom osv.
- Bedre sikkerhet: Bruker flere noder for å fullføre og autentisere transaksjoner
- Autentisitet: Lar den unike algoritmen behandle data
- Økt kapasitet: Øker kapasiteten til hele nettverket
Type blokkjede
Her er tre typer Blockchain:
Konsortium Blockchain:
Flere organisasjoner vil ha tilgang og autoritet over nettverket. Det er et fullstendig desentralisert system
Offentlig blokkjede:
I denne typen blokkjedetesting har alle tilgang til nettverket og kan ta del i Consensus. Dets desentraliserte system.
Privat blokkjede:
Bare enkeltorganisasjoner vil ha tilgang og autoritet over nettverket. Det er et delvis desentralisert system.
offentlig | Privat | Consortium | |
---|---|---|---|
Adgang |
|
|
|
Deltakere |
|
|
|
Trygghet |
|
|
|
Transaksjonshastighet |
|
|
|
Hovedkomponenter i en blokkjede
Nodeapplikasjon
Hver node må installere og kjøre en dataapplikasjon som er definitiv for økosystemet de ønsker å delta i
delt Ledger
En datastruktur (reskontro) administreres inne i nodeapplikasjonen. Innhold for økosystemet kan sees når nodeapplikasjonen er i kjørende tilstand.
Konsensusalgoritme
Konsensusalgoritmen er implementert som en del av nodeapplikasjonen, og gir "spillereglene" for hvordan økosystemet kommer til en enkelt visning av hovedboken.
Virtuell maskin
Abstraksjon av en maskin operert med instruksjoner og implementert som en del av nodeapplikasjonen som hver deltaker i økosystemet kjører.
Hvordan fungerer blockchain?
Fordeler med Blockchain
- Tidssparende: Blockchain reduserer transaksjonstiden fra dager til minutter. Transaksjonsløsningen er raskere fordi den ikke krever verifikasjon av en sentral myndighet.
- Kostnadseffektiv: Blockchain-transaksjoner mindre håndtering. Deltakerne kan bytte verdigjenstander direkte. Blockchain fjerner duplisering av innsats fordi deltakerne har tilgang til en delt hovedbok.
- Øk sikkerheten: Blockchains sikkerhetsbeskyttelse mot svindel og nettkriminalitet.
Utfordringer i blokkjedetesting
- Forstå teknologien– Blockchain er en ny teknologi, og å forstå teknologien med domenekunnskap er veldig viktig for å teste Blockchain Application
- Mangel på blokkjedetestverktøy– Blockchain-basert applikasjonstesting handler om verktøy. Å velge riktig verktøy i henhold til søknaden er en av de viktige avgjørelsene.
- Definere teststrategi– Som enhver applikasjon, designe Test Strategy for Blockchain-applikasjon. Det er en av de største utfordringene siden Test Strategy krever inngående kunnskap og forståelse av teknologien og applikasjonen.
- Blokk- og kjedestørrelse– Sammen med standard testing, verktøy og beste praksis på plass, er testing for blokkstørrelse og kjedestørrelse også viktig. Blokkjedeapplikasjoner kan mislykkes uten riktig validering av blokkstørrelse og kjedestørrelse.
- Integrasjonstesting– Siden det er flere komponenter involvert i Blockchain-applikasjonen, bør integrasjonstesting gjøres riktig og ofte for å teste at alle komponentene er riktig integrert for å unngå feil.
- Ytelse og belastning– Å unnlate å teste for ytelse og belastningstesting gir liten eller ingen innsikt i hvordan Blockchain-applikasjonen presterer både i produksjon og under spesifikke arbeidsbelastninger og nettverksforhold.
- Trygghet– Sikring av data bør være det viktigste i Blockchain-applikasjonen. Blockchain kan være en del av ulike sektorer som helse, finans osv. alle typer ondsinnede angrep kan påvirke Blockchain-applikasjonen
Faser av blokkjedetesting
Startfase:
- Forstå Blockchain Architecture: I denne fasen forstår og analyserer vi forretnings- og funksjonskravene. Dette beskriver oppførselen til applikasjonen og hvordan brukeren vil samhandle med applikasjonen
- Design av full teststrategi: I løpet av denne fasen beskriver vi testmetoden for å teste en applikasjon. Dette bør gjøres i detalj slik at hvert mål er fullt dekket.
Designfase:
- Oppretting av testcase: I denne fasen skriver QA-teamet testsakene med de riktige trinnene. Disse testsakene blir vurdert av Business Analyst(BA).
- Test dataoppretting: I denne fasen opprettes eller trekkes testdata ut fra det forrige miljøet mot forretningskrav. Testdata kan opprettes manuelt eller ved hjelp av automatiseringsverktøy.
- Miljøoppsett: I dette trinnet er testmiljøet konfigurert som behov for Business eller applikasjon
- Ytelsesmålinger: Ytelsesmålinger representerer informasjonen når det gjelder ytelsen til applikasjonen, systemet eller komponentene
Testfase:
- API-testing: I API-testing sikrer vi at interaksjonen mellom applikasjoner i blokkjedeøkosystemet er som forventet
- Blokktesting: Alle blokkene på nettverket bør testes individuelt for å sikre riktig samarbeid.
- Funksjonell testing: I funksjonell testing evaluerer vi arbeidet til ulike funksjonelle deler av blokkjeden (f.eks. smarte kontrakter).
- Ytelsestesting: Detaljer som nettverksforsinkelse basert på blokkstørrelse, nettverksstørrelse, forventet transaksjonsstørrelse og hvor lang tid en spørring tar å returnere utdata med den spesialiserte autentiseringsprotokollen
- Sikkerhetstesting: I dette sikrer vi at applikasjonen er sårbar for angrep og Systems kan beskytte dataene og er i stand til å håndtere ondsinnede angrep osv.
- Integrasjonstesting: I integrasjonstesting sikrer vi at alle komponentene i applikasjonen er integrert på riktig måte og utfører handlingene på riktig måte
- Smart kontraktstesting: Smart Contract-testing handler om å utføre detaljert funksjonstesting av forretningslogikk og prosess.
Rapportfase:
- Prosjektsammendragsrapport: Beskriv den generelle oversikten over prosjektdetaljer, prosjektdatoer, kostnader og oppgavedetaljer
- Smart kontraktstestrapport: Denne rapporten beskriver detaljene for Smart kontrakt, data og regelbehandling
- Sikkerhetstestrapport: Viser sårbar informasjon i et formelt dokument for oppdragsgiver og høyere ledelse. Rapporten inneholder datoen for testing, testdata og sammendrag av sårbarhetene som ble funnet
- ytelsestestrapport: Denne rapporten viser detaljene om ytelsen til applikasjoner som hastighet, skalerbarhet, pålitelighet osv.
Nøkkeltestingstyper på blokkjedeapplikasjoner
Funksjonell testing
Funksjonell testing spiller en viktig rolle i Blockchain-testing, da det hjelper til med å evaluere forretningskrav, prosesser og effektiviteten til brukstilfeller. Nedenfor er komponentene som kan testes som en del av funksjonell testing: 1) Blokkstørrelse og kjedestørrelse 2) Legge til en blokk 3) Data Transmission
Integrasjonstesting
Blockchain-applikasjoner fungerer i flere miljøer. Så det er viktig å teste tilkoblinger mellom systemet
Ytelsestesting:
Det hjelper med å identifisere maskinvare- og programvareflaskehalser på forhånd. Dette kan også hjelpe deg med å finne ut de potensielle kostnadene ved å kjøre applikasjonen i skyen eller andre miljøer.
Nodetesting
Alle ulike noder på nettverket må testes uavhengig for å sikre jevnt samarbeid.
API-testing:
Application Programming Interface tester interaksjonen mellom applikasjoner i blokkjedeøkosystemet. API-testing sikrer at forespørsler og svar formateres og drives riktig.
Blockchain testverktøy
Her er noen importverktøy for blokkjedetesting:
1)Ethereum Tester:
Det er et åpen kildekode-testbibliotek tilgjengelig på GitHub-repo. Det er enkelt å stille inn opp med håndterbar API-støtte for ulike testkrav.
2) Ganache:
Det er tidligere kjent som Testrpc, er det mye brukte biblioteket for testing Ethereum kontrakter lokalt. Det fungerer ved å spinne opp en slags hån Blåsekjede som gir deg tilgang til kontoer du kan bruke til Testing.
3) Hyperledger-komponist:
Hyperledger Composer er et åpen kildekodeverktøy som hjelper utviklere med å bygge blokkjedeapplikasjoner. Ved å bruke dette verktøyet kan vi utføre hovedsakelig tre typer testing: interaktiv testing, automatisert enhet og systemtesting. Hvis du er interessert i å lære hvordan du bygger blokkjedeapplikasjoner og jobber med verktøy som Hyperledger Composer, sjekk ut denne veiledningen på hvordan bli en blokkjedeutvikler for å kickstarte reisen din i dette spennende feltet.