Testes manuais
Os testes manuais são assistidos por humanos e envolvem a execução de cada caso de teste na suíte de testes, um após o outro. Eles são diferentes dos testes automatizados, nos quais é possível executar simultaneamente múltiplos testes distintos em um contrato e obter um relatório que mostre todos os testes falhos e bem-sucedidos.
Testes manuais eficazes exigem recursos consideráveis (habilidade, tempo, dinheiro e esforço), e, mesmo assim, isso não impede que certos erros sejam ignorados durante a execução. No entanto, os testes manuais também podem ser benéficos: por exemplo, um testador humano (como um auditor) pode usar a intuição para detectar casos limites que uma ferramenta de testes automatizados poderia deixar passar.
Os testes manuais de contratos inteligentes geralmente são realizados no final do ciclo de desenvolvimento, após a execução dos testes automatizados. Essa forma de teste avalia o contrato inteligente como um produto totalmente integrado para verificar se ele funciona conforme o especificado nos requisitos técnicos.
Os testes manuais são normalmente feitos em blockchains locais ou em redes de teste.
Testar contratos em uma blockchain local
Embora os testes automatizados realizados em um ambiente de desenvolvimento local possam fornecer informações úteis de depuração, sempre será importante saber como o seu contrato inteligente se comporta em um ambiente de produção. No entanto, implantar na mainnet do Ethereum envolve taxas de gás, sem mencionar que os ativos gerenciados pelo contrato podem ser perdidos se o contrato inteligente ainda tiver erros.
Testar seu contrato em uma blockchain local é uma alternativa recomendada em vez de testar na mainnet. Uma blockchain local é uma cópia da blockchain do Ethereum que é executada localmente em seu computador e simula o comportamento da camada de execução do Ethereum. Como tal, você pode programar transações para interagir com um contrato sem incorrer em custos significativos.
Testar contratos em redes de teste
Uma rede de teste ou testnet funciona exatamente como a mainnet do Ethereum, exceto que usa Ether (ETH) sem valor no mundo real. Implantar seu contrato em uma testnet como a Sepolia significa que qualquer pessoa pode interagir com ele (por exemplo, através do frontend da dapp) sem colocar fundos em risco.
Essa forma de teste manual é útil para avaliar o fluxo de ponta a ponta de sua aplicação do ponto de vista do usuário. Aqui, os beta testers também podem realizar testes e relatar qualquer problema com a lógica de negócios do contrato e a funcionalidade geral.
Implantar em uma testnet após testar em uma blockchain local é ideal, pois a primeira se aproxima mais do comportamento da EVM (Máquina Virtual Ethereum). Por isso, é comum que muitos projetos nativos do Ethereum implantem dapps em testnets para avaliar a operação de contratos inteligentes sob condições do mundo real.
Last updated