atesting.ru Тестирование Учебное пособие по тестированию блокчейна — Руководство для начинающих

Учебное пособие по тестированию блокчейна — Руководство для начинающих

Учебное пособие по тестированию цепочки блоков & ndash; для начинающих Руководство

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

О блокчейне: Блокчейн — один из самых передовых и новые технологии. Это распределенная, безопасная, неопровержимая и неизменяемая запись транзакций между двумя сторонами. Другое ее название — технология распределенного реестра.

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

Как транзакция попадает в блокчейн?

  • Запрашивается и аутентифицируется транзакция.
  • Создается блок, представляющий эту транзакцию.
  • Блок отправляется каждому узлу (т. е. участнику) в сети.
  • Узлы проверяют транзакцию
  • Узлы получают вознаграждение за Proof of Work, обычно в криптовалюте.
  • Блок добавляется в существующую цепочку блоков.
  • Обновление распространяется по сети.
  • Транзакция завершено

 Учебное пособие по тестированию блокчейна & ndash; Руководство для начинающих

Для чего нужен блокчейн Тестирование ?

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

Что нам нужно тестировать в блокчейне?

Размер блока: Максимальный размер блока — 1 МБ. Необходимо проверить поведение, когда размер превышает 1 МБ.

Размер цепочки: Нет ограничений на размер цепочки. Поэтому его необходимо протестировать на функциональность и производительность.

Тестирование смарт-контрактов: это программные модули в цепочке блоков, которые имеют определенные условия и бизнес-логику для транзакций.

Загрузка: Нагрузка становится основным параметром в приложениях блокчейн. Биткойн имеет максимальную пропускную способность 3-4 транзакции в секунду. Необходимо проверить, что произойдет, если пропускная способность увеличится.

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

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

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

Криптографические данные: тестирование необходимо, чтобы убедиться, что данные правильно зашифрованы и дешифрованы. .

Какие типы тестирования мы можем проводить с приложениями блокчейн?

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

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

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

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

Тестирование безопасности:

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

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

Одним из важнейших критериев блокчейн-приложений является скорость. Производительность и задержка зависят от размера сети и размера транзакций. Необходимо проверить производительность.

Тестирование смарт-контрактов:

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

Одноранговое/узловое тестирование:

Одноранговое/узловое тестирование необходимо на всех узлах сети для согласованности транзакций и обеспечения бесперебойного взаимодействия.

Вы также можете прочитать эти 100+ типов тестирования программного обеспечения

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

  • Блокчейн — это новые технологии, и для проведения тестирования необходимо знать предметную область.
  • Отсутствие инструментов тестирования цепочки блоков.
  • Проверка размера блока и цепочки.
  • Применение таких типов тестирования, как тестирование интеграции, производительности, нагрузки и безопасности.

Важность тестирования смарт-контрактов:

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

Первоначальное развертывание веб-приложения:

Учебное пособие по тестированию цепочки блоков & ndash; Руководство для начинающих

Исправление ошибки веб-приложения:

 Учебное пособие по тестированию цепочки блоков & ndash; Руководство для начинающих

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

Первоначальное развертывание смарт-контрактов:

Учебное пособие по тестированию цепочки блоков & ndash; Руководство для начинающих

Исправление ошибки смарт-контракта:

 Учебное пособие по тестированию цепочки блоков & ndash; Руководство для начинающих

Интеграционные тесты и модульные тесты:

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

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

Какую часть смарт-контракта тестировать?

Каждая функция, которая может быть вызвана извне смарт-контракта, должна быть протестирована. Сюда входят функции с ключевым словом public, ключевым словом external, а также функции без указания видимости, потому что по умолчанию они являются общедоступными. Это только для смарт-контрактов, написанных с твердостью до версии 0.5.0, потому что до версии 0.5.0 и новее надежность не позволяет вам опускать ключевое слово видимости функций

Развертывание смарт-контрактов в тестовой сети Ropsten через Ethereum Remix:

Самый простой способ развернуть ваш смарт-контракт из локальной блокчейн-среды (Ganache) в тестовой сети Ropsten с помощью Ethereum Remix IDE, как показано ниже.

Этап 1. Настройка среды

  • Скопируйте selection.sol (смарт-контракт) и вставьте его в ремикс IDE.
  • Для развертывания контракта нам понадобится учетная запись и немного эфира в Ropsten Testnet.
  • Установить Расширение мета-маски для хрома
  • Выберите Ropsten Testnet.
  • Создать учетную запись
  • Копировать адрес учетной записи
  • Запросить бесплатный эфир из https: //faucet .ropsten.be /. Вставьте скопированный адрес учетной записи в текстовое поле и нажмите «Отправить мне 1 тестовый эфир».
  • Итак, теперь у нас есть контракт, вставленный в ремикс IDE, и мы подключили мета-маску к Ropsten Testnet с учетной записью, у которой есть немного эфира.

Этап 2: Развертывание контракта

  • Нажмите «Выполнить». Выберите Injected Web 3 Ropsten в разделе «Среда», и учетная запись в Metamask также отобразится здесь, в разделе «Учетная запись с эфирным балансом».
  • Измените название контракта на любое другое.
  • Нажмите на создать — & gt; подтвердите транзакцию
  • Нажмите на расширение Metamask!
  • Нажмите на развертывание контракта — откроется страница etherscan, чтобы просмотреть детали нашей транзакции.

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

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

Ethereum Tester:

Etherum tester — это библиотека тестирования с открытым исходным кодом. Вы можете найти его как репозиторий на Github здесь. Он предоставляет инструменты для тестирования приложений на основе Ethereum. Его легко настроить и легко контролировать поддержку API для различных требований тестирования. Он используется для создания приложений блокчейн. В нем есть инструменты для тестирования приложений на основе блокчейн.

Ethereum — это технология, которая позволяет отправлять криптовалюту кому угодно за небольшую плату.

Ganache:

Ganache UI — это настольное приложение, поддерживающее технологии Ethereum и Corda. Его можно использовать на протяжении всего цикла разработки. Он позволяет вам создать частный блокчейн Ethereum для разработки, развертывания и тестирования ваших приложений в безопасной и детерминированной среде. Он используется для тестирования смарт-контрактов во время разработки.

BitcoinJ:

BitcoinJ — это библиотека на основе Java для работы с приложениями на основе биткойнов.
Это позволяет вам взаимодействовать с реальной сетью BTC и выполнять различные действия по тестированию. Чтобы использовать его, вам не нужно загружать стандартные файлы BTC Core с сайта Bitcoin.com, чтобы создать локальную копию Bitcoin Core. Вы можете отправлять или получать биткойны, просто реализовав это.

Populus:

Populus — один из лучших вариантов для тех, кто пишет тесты на Python. Он разработан на основе py.test и прост в реализации. Этот фреймворк предоставляет мощные утилиты для тестирования ваших контрактов.

Truffle:

Он основан на блокчейне Ethereum и используется для разработки распределенных приложений. Он позволяет писать автоматические тесты на JavaScript и Solidity. Он поддерживает автоматическое тестирование контрактов.

Embark:

Он автоматически развертывает смарт-контракты в блокчейне Ethereum EVM. Он ориентирован на разработку децентрализованных приложений (dApps), которые работают в разных системах.

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

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