Samouczek testowania łańcucha bloków

Spisie treści:

Anonim

Co to jest Blockchain?

Blockchain to współdzielona baza danych przechowująca stale rosnącą listę rekordów, zwanych blokami. Każdy blok zawiera skrót poprzedniego bloku i znacznik czasu.

W tym samouczku dowiesz się:

  • Co to jest Blockchain?
  • Funkcje Blockchain obejmują
  • Rodzaj Blockchain
  • Główne składniki łańcucha bloków
  • Zalety Blockchain
  • Wyzwania w testowaniu Blockchain
  • Fazy ​​testowania Blockchain 7
  • Kluczowe typy testów w aplikacji Blockchain 10
  • Narzędzia do testowania łańcucha bloków 10

Funkcje Blockchain obejmują

  • Zdecentralizowany system : korzystny w różnych branżach, takich jak finanse, nieruchomości itp.
  • Lepsze bezpieczeństwo : używa wielu węzłów do zakończenia i uwierzytelnienia transakcji
  • Autentyczność : umożliwia unikalnemu algorytmowi przetwarzania danych
  • Zwiększona pojemność : zwiększa pojemność całej sieci

Rodzaj Blockchain

Oto trzy rodzaje Blockchain:

Konsorcjum Blockchain:

Wiele organizacji będzie miało dostęp i władzę w sieci. To w pełni zdecentralizowany system

Publiczny Blockchain:

W tego typu testach blockchain każdy ma dostęp do sieci i może brać udział w konsensusie. Jego zdecentralizowany system.

Prywatny Blockchain:

Tylko pojedyncze organizacje będą miały dostęp i władzę w sieci. To częściowo zdecentralizowany system.

Publiczny Prywatny Konsorcjum
Dostęp
  • Ktoś
  • Pojedyncza organizacja
  • Wiele organizacji
Uczestnicy
  • Bez pozwolenia
  • Anonimowy
  • Dozwolone
  • Znane tożsamości
  • Dozwolone
  • Znane tożsamości
Bezpieczeństwo
  • Mechanizm konsensusu
  • Dowód pracy / dowód stosu
  • Wstępnie zatwierdzeni uczestnicy
  • Głosowanie / konsensus wielostronny
  • Wstępnie zatwierdzeni uczestnicy
  • Głosowanie / konsensus wielostronny
Szybkość transakcji
  • Powolny
  • Lżejszy i szybszy
  • Lżejszy i szybszy

Główne składniki łańcucha bloków

Aplikacja węzła

Każdy węzeł musi zainstalować i uruchomić aplikację komputerową dostosowaną do ekosystemu, w którym chce uczestniczyć

Wspólna księga

Struktura danych (księga) jest zarządzana wewnątrz aplikacji węzła. Zawartość ekosystemu można wyświetlić, gdy aplikacja węzła jest uruchomiona.

Algorytm konsensusu

Algorytm konsensusu jest zaimplementowany jako część aplikacji węzła, zapewniając „zasady gry” określające sposób, w jaki ekosystem osiągnie pojedynczy widok księgi.

Maszyna wirtualna

Abstrakcja maszyny obsługiwanej za pomocą instrukcji i implementowanej jako część aplikacji węzłowej, którą uruchamia każdy uczestnik ekosystemu.

Jak działa Blockchain?

Zalety Blockchain

  • Oszczędność czasu : Blockchain skraca czas transakcji z dni do minut. Rozwiązanie transakcyjne jest szybsze, ponieważ nie wymaga weryfikacji przez centralny organ.
  • Opłacalne : transakcje Blockchain mniej obsługi. Uczestnicy mogą wymieniać wartościowe przedmioty bezpośrednio. Blockchain eliminuje powielanie wysiłków, ponieważ uczestnicy mają dostęp do wspólnej księgi.
  • Zwiększ bezpieczeństwo : ochrona bezpieczeństwa Blockchain przed oszustwami i cyberprzestępczością.

Wyzwania w testowaniu Blockchain

  • Zrozumienie technologii - Blockchain to nowa technologia, a zrozumienie technologii ze znajomością domeny jest bardzo ważne w testowaniu aplikacji Blockchain
  • Brak narzędzi testujących Blockchain - testowanie aplikacji opartych na Blockchain polega na narzędziach. Wybór odpowiedniego narzędzia zgodnie z zastosowaniem jest jedną z ważnych decyzji.
  • Definiowanie strategii testowej - jak każda aplikacja, projektowanie strategii testów dla aplikacji Blockchain. Jest to jedno z największych wyzwań, ponieważ strategia testów wymaga dogłębnej wiedzy i zrozumienia technologii i aplikacji.
  • Rozmiar bloku i łańcucha - Oprócz standardowych testów, narzędzi i najlepszych praktyk, ważne jest również testowanie rozmiaru bloku i rozmiaru łańcucha. Aplikacje Blockchain mogą zawieść bez odpowiedniego sprawdzenia rozmiaru bloku i rozmiaru łańcucha.
  • Testowanie integracji - ponieważ w aplikacji Blockchain zaangażowanych jest wiele komponentów, testy integracyjne powinny być wykonywane prawidłowo i często, aby sprawdzić, czy wszystkie komponenty są prawidłowo zintegrowane, aby uniknąć wszelkich awarii.
  • Wydajność i obciążenie - brak możliwości przetestowania wydajności i obciążenia daje niewielki lub żaden wgląd w to, jak aplikacja Blockchain działa zarówno w środowisku produkcyjnym, jak i przy określonych obciążeniach i warunkach sieciowych.
  • Bezpieczeństwo - zabezpieczenie danych powinno być najważniejsze w aplikacji Blockchain. Blockchain może być częścią różnych sektorów, takich jak zdrowie, finanse itp., Każdy rodzaj złośliwych ataków może wpłynąć na aplikację Blockchain

Fazy ​​testowania Blockchain

Faza inicjacji:

  • Zrozumienie architektury Blockchain : W tej fazie rozumiemy i analizujemy wymagania biznesowe i funkcjonalne. Opisuje zachowanie aplikacji i sposób interakcji użytkownika z aplikacją
  • Projektowanie pełnej strategii testowej : W tej fazie opisujemy podejście testowe do testowania aplikacji. Należy to zrobić szczegółowo, aby w pełni uwzględnić każdy cel.

Faza projektowania:

  • Tworzenie przypadków testowych : w tej fazie zespół ds. Kontroli jakości pisze przypadki testowe z odpowiednimi krokami. Te przypadki testowe są przeglądane przez analityka biznesowego (BA).
  • Tworzenie danych testowych : w tej fazie dane testowe są tworzone lub wyodrębniane z poprzedniego środowiska zgodnie z wymaganiami biznesowymi. Dane testowe można tworzyć ręcznie lub za pomocą narzędzi do automatyzacji.
  • Konfiguracja środowiska : na tym etapie środowisko testowe jest konfigurowane jako wymaganie biznesowe lub aplikacja
  • Wskaźniki wydajności : Wskaźniki wydajności reprezentują informacje w zakresie wydajności aplikacji, systemu lub komponentów

Faza testowania:

  • Testowanie API : W testowaniu API zapewniamy, że interakcja między aplikacjami w ekosystemie blockchain przebiega zgodnie z oczekiwaniami
  • Testowanie blokowe : Wszystkie bloki w sieci należy testować indywidualnie, aby zapewnić prawidłową współpracę.
  • Testowanie funkcjonalne : W testowaniu funkcjonalnym oceniamy pracę różnych funkcjonalnych części łańcucha blokowego (np. Inteligentne kontrakty).
  • Testowanie wydajności : szczegóły, takie jak opóźnienie sieci w oparciu o rozmiar bloku, rozmiar sieci, oczekiwany rozmiar transakcji i czas, w którym zapytanie zwraca dane wyjściowe za pomocą wyspecjalizowanego protokołu uwierzytelniania
  • Testowanie bezpieczeństwa : w tym celu zapewniamy, że aplikacja jest podatna na ataki, a systemy mogą chronić dane i są w stanie radzić sobie ze złośliwymi atakami itp.
  • Testowanie integracyjne : W testowaniu integracyjnym zapewniamy, że wszystkie komponenty aplikacji są prawidłowo zintegrowane i odpowiednio wykonują działania
  • Testowanie inteligentnych kontraktów : Testowanie inteligentnych kontraktów polega na przeprowadzaniu szczegółowych testów funkcjonalnych logiki biznesowej i procesów.

Faza raportu:

  • Raport podsumowania projektu : opisz ogólny przegląd szczegółów projektu, dat projektów, kosztów i szczegółów zadań
  • Raport z testowania inteligentnych kontraktów : Ten raport opisuje szczegóły inteligentnego kontraktu, przetwarzania danych i reguł
  • Raport z testów bezpieczeństwa : przedstawia wrażliwe informacje w formalnym dokumencie dla klienta i wyższego kierownictwa. Raport zawiera datę testów, dane testowe i podsumowanie znalezionych luk
  • Raport z testów wydajności : ten raport zawiera szczegółowe informacje dotyczące wydajności aplikacji, takie jak szybkość, skalowalność, niezawodność itp.

Kluczowe typy testów w aplikacji Blockchain

Testy funkcjonalności

Testowanie funkcjonalne odgrywa ważną rolę w testowaniu Blockchain, ponieważ pomaga w ocenie wymagań biznesowych, procesów i skuteczności przypadków użycia. Poniżej znajdują się komponenty, które można przetestować w ramach testów funkcjonalnych: 1) Rozmiar bloku i rozmiar łańcucha 2) Dodawanie bloku 3) Transmisja danych

Testy integracyjne

Aplikacja Blockchain działa w wielu środowiskach. Dlatego ważne jest, aby przetestować połączenia międzysystemowe

Test wydajności:

Pomaga we wcześniejszej identyfikacji wąskich gardeł w sprzęcie i oprogramowaniu. Może to również pomóc w ustaleniu potencjalnych kosztów uruchomienia aplikacji w chmurze lub innych środowiskach.

Testowanie węzłów

Wszystkie różne węzły w sieci muszą być niezależnie testowane, aby zapewnić płynną współpracę.

Testowanie API:

Interfejs programowania aplikacji testuje interakcję między aplikacjami w ekosystemie blockchain. Testowanie interfejsu API zapewnia, że ​​żądania i odpowiedzi są odpowiednio sformatowane i obsługiwane.

Narzędzia do testowania łańcucha bloków

Oto kilka importowanych narzędzi do testowania łańcucha bloków:

1) Tester Ethereum:

Jest to biblioteka testowa typu open source dostępna w repozytorium GitHub. Jest łatwa do skonfigurowania dzięki łatwej w zarządzaniu obsłudze API dla różnych wymagań testowych.

2) Ganache:

Wcześniej była znana jako Testrpc i jest powszechnie używaną biblioteką do lokalnego testowania kontraktów Ethereum. Działa poprzez przędzenie się rodzaj makiety B lockchain, który daje dostęp do kont można używać do T ESTOWANIE.

3) Hyperledger Composer:

Hyperledger Composer to narzędzie typu open source, które pomaga programistom w tworzeniu aplikacji opartych na łańcuchu bloków. Za pomocą tego narzędzia możemy wykonywać głównie trzy rodzaje testów: testy interaktywne, testy jednostkowe zautomatyzowane i testy systemowe.

Ten artykuł jest autorstwa Sumana Dassa.