Підручник з тестування блокчейну
⚡ Розумний підсумок
Тестування блокчейну перевіряє децентралізовані додатки та розумні схемиtracts та розподілені реєстри для підтвердження безпеки, функціональної точності та продуктивності на кожному вузлі, гарантуючи, що незмінні транзакції поводяться правильно, перш ніж мережа блокчейн досягне робочого стану.

Що таке Blockchain?
Блокчейн — це спільна база даних, яка зберігає постійно зростаючий список записів, які називаються блоками. Кожен блок містить хеш попереднього блоку та позначку часу.
Функції Blockchain включають
- Децентралізована система: Вигідно в різних галузях, таких як фінанси, нерухомість тощо.
- Краща безпека: використовує кілька вузлів для завершення та автентифікації транзакцій
- Автентичність: Дозволяє унікальному алгоритму обробляти дані
- Збільшена місткість: збільшує пропускну здатність усієї мережі
Тип блокчейна
Ось три типи Blockchain:
Консорціум Blockchain:
Кілька організацій матимуть доступ до мережі та повноваження над нею. Це повністю децентралізована система.
Громадський блокчейн:
У цьому типі тестування блокчейна кожен має доступ до Мережі та може брати участь у Консенсусі. Його децентралізована система.
Приватний блокчейн:
Тільки окремі організації матимуть доступ до Мережі та повноваження над нею. Це частково децентралізована система.
| громадськості | приватний | консорціум | |
|---|---|---|---|
| Доступ | Будь | Єдина організація | Множинна організація |
| Учасники | Анонім без дозволу | Дозволені відомі ідентифікаційні дані | Дозволені відомі ідентифікаційні дані |
| Безпека | Механізм консенсусу: Доказ роботи/Доказ стеку | Попередньо затверджені учасники Голосування/багатопартійний консенсус | Попередньо затверджені учасники Голосування/багатопартійний консенсус |
| Швидкість транзакцій | Сповільнювати | Легше і швидше | Легше і швидше |
Основні компоненти блокчейну
Застосування вузла
Кожен вузол повинен встановити та запустити комп’ютерну програму, яка відповідає екосистемі, у якій він хоче брати участь
Загальні Ledger
Структура даних (реєстр) керується всередині програми вузла. Вміст екосистеми можна переглядати, коли програма вузла перебуває в запущеному стані.
Алгоритм консенсусу
Алгоритм консенсусу реалізований як частина програми вузла, забезпечуючи «правила гри» щодо того, як екосистема досягне єдиного перегляду реєстру.
Віртуальна машина
Abstracція машини, що керується інструкціями та реалізована як частина вузлового застосунку, який запускає кожен учасник екосистеми.
Як працює блокчейн?
Переваги блокчейна
- Економія часу: Blockchain скорочує час транзакції з днів до хвилин. Рішення Transaction є швидшим, оскільки воно не вимагає перевірки центральним органом.
- Економічно ефективним: транзакції блокчейну менше обробки. Учасники можуть безпосередньо обмінюватися цінними речами. Блокчейн усуває дублювання зусиль, оскільки учасники мають доступ до спільної книги.
- Підвищити безпеку: захист блокчейну від шахрайства та кіберзлочинності.
Проблеми в тестуванні блокчейну
- Розуміння технології– Blockchain – це нова технологія, і розуміння технології зі знанням предметної області дуже важливо для тестування програми Blockchain
- Відсутність інструментів тестування блокчейну– Тестування додатків на основі блокчейну – це лише інструменти. Вибір правильного інструменту відповідно до застосування є одним із важливих рішень.
- Визначення стратегії тестування– Як і будь-яка програма, розробка стратегії тестування для програми Blockchain. Це одна з найбільших проблем, оскільки стратегія тестування вимагає глибоких знань і розуміння технології та застосування.
- Розмір блоку та ланцюга– Разом зі стандартним тестуванням, інструментами та найкращими практиками, тестування розміру блоку та розміру ланцюга також є важливим. Блокчейн-програми можуть вийти з ладу без належної перевірки розміру блоку та розміру ланцюга.
- Інтеграційне тестування– Оскільки в програму Blockchain залучено кілька компонентів, інтеграційне тестування слід проводити належним чином і часто, щоб перевірити, чи всі компоненти правильно інтегровані, щоб уникнути будь-яких збоїв.
- Продуктивність і навантаження– Відсутність тестування продуктивності та навантажувального тестування дає мало або взагалі не дає уявлення про те, як працює блокчейн-застосунок як у виробничому середовищі, так і за певних робочих навантажень та мережевих умов.
- Безпека– Захист даних має бути найважливішим у додатку Blockchain. Blockchain може бути частиною різних секторів, таких як охорона здоров’я, фінанси тощо. Будь-який тип зловмисних атак може вплинути на програму Blockchain
Етапи тестування блокчейна
Фаза ініціації:
- Розуміння блокчейну Archiтектура: На цьому етапі ми розуміємо та аналізуємо бізнес і функціональні вимоги. Це описує поведінку програми та те, як користувач буде взаємодіяти з програмою
- Розробка повної стратегії тестування: на цьому етапі ми описуємо підхід до тестування програми. Це має бути зроблено детально, щоб кожна мета була повністю охоплена.
Фаза проектування:
- Створення тестового випадку: на цьому етапі команда контролю якості пише тестові приклади з відповідними кроками. Ці тестові випадки перевіряються Business Analyst (BA).
- Створення тестових данихНа цьому етапі створюються або виводяться тестові даніtracадаптовано з попереднього середовища до бізнес-вимог. Тестові дані можна створювати вручну або за допомогою інструментів автоматизації.
- Налаштування оточення: на цьому кроці середовище тестування налаштовується відповідно до вимог Business або програми
- Показники продуктивності: показники продуктивності представляють інформацію про продуктивність програми, системи або компонентів
Фаза тестування:
- Тестування API: під час тестування API ми гарантуємо, що взаємодія між програмами в екосистемі блокчейну відповідає очікуванням
- Тестування блоків: Усі блоки в Мережі слід тестувати окремо, щоб забезпечити належну співпрацю.
- Функціональне тестуванняУ функціональному тестуванні ми оцінюємо роботу різних функціональних частин блокчейну (наприклад, смарт-контролера).tracтс).
- Тестування продуктивності: Такі деталі, як затримка мережі, залежно від розміру блоку, розміру мережі, очікуваного розміру транзакції та часу, потрібного запиту для повернення результату за допомогою спеціалізованого протоколу автентифікації.
- Тестування безпеки: таким чином ми гарантуємо, що програма є вразливою до атак, а система може захистити дані та здатна протистояти зловмисним атакам тощо.
- Інтеграційне тестування: під час інтеграційного тестування ми гарантуємо, що всі компоненти програми правильно інтегровані та виконують дії належним чином
- Розумний КонtracТестуванняРозумний Contract-тестування полягає у виконанні детального функціонального тестування бізнес-логіки та процесів.
Фаза звіту:
- Звіт про проект: Опишіть загальний огляд деталей проекту, дати проекту, вартість і деталі завдання
- Розумний КонtracЗвіт про випробуванняУ цьому звіті описано деталі Smart contract, дані та обробка правил
- Звіт про перевірку безпеки: показує вразливу інформацію в офіційному документі для клієнта та вищого керівництва. Звіт містить дату тестування, дані тестування та короткий опис знайдених уразливостей
- Звіт про тестування продуктивності: цей звіт містить деталі щодо продуктивності програм, як-от швидкість, масштабованість, надійність тощо.
Ключові типи тестування в додатку Blockchain
Функціональне тестування
Функціональне тестування відіграє важливу роль у тестуванні блокчейну, оскільки воно допомагає оцінити бізнес-вимоги, процеси та ефективність варіантів використання. Нижче наведено компоненти, які можна протестувати в рамках функціонального тестування:
- Розмір блоку та розмір ланцюга
- Додавання блоку
- дані Transmission
Інтеграційне тестування
Додаток Blockchain працює в різних середовищах. Отже, важливо перевірити міжсистемні зв’язки
Тестування продуктивності:
Це допомагає заздалегідь визначити вузькі місця апаратного та програмного забезпечення. Це також може допомогти вам визначити потенційні витрати на роботу програми в хмарі чи інших середовищах.
Тестування вузла
Усі різноманітні вузли в Мережі повинні бути протестовані незалежно, щоб забезпечити безперебійну співпрацю.
Тестування API:
Інтерфейс програмування додатків перевіряє взаємодію між додатками в екосистемі блокчейн. Тестування API гарантує, що запити та відповіді відформатовані та обробляються належним чином.
Інструменти тестування блокчейну
Ось деякі важливі інструменти для тестування блокчейну:
1)Ethereum Тестер:
Це бібліотека для тестування з відкритим кодом, доступна в репозиторії GitHub. Її легко налаштувати завдяки підтримці керованого API для різних вимог тестування.
2) Ганаш:
Раніше відома як TestRPC, це широко використовувана бібліотека для тестування. Ethereum зtracts локально. Він працює, розкручуючи своєрідний макет блокчейну, який надає вам доступ до облікових записів, які ви можете використовувати для тестування.
3) Композитор Hyperledger:
Hyperledger Composer — це інструмент з відкритим кодом, який допомагає розробникам створювати блокчейн-додатки. За допомогою цього інструменту ми можемо виконувати в основному три типи тестування: інтерактивне тестування, автоматизоване модульне тестування та системне тестування. Якщо ви зацікавлені в тому, щоб навчитися створювати блокчейн-додатки та працювати з такими інструментами, як Hyperledger Composer, ознайомтеся з цим посібником про як стати розробником блокчейн щоб розпочати свою подорож у цій захоплюючій сфері.




