ETH Kipu
  • Ethereum Developer Pack
  • Módulo 1
    • Intro a Smart Contracts
      • Fundamentos de Blockchain
        • Antecedentes
        • Bitcoin
        • Qué es Blockchain
        • Conceptos Clave en Blockchain
        • Cómo funciona la Blockchain
        • Tipos de Blockchain
        • Modelos de Consenso
      • El nuevo Internet
        • Web 3
        • Elementos Fundamentales
        • Impacto de Ethereum en Diversos Sectores
      • Wallets
        • Componentes de una wallet
        • Tipos de Wallet
        • Códigos mnemónicos
      • Ethereum 101
        • Smart Contracts
        • Cuentas
          • Tipos de cuentas
          • Contenido de cuentas
        • Transacciones
          • Componentes
          • Ciclo de vida
        • Gas
        • Solidity
        • EVM
          • La máquina de estados
          • Opcodes
          • Cómo funciona la EVM
          • Clientes de ejecución
          • DApps
      • Blockchain Explorer
        • Funciones de un blockchain explorer
        • Beneficios de utilizar un blockchain explorer
      • Remix
        • Características de Remix
        • Workspaces o espacios de trabajo
        • Cargar y compilar un contrato
        • Desplegar en la máquina virtual de Remix (Remix VM)
        • Interactuando con funciones
        • Desplegar en una red pública
      • Crea tu primer Smart Contract
  • Módulo 2
    • Fundamentos de Solidity
      • Hello World
      • Tipos de Datos
      • Funciones
      • Variables
        • Ejercicio 1
      • Operadores
        • Ejercicio 2
      • Constructor
        • Ejercicio 3
      • Convenciones de nomenclatura
      • Tipos de almacenamiento para variables
      • Estructuras de Control
        • Ejercicio 4
      • Modificadores
      • Eventos
        • Ejercicio 5
      • Tipos de Referencia
        • Arrays
          • Ejercicio 6
        • Mappings
          • Ejercicio 7
        • Structs
          • Ejercicio 8
      • Address Payable
      • Cómo reciben Ether los contratos y funciones
      • Transferencias de Ether
      • Conceptos Avanzados
        • Codificación ABI
        • Hashing
        • This
        • Herencia
        • Abstract
        • Interface
        • Llamadas entre contratos
        • EVM
        • ABI
        • Bytecode
        • Opcodes
  • Módulo 3
    • Estándares, Librerías y Patrones
      • Buenas Prácticas de Diseño
      • Patrones de Diseño
      • EIP y ERC
      • ERC-20
      • ERC-721
      • Open Zeppelin
      • Crea un Token ERC-20
      • Almacenamiento Descentralizado: IPFS
      • Crea un Token ERC-721
      • DeFi
  • Módulo 4
    • Toolkit para desarrollo en Ethereum
      • Requisitos para el módulo 4
        • Terminal
        • Git y Github
        • Node.js y npm
        • Visual Studio Code para Solidity
      • Toolkit
        • JSON-RPC
        • Ethers.js
          • Ejercicio
        • Hardhat
          • Despliegue de un contrato en Hardhat
          • Despliegue de un contrato en una red pública
        • Scaffold-ETH
          • Características
          • Cómo instalar Scaffold-ETH
  • Módulo 5
    • Seguridad, Pruebas y Auditoría
      • Pruebas
        • Importancia de realizar pruebas
        • Métodos para probar contratos inteligentes
          • Pruebas automatizadas
          • Pruebas manuales
        • Conceptos importantes en testing
        • Herramientas para testing
        • Testing con Hardhat
        • Recursos adicionales
      • Seguridad
        • Una mentalidad distinta de diseño
        • Principales vulnerabilidades en smart contracts
          • Reentrancy attack (ataque de reentrada)
          • Replay attack (ataque de repetición)
          • Price Oracle Manipulation (Manipulación de Oráculos de Precios)
          • Missing Access Control (Pérdida de Control de Acceso)
          • Reward Manipulation (Manipulación de Recompensas)
          • Failure to Initialize (Falla al Inicializar)
          • Front-running
          • Invariant Breaks (Ruptura de invariantes)
          • Mishandling of ETH (Mal manejo de ETH)
          • Denial of Service (DoS - Denegación de Servicio)
          • Integer overflow and underflow (desbordamiento y subdesbordamiento de enteros)
          • Phishing y Typosquatting
        • Recursos adicionales
      • Auditoría de smart contracts
        • Proceso de Auditoría
        • Herramientas
        • Cómo prepararse para una auditoría
        • El test Rekt
        • Retos
        • Recursos adicionales
  • Contribuye
    • Kipu Explorer
Powered by GitBook
On this page

Was this helpful?

  1. Módulo 5
  2. Seguridad, Pruebas y Auditoría
  3. Pruebas

Herramientas para testing

PreviousConceptos importantes en testingNextTesting con Hardhat

Last updated 8 months ago

Was this helpful?

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

Pruebas unitarias

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

  • - 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.

  • - 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.

  • - 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 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.

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

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

  • - 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

  • - 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 .

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

Pruebas basadas en propiedades - Análisis Dinámico

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

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

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

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

  • - 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.

Hardhat Tests
Foundry Tests
Remix Test
Truffle Tests
Brownie unit testing framework
ApeWorx
Waffle
solidity-coverage
Slither
aquí
Ethlint
Echidna
tutorial
Diligence Fuzzing
Manticore
Mythril
Diligence Scribble