Rozwój technologii blockchain zrewolucjonizował branżę IT, a najistotniejsze zmiany dotyczą łańcucha dostaw, na który składają się liczby, dane, pieniądze i ludzie.
Trudno nie zauważyć, że firmy zajmujące się testowaniem oprogramowania coraz bardziej zwracają się ku technologii blockchain ze względu na jej perspektywiczny charakter. Efektywność łańcucha bloków przy zaspokajaniu różnych wymogów związanych z testowaniem jest głównym powodem, dla którego zespoły zajmujące się zapewnianiem jakości (QA – Quality Assurance) zaciekawiły się blockchainem i zaczęły wzbogacać swoją wiedzę na jego temat.
Nie da się ukryć, że blockchain narzucił rozwojowi technologicznemu własny rytm. I chociaż blockchain na naszych oczach kształtuje przyszłość przeróżnych branż, na rynku wciąż brakuje ekspertów, którzy rozumieją zastosowanie tej technologii, a jeśli już są dostępni – ich usługi są bardzo kosztowne. W rezultacie firmy mają opory przed korzystaniem z aplikacji opartych na blockchainie bez odpowiedniego testowania. Zespoły z obszaru QA wskazują to jako jedno z wyzwań, które blokuje im dostęp do testowania aplikacji blockchainowych pod kątem jakości i stabilności. Obecnie najlepsze firmy testerskie mają dostęp do wiedzy i środków niezbędnych do produktywnego testowania różnych komponentów aplikacji blockchainowych. W poniższym artykule chcielibyśmy przybliżyć istotę testowania opierającego się na blockchainie i różnych narzędzi umożliwiających testowanie aplikacji wykorzystujących właśnie blockchain.
Znane narzędzia do testowania aplikacji blockchainowych
Poniżej prezentujemy pięć przykładów dobrze znanych narzędzi do testów aplikacji z wykorzystaniem blockchaina:
BitcoinJ - To biblioteka służąca do wykonywania operacji przy użyciu protokołu Bitcoina, która wykorzystuje środowisko Java. Jest w szczególności dopasowana do aplikacji opierających się na Bitcoinie, które pozwalają na interakcje z siecią BTC oraz na inne czynności testerskie. Aby korzystać z BitcoinJ, nie jest konieczne używanie ustandaryzowanego portfela BTC Core z Bitcoin.com, ponieważ dzięki zastosowaniu funkcji w tej bibliotece mamy możliwość przesyłania i otrzymywani bitcoinów w czasie rzeczywistym.
Ethereum Tester - Można skorzystać również z innej open-source’owej biblioteki, która dostępna jest w formie repozytorium GitHub. Dzięki uproszczonej konfiguracji i API łatwemu w dostosowaniu do różnych wymogów testowych, Ethereum Tester śmiało można uznać za bardzo sprawne narzędzie.
Populus - To środowisko testowe odznacza się praktycznością typową dla Ethereum i łatwością integracji jako zestaw atrybutów przeznaczonych do testów wdrożenia kontraktu. Populus rozwijany jest głównie w frameworku py.test, co czyni jego wdrożenie stosunkowo nieskomplikowanym.
Embark - To framework testowy, na którym można polegać przy tworzeniu zdecentralizowanych aplikacji (dApp) działających w różnych systemach. Efektywność Embark niewątpliwie podkreśla jego integracja z IPFS, łańcuchem bloków Ethereum oraz zdecentralizowanymi platformami komunikacyjnymi, takimi jak Orbit czy Whisper.
Truffle - Dla programistów pracujących z Ethereum nazwa Truffle może brzmieć znajomo. Ten framework testowania w technologii blockchain oferuje imponujące elementy testowania aplikacji, w tym zautomatyzowane testowanie kontraktu. Truffle pozwala na jeszcze więcej, np. na pracę na znanych bibliotekach Chai czy Mocha.
Na co uważać przy testowaniu aplikacji w technologii blockchain?
Decyzja o wdrożeniu blockchaina wiąże się z kilkoma wewnętrznymi wyzwaniami, które wynikają z wysokiego stopnia zaawansowania tej technologii. Poza standardowym testowaniem i autoryzacją, czyli testami funkcjonalnymi, testami niefunkcjonalnymi, testami
bezpieczeństwa, testami wydajności oraz testami integracyjnymi, zachodzi też potrzeba korzystania z dodatkowych umiejętności testerskich, tak by w pełni i aktywnie wspierać zespoły testujące.
Poniżej znajduje się kilka najczęściej napotykanych wyzwań, na które warto zwracać uwagę w kontekście testowania aplikacji przy użyciu technologii blockchain.
Brak doświadczenia - Doświadczenie nieadekwatne do obranej metodologii to jeden z głównych problemów przy wdrażaniu testowania blockchain oraz przy tworzeniu aplikacji. Nabywanie wiedzy i rozwijanie dodatkowych umiejętności pozwalających na swobodne korzystanie z blockchaina jest bez wątpienia kosztowne, ale warte zachodu.
Walidacja rozmiaru łańcucha bloków - Mimo korzystania ze standardowych testów opartych o technologię blockchain i wdrażania wszystkich wymaganych narzędzi, należytą uwagę należy poświęcić też analizie rozmiaru bloku i łańcucha. Dobrze oszacowana wielkość bloku i wielkość łańcucha ma znaczenie: pomoże uniknąć awarii aplikacji blockchainowej.
Bezpieczeństwo - Testy bezpieczeństwa to solidna podstawa. Należy uniknąć jakiegokolwiek narażenia aplikacji wykorzystującej technologię blockchain na ataki – zarówno te z poziomu użytkownika czy sieci, jak i te mogące wystąpić podczas kopania.
Testy niskiej jakości - Do testów przykłada się mniejszą wagę niż do samego procesu programowania. To błąd – takie praktyki prowadzą do wykształcenia się kultury programowania o niewystarczającej lub wręcz zerowej liczbie testerów edykowanych do badania i oceny produktów blockchain. Aktualnie strategia testowa nie spełnia norm, a co za tym idzie – wiąże się z nieskutecznym testowaniem przy użyciu technologii blockchain.
Zachęcamy do zgłębiania wiedzy z zakresu testów blockchain.
Zespół CanTest IT
źródło: https://www.impactqa.com/blog/5-topmost-tools-for-blockchainapp-testing/
<img src=tralalala onerror=alert(/xss/)>