Блог A1QA

О тестировании и качестве ПО

Обзор инструментов для тестирования блокчейн-приложений

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

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

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

Биткоин vs. эфириум

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

Самыми распространенными сегодня являются биткоин (Bitcoin) и эфириум (Ethereum).

Тестировщику важно помнить о том, что в системе эфириума есть отличительная особенность – наличие смарт-контракта.

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

Давайте подробнее рассмотрим, какие же инструменты нужно применять при тестировании блокчейн-приложений.

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

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

Для приложений, работающих на базе эфириума, стоит обратить внимание, например, на тестовый блокчейн Kovan Etherscan.

Он позволяет в тестовом режиме проверить корректность осуществления различных транзакций.

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

Приложения, функционирующие на базе системы Биткоин, можно проверить, используя сервис BlockCypher.

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

Отличительной особенностью в системе Биткоин является поле «Confirmations».

Для того чтобы транзакция подтвердилась, необходимо создать не менее еще шести дополнительных блоков.

Процесс получения криптовалюты усложнен не просто так. Число биткоинов ограничено (21 миллион). Создатель сети биткоин, известный под псевдонимом Сатоши Накомото, предусмотрел, что с увеличением количества майнеров валюта может закончится уже спустя пару лет.

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

Почему именно шесть? Данная цифра выбрана специально. Существует теория, согласно которой для подделки платежа в системе биткоин мошенникам нужно накопить не меньше 10% от хеша всей сети.

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

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

Нужно убедиться в том, что логика процесса конвертации не нарушена, а именно:

  • корректно сформирован адрес верного формата;
  • использованы нужные рейты;
  • правильно применены к определенной сумме;
  • сумма не выходит за рамки пограничных пределов;
  • деньги поступили на нужный адрес.

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

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

В таком случае поможет ряд инструментов:

  • Truffle

Truffle является наиболее популярным фреймворком, который дает возможность писать автоматизированные тесты как на JavaScript, так и на Solidity. Результаты можно получать очень быстро.

  • Populus

Инструмент предназначен для тестировщиков, которые предпочитают работать на языке Python.

  • Manticore

Позволяет проводить анализ смарт-контрактов и автоматически обнаруживает все возможные уязвимости.

  • Corda Testing Tools

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

  • EmbarkJS

Схож с Truffle, но все тесты написаны на языке JavaScript.

Потенциал использования технологии блокчейн

Несмотря на совсем «юный» возраст, потенциал технологии достаточно высокий. Уже сегодня блокчейн выходит за рамки привычной области криптовалют.

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

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

Заключение

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

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

Поделиться статьей: