Учебное пособие по тестированию блокчейна

Что такое Blockchain?

Блокчейн — это общая база данных, в которой хранится постоянно растущий список записей, называемых блоками. Каждый блок содержит хэш предыдущего блока и метку времени.

В этом уроке вы узнаете:

Особенности блокчейна включают в себя

  • Децентрализованная система: Полезно в различных отраслях, таких как финансы, недвижимость и т. д.
  • Лучшая безопасность: использует несколько узлов для завершения и аутентификации транзакций.
  • Аутентичность. : позволяет уникальному алгоритму обрабатывать данные.
  • Увеличенная емкость: Увеличивает пропускную способность всей сети.

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

Вот три типа блокчейна:

Консорциум Блокчейн:

Несколько организаций будут иметь доступ и полномочия над Сетью. Это полностью децентрализованная система

Публичный блокчейн:

В этом типе тестирования блокчейна каждый имеет доступ к Сети и может принять участие в Консенсусе. Его децентрализованная система.

Частный блокчейн:

Только одиночные организации будут иметь доступ и полномочия в Сети. Это частично децентрализованная система.

Общая Частные консорциум
О компании
  • Любой
  • Единая организация
  • Несколько организаций
Участниками
  • Permissionless
  • Anonymous
  • Разрешенные
  • Известные личности
  • Разрешенные
  • Известные личности
Безопасность.
  • Механизм согласования
  • Доказательство работы/Доказательство стека
  • Предварительно одобренные участники
  • Голосование/многопартийный консенсус
  • Предварительно одобренные участники
  • Голосование/многопартийный консенсус
Скорость транзакции
  • Замедлять
  • Легче и быстрее
  • Легче и быстрее

Основные компоненты блокчейна

Приложение узла

Каждый узел должен установить и запустить компьютерное приложение, соответствующее экосистеме, в которой он желает участвовать.

общий Ledger

Структура данных (регистр) управляется внутри приложения узла. Содержимое экосистемы можно просмотреть, когда приложение узла находится в рабочем состоянии.

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

Алгоритм консенсуса реализован как часть приложения узла, предоставляя «правила игры» того, как экосистема придет к единому представлению реестра.

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

Абстракция машины, управляемой инструкциями и реализованной как часть приложения узла, которое запускает каждый участник экосистемы.

Как работает блокчейн?

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

  • Сохранение времени: Блокчейн сокращает время транзакций с дней до минут. Решение «Транзакция» работает быстрее, поскольку не требует проверки со стороны центрального органа.
  • Экономически эффективным: Транзакции блокчейна меньше обработки. Участники могут обмениваться ценными предметами напрямую. Блокчейн устраняет дублирование усилий, поскольку участники имеют доступ к общему реестру.
  • Повышение безопасности: Защита блокчейна от мошенничества и киберпреступности.

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

  • Понимание технологии– Блокчейн – это новая технология, и понимание технологии на основе знаний предметной области очень важно при тестировании приложения Blockchain.
  • Отсутствие инструментов тестирования блокчейна– Тестирование приложений на основе блокчейна – это инструменты. Выбор подходящего инструмента для конкретного применения является одним из важных решений.
  • Определение стратегии тестирования– Как и любое приложение, разрабатываю стратегию тестирования для приложения Blockchain. Это одна из самых сложных задач, поскольку стратегия тестирования требует глубоких знаний и понимания технологии и применения.
  • Размер блока и цепи– Наряду со стандартным тестированием, инструментами и передовыми практиками, важно также тестирование размера блока и размера цепочки. Приложения блокчейна могут выйти из строя без надлежащей проверки размера блока и размера цепочки.
  • Интеграционное тестирование– Поскольку в приложении Blockchain задействовано несколько компонентов, интеграционное тестирование следует проводить правильно и часто, чтобы проверить, правильно ли интегрированы все компоненты, чтобы избежать каких-либо сбоев.
  • Производительность и нагрузка- Отсутствие тестирования производительности и нагрузочного тестирования дает мало или вообще не дает понимания того, как приложение Blockchain работает как в рабочей среде, так и при определенных рабочих нагрузках и условиях сети.
  • Безопасность.– Защита данных должна быть самой важной в приложении Blockchain. Блокчейн может быть частью различных секторов, таких как здравоохранение, финансы и т. д. Любой тип вредоносных атак может повлиять на приложение блокчейна.

Этапы тестирования блокчейна

Фаза инициации:

  • Понимание блокчейна Archiтекстура: На этом этапе мы понимаем и анализируем бизнес-требования и функциональные требования. Здесь описывается поведение приложения и то, как пользователь будет взаимодействовать с ним.
  • Разработка полной стратегии тестирования: На этом этапе мы описываем подход к тестированию приложения. Это должно быть сделано подробно, чтобы каждая цель была полностью охвачена.

Этап проектирования:

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

Этап тестирования:

  • Тестирование API: При тестировании API мы гарантируем, что взаимодействие между приложениями в экосистеме блокчейна соответствует ожиданиям.
  • Блочное тестирование: Все блоки в Сети должны тестироваться индивидуально, чтобы обеспечить правильное взаимодействие.
  • Функциональное тестирование: В ходе функционального тестирования мы оцениваем работу различных функциональных частей блокчейна (например, смарт-контрактов).
  • Тестирование производительности: такие сведения, как задержка в сети, основанная на размере блока, размере сети, ожидаемом размере транзакции и времени, которое занимает запрос, чтобы вернуть выходные данные с помощью специализированного протокола аутентификации.
  • Тестирование безопасности: При этом мы гарантируем, что приложение уязвимо для атак, а системы могут защитить данные и способны противостоять вредоносным атакам и т. д.
  • Интеграционное тестирование: При интеграционном тестировании мы обеспечиваем правильную интеграцию всех компонентов приложения и правильное выполнение действий.
  • Тестирование смарт-контрактов: Тестирование смарт-контрактов предполагает детальное функциональное тестирование бизнес-логики и процессов.

Этап отчета:

  • Сводный отчет проекта: Опишите общий обзор деталей проекта, дат проекта, стоимости и деталей задачи.
  • Отчет о тестировании смарт-контракта: В этом отчете описываются детали смарт-контракта, обработки данных и правил.
  • Отчет о тестировании безопасности: Показывает информацию об уязвимостях в официальном документе для клиента и высшего руководства. Отчет содержит дату тестирования, данные тестирования и сводку обнаруженных уязвимостей.
  • Отчет о тестировании производительности: в этом отчете показаны подробные сведения о производительности приложений, такие как скорость, масштабируемость, надежность и т. д.

Ключевые типы тестирования приложений блокчейна

Функциональное тестирование

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

Интеграционное тестирование

Приложение Blockchain работает в нескольких средах. Поэтому важно тестировать межсистемные соединения.

Тестирование производительности:

Это помогает заранее выявить узкие места аппаратного и программного обеспечения. Это также может помочь вам оценить потенциальные затраты на запуск приложения в облаке или других средах.

Тестирование узла

Все разнообразные узлы в сети должны быть протестированы независимо, чтобы обеспечить бесперебойное сотрудничество.

API-тестирование:

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

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

Вот некоторые импортные инструменты тестирования блокчейна:

1)Ethereum Тестер:

Это библиотека тестирования с открытым исходным кодом, доступная в репозитории GitHub. Легко установить с управляемой поддержкой API для различных требований тестирования.

2) Ганаш:

Ранее он был известен как Тестрпк, широко используемая библиотека для тестирования Ethereum контракты на местном уровне. Это работает, создавая своего рода макет Bцепочка блокировки, которая дает вам доступ к учетным записям, которые вы можете использовать для Tесть.

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

Hyperledger Composer — это инструмент с открытым исходным кодом, который помогает разработчикам создавать приложения блокчейна. Используя этот инструмент, мы можем выполнять в основном три типа тестирования: интерактивное тестирование, автоматизированное модульное тестирование и системное тестирование. Если вы хотите научиться создавать приложения блокчейна и работать с такими инструментами, как Hyperledger Composer, ознакомьтесь с этим руководством на как стать разработчиком блокчейна чтобы начать свое путешествие в этой захватывающей области.