SolUnit: um framework de testes de unidade para smart contracts

DSpace Repository

A- A A+

SolUnit: um framework de testes de unidade para smart contracts

Show full item record

Title: SolUnit: um framework de testes de unidade para smart contracts
Author: Medeiros, Hallan
Abstract: Smart contracts são softwares implementados em plataformas blockchain que monitoram e automatizam a execução de contratos para garantir a conformidade com os termos e condições deste contrato. Desta forma, smart contracts representam um novo tipo de software que possuem seus próprios desafios e requerem novas técnicas de engenharia de software. Em particular, os smart contracts exigem testes minuciosos antes de serem implantados, visto que tais contratos não podem ser alterados após a implantação. Este trabalho propõe uma nova abordagem para a execução testes de unidade para smart contracts, com o objetivo de reduzir o tempo de execução dos testes. Tal redução é alcançada através da reutilização da implantação do smart contract em cada teste e também a reutilização da execução da configuração de cada teste. Esta abordagem foi implementada em um framework chamado SolUnit que executa testes de unidade escritos em Java para smart contracts na plataforma Ethereum Solidity. O framework SolUnit foi avaliado em cinco projetos. Os resultados mostram que a abordagem proposta alcança uma redução significativa do tempo para executar testes, sem quebrar o princípio de testes independentes. Os experimentos foram realizados em dois ambientes: uma blockchain simulada em memória e uma blockchain Ethereum privada, executando localmente. No geral, a abordagem proposta foi capaz de reduzir o tempo de execução dos testes em até 70% no melhor dos casos e em 30% no pior dos casos.Abstract: Smart contracts are software programs implemented on a blockchain platform that monitors and automate the execution of contracts to ensure compliance with the terms and conditions of a contract. As such, smart contracts represent a new kind of software that poses its own engineering challenges and requires novel software engineering techniques. In particular, smart contracts require thorough testing before they are deployed because they can?t be changed after deployment. This paper proposes a novel approach for executing unit tests for smart contracts intended to reduce test execution time. This reduction is achieved through the reuse of the deployment execution of the smart contract in each test and also the reuse of the setup execution of each test. We implemented the framework SolUnit that uses this approach to execute tests written in Java for Ethereum Solidity smart contracts. We also evaluated the framework SolUnit in five projects. The results show that our approach achieves a meaningful reduction of the time to execute the tests, without breaking the principle of independent tests. The experiments were performed in two environments: an in-memory simulated blockchain and a private Ethereum based blockchain. Overall, our approach was able to reduce the test execution time by up to 70% in the best case and 30% in the worst case.
Description: Dissertação (mestrado) - Universidade Federal de Santa Catarina, Centro Tecnológico, Programa de Pós-Graduação em Ciência da Computação, Florianópolis, 2020.
URI: https://repositorio.ufsc.br/handle/123456789/219252
Date: 2020


Files in this item

Files Size Format View
PGCC1182-D.pdf 5.659Mb PDF View/Open

This item appears in the following Collection(s)

Show full item record

Search DSpace


Browse

My Account

Statistics

Compartilhar