Підручник з тестування блокчейну

Що таке Blockchain?

Blockchain — це спільна база даних, яка зберігає постійно зростаючий список записів, які називаються блоками. Кожен блок містить хеш попереднього блоку та позначку часу.

У цьому посібнику ви дізнаєтесь:

Функції Blockchain включають

  • Децентралізована система: Вигідно в різних галузях, таких як фінанси, нерухомість тощо.
  • Краща безпека: використовує кілька вузлів для завершення та автентифікації транзакцій
  • Справжність: Дозволяє унікальному алгоритму обробляти дані
  • Збільшена місткість: збільшує пропускну здатність усієї мережі

Тип блокчейна

Ось три типи Blockchain:

Консорціум Blockchain:

Кілька організацій матимуть доступ і повноваження над мережею. Це повністю децентралізована система

Громадський блокчейн:

У цьому типі тестування блокчейна кожен має доступ до Мережі та може брати участь у Консенсусі. Його децентралізована система.

Приватний блокчейн:

Лише Окремі організації матимуть доступ і повноваження над Мережею. Це частково децентралізована система.

громадськості приватний консорціум
Доступ
  • Будь
  • Єдина організація
  • Множинна організація
Учасники
  • Без дозволу
  • анонімний
  • Дозволено
  • Відомі особистості
  • Дозволено
  • Відомі особистості
Безпека
  • Механізм консенсусу
  • Доказ роботи/Доказ стека
  • Попередньо затверджені учасники
  • Голосування/багатопартійний консенсус
  • Попередньо затверджені учасники
  • Голосування/багатопартійний консенсус
Швидкість транзакцій
  • Сповільнювати
  • Легше і швидше
  • Легше і швидше

Основні компоненти блокчейну

Застосування вузла

Кожен вузол повинен встановити та запустити комп’ютерну програму, яка відповідає екосистемі, у якій він хоче брати участь

Загальні Ledger

Структура даних (реєстр) керується всередині програми вузла. Вміст екосистеми можна переглядати, коли програма вузла перебуває в запущеному стані.

Алгоритм консенсусу

Алгоритм консенсусу реалізований як частина програми вузла, забезпечуючи «правила гри» щодо того, як екосистема досягне єдиного перегляду реєстру.

Віртуальна машина

Абстракція машини, яка працює за допомогою інструкцій і реалізована як частина вузлової програми, яку запускає кожен учасник екосистеми.

Як працює блокчейн?

Переваги блокчейна

  • Економія часу: Blockchain скорочує час транзакції з днів до хвилин. Рішення Transaction є швидшим, оскільки воно не вимагає перевірки центральним органом.
  • Економічно ефективним: транзакції блокчейну менше обробки. Учасники можуть безпосередньо обмінюватися цінними речами. Блокчейн усуває дублювання зусиль, оскільки учасники мають доступ до спільної книги.
  • Підвищити безпеку: захист блокчейну від шахрайства та кіберзлочинності.

Проблеми в тестуванні блокчейну

  • Розуміння технології– Blockchain – це нова технологія, і розуміння технології зі знанням предметної області дуже важливо для тестування програми Blockchain
  • Відсутність інструментів тестування блокчейну– Тестування додатків на основі блокчейну – це лише інструменти. Вибір правильного інструменту відповідно до застосування є одним із важливих рішень.
  • Визначення стратегії тестування– Як і будь-яка програма, розробка стратегії тестування для програми Blockchain. Це одна з найбільших проблем, оскільки стратегія тестування вимагає глибоких знань і розуміння технології та застосування.
  • Розмір блоку та ланцюга– Разом зі стандартним тестуванням, інструментами та найкращими практиками, тестування розміру блоку та розміру ланцюга також є важливим. Блокчейн-програми можуть вийти з ладу без належної перевірки розміру блоку та розміру ланцюга.
  • Інтеграційне тестування– Оскільки в програму Blockchain залучено кілька компонентів, інтеграційне тестування слід проводити належним чином і часто, щоб перевірити, чи всі компоненти правильно інтегровані, щоб уникнути будь-яких збоїв.
  • Продуктивність і навантаження- Відмова від перевірки продуктивності та тестування навантаження дає мало або зовсім не дає уявлення про те, як додаток Blockchain працює як у виробництві, так і за певних робочих навантажень і умов мережі.
  • Безпека– Захист даних має бути найважливішим у додатку Blockchain. Blockchain може бути частиною різних секторів, таких як охорона здоров’я, фінанси тощо. Будь-який тип зловмисних атак може вплинути на програму Blockchain

Етапи тестування блокчейна

Фаза ініціації:

  • Розуміння блокчейну Archiтектура: На цьому етапі ми розуміємо та аналізуємо бізнес і функціональні вимоги. Це описує поведінку програми та те, як користувач буде взаємодіяти з програмою
  • Розробка повної стратегії тестування: на цьому етапі ми описуємо підхід до тестування програми. Це має бути зроблено детально, щоб кожна мета була повністю охоплена.

Фаза проектування:

  • Створення тестового випадку: на цьому етапі команда контролю якості пише тестові приклади з відповідними кроками. Ці тестові випадки перевіряються Business Analyst (BA).
  • Створення тестових даних: на цьому етапі тестові дані створюються або витягуються з попереднього середовища відповідно до бізнес-вимог. Тестові дані можна створити вручну або за допомогою засобів автоматизації.
  • Налаштування оточення: на цьому кроці середовище тестування налаштовується відповідно до вимог Business або програми
  • Показники продуктивності: показники продуктивності представляють інформацію про продуктивність програми, системи або компонентів

Фаза тестування:

  • Тестування API: під час тестування API ми гарантуємо, що взаємодія між програмами в екосистемі блокчейну відповідає очікуванням
  • Тестування блоків: Усі блоки в Мережі слід тестувати окремо, щоб забезпечити належну співпрацю.
  • Функціональне тестування: у функціональному тестуванні ми оцінюємо роботу різних функціональних частин Blockchain (наприклад, смарт-контракти).
  • Тестування продуктивності: Такі деталі, як затримка мережі, залежно від розміру блоку, розміру мережі, очікуваного розміру транзакції та часу, потрібного запиту для повернення результату за допомогою спеціалізованого протоколу автентифікації.
  • Тестування безпеки: таким чином ми гарантуємо, що програма є вразливою до атак, а система може захистити дані та здатна протистояти зловмисним атакам тощо.
  • Інтеграційне тестування: під час інтеграційного тестування ми гарантуємо, що всі компоненти програми правильно інтегровані та виконують дії належним чином
  • Тестування смарт-контрактів: Тестування смарт-контрактів стосується виконання детального функціонального тестування бізнес-логіки та процесу.

Фаза звіту:

  • Звіт про проект: Опишіть загальний огляд деталей проекту, дати проекту, вартість і деталі завдання
  • Звіт про тестування смарт-контракту: цей звіт описує подробиці смарт-контракту, обробки даних і правил
  • Звіт про перевірку безпеки: показує вразливу інформацію в офіційному документі для клієнта та вищого керівництва. Звіт містить дату тестування, дані тестування та короткий опис знайдених уразливостей
  • Звіт про тестування продуктивності: цей звіт містить деталі щодо продуктивності програм, як-от швидкість, масштабованість, надійність тощо.

Ключові типи тестування в додатку Blockchain

Функціональне тестування

Функціональне тестування відіграє важливу роль у тестуванні блокчейнів, оскільки воно допомагає оцінювати бізнес-вимоги, процеси та ефективність варіантів використання. Нижче наведено компоненти, які можна протестувати в рамках функціонального тестування: 1) Розмір блоку та розмір ланцюга 2) Додавання блоку 3) Дані Transmission

Інтеграційне тестування

Додаток Blockchain працює в різних середовищах. Отже, важливо перевірити міжсистемні зв’язки

Тестування продуктивності:

Це допомагає заздалегідь визначити вузькі місця апаратного та програмного забезпечення. Це також може допомогти вам визначити потенційні витрати на роботу програми в хмарі чи інших середовищах.

Тестування вузла

Усі різноманітні вузли в Мережі повинні бути протестовані незалежно, щоб забезпечити безперебійну співпрацю.

Тестування API:

Інтерфейс програмування додатків перевіряє взаємодію між додатками в екосистемі блокчейн. Тестування API гарантує, що запити та відповіді відформатовані та обробляються належним чином.

Інструменти тестування блокчейну

Нижче наведено деякі інструменти для імпортованого тестування блокчейну:

1)Ethereum Тестер:

Це бібліотека тестування з відкритим вихідним кодом, доступна на GitHub repo. Його легко встановити з керованою підтримкою API для різних вимог тестування.

2) Ганаш:

Раніше він відомий як Testrpc, це широко використовувана бібліотека для тестування Ethereum контракти на місці. Він працює, розкручуючи свого роду макет Bланцюг блокувань, який надає вам доступ до облікових записів, якими ви можете користуватися Testing.

3) Композитор Hyperledger:

Hyperledger Composer — це інструмент із відкритим вихідним кодом, який допомагає розробникам створювати блокчейн-додатки. Використовуючи цей інструмент, ми можемо виконувати в основному три типи тестування: інтерактивне тестування, автоматизоване блокове тестування та тестування системи. Якщо вам цікаво навчитися створювати блокчейн-додатки та працювати з такими інструментами, як Hyperledger Composer, перегляньте цей посібник на як стати розробником блокчейн щоб розпочати свою подорож у цій захоплюючій сфері.

Підсумуйте цей пост за допомогою: