Herramientas para testing

A continuación revisaremos algunas herramientas para hacer diferentes tipos de pruebas.

Pruebas unitarias

  • Hardhat Tests - Uno de los principales entornos de pruebas basado en ethers.js, Mocha y Chai.

  • Foundry Tests - Foundry incluye Forge, un entorno de pruebas rápido y adaptable que puede realizar pruebas unitarias simples, verificaciones de optimización de gas y fuzzing de contratos.

  • Remix Test - Esta popular herramienta cuenta con el plugin "Solidity Unit Testing" en Remix IDE, que se utiliza para escribir y ejecutar casos de prueba de contratos.

  • Truffle Tests - Este es un marco de pruebas automatizado diseñado para simplificar las pruebas de contratos. Si bien este software está siendo descontinuado, aún se puede utilizar desde Hardhat.

  • Brownie unit testing framework - Brownie utiliza Pytest, un entorno que permite realizar pequeñas pruebas con código mínimo y es adecuado para proyectos grandes debido a su escalabilidad.

  • ApeWorx - Este es un entorno desarrollo y pruebas basado en Python para contratos inteligentes, dirigido a la EVM.

  • Waffle - Este es un marco para el desarrollo avanzado y la prueba de contratos inteligentes, basado en ethers.js.

  • solidity-coverage - Esta herramienta proporciona cobertura de código para contratos inteligentes escritos en Solidity. Si bien es una herramienta independiente, también está incorporada en Hardhat.

Pruebas basadas en propiedades - Análisis Estático

  • Slither - Este framework, desarrollado por la auditora Trail of Bits, está basado en Python. Ayuda a encontrar vulnerabilidades, mejora la comprensión del código y soporta la escritura de análisis personalizados para contratos inteligentes. Revisa un breve tutorial aquí.

  • Ethlint - Es es un linter utilizado para aplicar mejores prácticas de estilo y seguridad en Solidity.

Pruebas basadas en propiedades - Análisis Dinámico

  • Echidna - Este es un fuzzer de contratos desarrollado por Trail of Bits para detectar vulnerabilidades en contratos inteligentes utilizando pruebas basadas en propiedades. Este tutorial te puede servir para entender el fuzzing y cómo funciona Echidna.

  • Diligence Fuzzing - Esta es una herramienta de fuzzing automatizada útil para identificar violaciones de propiedades en el código de smart contracts.

  • Manticore - Este es un entorno de ejecución simbólica dinámica que sirve para analizar el bytecode de EVM.

  • Mythril - Esta herramienta evalúa el bytecode de EVM para detectar vulnerabilidades en contratos. Usa la ejecución simbólica para encontrar vulnerabilidades.

  • Diligence Scribble - Scribble es un lenguaje de especificación y herramienta de verificación en tiempo de ejecución que te permite anotar contratos inteligentes con propiedades para pruebas automáticas de contratos utilizando herramientas como Diligence Fuzzing o MythX.

Last updated