Herramientas para testing

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

Pruebas unitarias

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

  • Foundry Testsarrow-up-right - 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 Testarrow-up-right - 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 Testsarrow-up-right - 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 frameworkarrow-up-right - 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.

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

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

  • solidity-coveragearrow-up-right - 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

  • Slitherarrow-up-right - 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íarrow-up-right.

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

Pruebas basadas en propiedades - Análisis Dinámico

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

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

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

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

  • Diligence Scribblearrow-up-right - 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