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

Содержание:

Anonim

Что такое блокчейн?

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

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

  • Что такое блокчейн?
  • Особенности блокчейна включают в себя
  • Тип блокчейна
  • Основные компоненты блокчейна
  • Преимущества блокчейна
  • Проблемы при тестировании блокчейна
  • Этапы тестирования блокчейна 7
  • Ключевые типы тестирования в приложении Blockchain 10
  • Инструменты для тестирования блокчейнов 10

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

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

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

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

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

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

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

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

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

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

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

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

Узловое приложение

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

Общая книга

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Фаза тестирования:

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

Фаза отчета:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1) Тестер Ethereum:

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

2) Ганаш:

Это ранее известный как Testrpc , является широко используемой библиотекой для тестирования Эфириума контрактов на местном уровне. Он работает путем раскручивания своего рода макет B lockchain , что дает вам доступ к счетам , которые можно использовать для T esting.

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

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

Эта статья предоставлена ​​Suman Dass.