Vodič za testiranje lanca blokova
Što je Blockchain?
Blockchain je dijeljena baza podataka koja pohranjuje kontinuirano rastući popis zapisa, koji se nazivaju blokovi. Svaki blok sadrži hash prethodnog bloka i vremensku oznaku.
U ovom vodiču naučit ćete:
- Što je Blockchain?
- Značajke Blockchaina uključuju
- Vrsta Blockchaina
- Glavne komponente blockchaina
- Prednosti Blockchaina
- Izazovi u testiranju blockchaina
- Faze testiranja blockchaina 7
- Ključne vrste testiranja na Blockchain aplikaciji 10
- Alati za testiranje lanca blokova 10
Značajke Blockchaina uključuju
- Decentralizirani sustav: Korisno u raznim industrijama poput financija, nekretnina itd.
- Bolja sigurnost: Koristi više čvorova za dovršetak i provjeru autentičnosti transakcija
- Autentičnost: Omogućuje jedinstvenom algoritmu za obradu podataka
- Povećani kapacitet: Povećava kapacitet cijele mreže
Vrsta Blockchaina
Ovdje su tri vrste Blockchaina:
Konzorcij Blockchain:
Više organizacija će imati pristup i ovlasti nad mrežom. To je potpuno decentraliziran sustav
Javni lanac blokova:
U ovoj vrsti testiranja blockchaina svatko ima pristup mreži i može sudjelovati u Consensusu. Njegov decentralizirani sustav.
Privatni lanac blokova:
Samo će pojedinačne organizacije imati pristup i ovlasti nad mrežom. To je djelomično decentraliziran sustav.
javnost | Privatni | konzorcijum | |
---|---|---|---|
Kontrola pristupa |
|
|
|
Sudionici |
|
|
|
Sigurnost |
|
|
|
Brzina transakcije |
|
|
|
Glavne komponente blockchaina
Primjena čvora
Svaki čvor mora instalirati i pokrenuti računalnu aplikaciju definitivnu za ekosustav u kojem želi sudjelovati
Zajednička Ledger
Podatkovnom strukturom (glavnom knjigom) upravlja se unutar aplikacije čvora. Sadržaj za ekosustav može se pregledati nakon što je aplikacija čvora u stanju pokretanja.
Algoritam konsenzusa
Algoritam konsenzusa implementiran je kao dio aplikacije čvora, pružajući 'pravila igre' za to kako će ekosustav doći do jedinstvenog prikaza glavne knjige.
Virtualni stroj
Apstrakcija stroja kojim se upravlja s uputama i koji se implementira kao dio aplikacije čvora koju pokreće svaki sudionik m ekosustava.
Kako funkcionira Blockchain?
Prednosti Blockchaina
- Štedi vrijeme: Blockchain smanjuje vrijeme transakcije s dana na minute. Transakcijsko rješenje je brže jer ne zahtijeva provjeru od strane središnjeg tijela.
- Isplativo: Blockchain transakcije manje rukovanje. Sudionici mogu izravno razmjenjivati vrijedne predmete. Blockchain uklanja dupliciranje napora jer sudionici imaju pristup zajedničkoj knjizi.
- Povećajte sigurnost: Blockchain sigurnosna zaštita od prijevare i kibernetičkog kriminala.
Izazovi u testiranju blockchaina
- Razumijevanje tehnologije– Blockchain je nova tehnologija i razumijevanje tehnologije uz poznavanje domene vrlo je važno u testiranju Blockchain aplikacije
- Nedostatak alata za testiranje lanca blokova– Testiranje aplikacija temeljenih na blokovnim lancima sve je o alatima. Odabir pravog alata prema primjeni jedna je od važnih odluka.
- Definiranje strategije testiranja– Kao i svaka aplikacija, dizajniranje strategije testiranja za aplikaciju Blockchain. To je jedan od najvećih izazova budući da strategija testiranja zahtijeva dubinsko znanje i razumijevanje tehnologije i primjene.
- Veličina bloka i lanca– Uz standardno testiranje, alate i najbolje prakse, testiranje veličine bloka i veličine lanca također je važno. Blockchain aplikacije mogu pasti bez odgovarajuće provjere veličine bloka i veličine lanca.
- Ispitivanje integracije– Budući da postoji više komponenti uključenih u aplikaciju Blockchain, testiranje integracije treba provoditi pravilno i često kako bi se provjerilo jesu li sve komponente ispravno integrirane kako bi se izbjegle greške.
- Izvedba i opterećenje- Neuspjeh testiranja performansi i testiranja opterećenja daje malo ili nimalo uvida u to kako Blockchain aplikacija radi u proizvodnji, kao i pod određenim radnim opterećenjima i mrežnim uvjetima.
- Sigurnost– Zaštita podataka trebala bi biti najvažnija u Blockchain aplikaciji. Blockchain može biti dio raznih sektora poput zdravstva, financija itd. bilo koja vrsta zlonamjernih napada može utjecati na Blockchain aplikaciju
Faze testiranja blockchaina
Početna faza:
- Razumijevanje Blockchaina Architektura: U ovoj fazi razumijemo i analiziramo poslovne i funkcionalne zahtjeve. Ovo opisuje ponašanje aplikacije i kako će korisnik komunicirati s aplikacijom
- Dizajniranje cjelovite strategije testiranja: Tijekom ove faze opisujemo pristup testiranju aplikacije. To treba učiniti detaljno kako bi svaki cilj bio u potpunosti pokriven.
Faza dizajna:
- Stvaranje testnog slučaja: U ovoj fazi QA tim piše testne slučajeve s odgovarajućim koracima. Ove testne slučajeve pregledava poslovni analitičar (BA).
- Stvaranje testnih podataka: U ovoj fazi, testni podaci se stvaraju ili ekstrahiraju iz prethodnog okruženja prema poslovnim zahtjevima. Testni podaci mogu se izraditi ručno ili pomoću alata za automatizaciju.
- Postavljanje okoline: U ovom koraku, okolina testiranja je konfigurirana kao potreba za Business ili aplikaciju
- metrika izvedbe: Metrike performansi predstavljaju informacije u smislu performansi aplikacije, sustava ili komponenti
Faza testiranja:
- API testiranje: U testiranju API-ja osiguravamo da je interakcija između aplikacija u blockchain ekosustavu očekivana
- Testiranje blokova: Sve blokove na Mreži treba testirati pojedinačno kako bi se osigurala pravilna suradnja.
- Funkcionalno ispitivanje: U funkcionalnom testiranju ocjenjujemo rad različitih funkcionalnih dijelova Blockchaina (npr. pametni ugovori).
- Ispitivanje performansi: pojedinosti kao što je mrežna latencija na temelju veličine bloka, veličine mreže, očekivane veličine transakcije i koliko dugo je upitu potrebno da vrati izlaz sa specijaliziranim protokolom provjere autentičnosti
- Ispitivanje sigurnosti: U ovome osiguravamo da je aplikacija ranjiva na napade i da sustavi mogu zaštititi podatke i da su sposobni nositi se sa zlonamjernim napadima itd.
- Ispitivanje integracije: U integracijskom testiranju osiguravamo da su sve komponente aplikacije ispravno integrirane i da izvode radnje na odgovarajući način
- Testiranje pametnih ugovora: Testiranje pametnih ugovora odnosi se na izvođenje detaljnog funkcionalnog testiranja poslovne logike i procesa.
Faza izvješća:
- Sažeto izvješće o projektu: Opišite cjelokupni pregled detalja projekta, datume projekta, troškove i detalje zadatka
- Izvješće o testiranju pametnog ugovora: Ovo izvješće opisuje pojedinosti pametnog ugovora, obrade podataka i pravila
- Izvješće o testiranju sigurnosti: Prikazuje ranjive informacije u formalnom dokumentu za klijenta i višu upravu. Izvješće sadrži datum testiranja, podatke o testiranju i sažetak pronađenih ranjivosti
- izvješće o testiranju performansi: Ovo izvješće prikazuje pojedinosti o izvedbi aplikacija poput brzine, skalabilnosti, pouzdanosti itd.
Ključne vrste testiranja na Blockchain aplikaciji
Funkcionalno ispitivanje
Funkcionalno testiranje igra važnu ulogu u Blockchain testiranju jer pomaže u procjeni poslovnih zahtjeva, procesa i učinkovitosti slučajeva upotrebe. Ispod su komponente koje se mogu testirati kao dio funkcionalnog testiranja: 1) Veličina bloka i veličina lanca 2) Dodavanje bloka 3) Podaci Transmission
Ispitivanje integracije
Blockchain aplikacija radi u više okruženja. Dakle, važno je testirati veze između sustava
Ispitivanje izvedbe:
Pomaže u identificiranju hardverskih i softverskih uskih grla unaprijed. To vam također može pomoći da shvatite potencijalne troškove pokretanja aplikacije u oblaku ili drugim okruženjima.
Testiranje čvorova
Svi različiti čvorovi na mreži moraju se testirati neovisno kako bi se osigurala glatka suradnja.
API testiranje:
Programsko sučelje aplikacije testira interakciju između aplikacija u blockchain ekosustavu. API testiranje osigurava da su zahtjevi i odgovori ispravno oblikovani i da se njima ispravno upravlja.
Alati za testiranje lanca blokova
Evo nekoliko uvoznih alata za testiranje blokova:
1)Ethereum Tester:
To je knjižnica za testiranje otvorenog koda dostupna na GitHub repou. Lako se postavlja uz upravljivu API podršku za različite zahtjeve testiranja.
2) Ganache:
Ranije je poznat kao Testrpc, široko korištena biblioteka za testiranje Ethereum ugovori lokalno. Djeluje tako što vrti neku vrstu lažnog Blockchain koji vam daje pristup računima za koje se možete koristiti Testing.
3) Hyperledger Composer:
Hyperledger Composer je alat otvorenog koda koji pomaže programerima u izradi blockchain aplikacija. Pomoću ovog alata možemo izvesti uglavnom tri vrste testiranja: interaktivno testiranje, automatizirano testiranje jedinica i testiranje sustava. Ako ste zainteresirani za učenje kako izraditi blockchain aplikacije i raditi s alatima kao što je Hyperledger Composer, pogledajte ovaj vodič na kako postati blockchain programer za početak vašeg putovanja u ovom uzbudljivom području.