Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/alexromanov/awesome-blockchain-testing

Curated list of blog posts, videos and resources on testing blockchains and blockchain-based applications
https://github.com/alexromanov/awesome-blockchain-testing

List: awesome-blockchain-testing

Last synced: 3 months ago
JSON representation

Curated list of blog posts, videos and resources on testing blockchains and blockchain-based applications

Awesome Lists containing this project

README

        

# Awesome Blockchain Testing
Curated list of blog posts, videos and resources on testing blockchains and Web3 (blockchain-based) applications

## Contents
- [Books](#books)
- [Courses](#courses)
- [Videos](#videos)
- [Posts](#posts)
- [Tools](#tools)
- [Whitepapers](#whitepapers)
- [Bitcoin](#bitcoin)
- [Cardano](#cardano)
- [Hyperledger](#hyperledger)
- [Ethereum](#ethereum)
- [Web3](#web3-testing)

## Blockchain Testing

### Books
* [Blockchain and decentralized systems](https://books.distributedlab.com/) - 3 - volume book that covers everything you need to know about blockchain and how it works. Recommended for CS students
* [Mastering Blockchain: A deep dive into distributed ledgers, consensus protocols, smart contracts, DApps, cryptocurrencies, Ethereum, and more, 3rd Edition](https://www.amazon.com/Mastering-Blockchain-distributed-consensus-cryptocurrencies/dp/1839213191) - one book to get every pice of knowledge on how modern blockchain work
* [Cardano For the M₳sses: A Financial Operating System for people who don’t have one](https://www.amazon.com/Cardano-M%E2%82%B3sses-Financial-Operating-System/dp/B0B5KQVJ3T) - first book on what is Cardano blockchain and how it works
* [Mastering Ethereum: Building Smart Contracts and DApps](https://www.amazon.com/Mastering-Ethereum-Building-Smart-Contracts/dp/1491971940) - good overview on basics of Ethereum blockchain. Miss the latests upgrades of PoS consensus

### Courses
* [Introduction to Blockchain Testing](https://testautomationu.applitools.com/blockchain-testing/) - free introductory course to get a glance on what blockchain testing is
* [Learn Blockchain, Solidity, and Full Stack Web3 Development with JavaScript – 32-Hour Course](https://youtu.be/gyMwXuJrbJQ?si=Uini5LuPalQmaSbd) - free 32-hour course on smart contract development with Javascript / Solidity
* [Blockchain Specialization](https://www.coursera.org/specializations/blockchain)
* [Decentralized Finance (DeFi): The Future of Finance Specialization](https://www.coursera.org/specializations/decentralized-finance-duke)

### Videos
* [What does it mean to test a blockchain?](https://youtu.be/LLF45RHA3AM?si=iHrLQUxdoLp0Sc7c) - by Oleksandr Romanov
* [Testing Blockchain Applications](https://youtu.be/FKoKaugeSBE) - by Rafaela Azevedo
* [How To Test Blockchain Applications?](https://www.youtube.com/watch?v=iw5nHuA1SUs) - by Daniel Knott
* [Testing smart contracts with QuickCheck](https://www.youtube.com/watch?v=V9_14jjJiuQ) - by John Hughes
* [Adding Testing and Automatic Verifications to a Decentralized Application](https://www.youtube.com/watch?v=AB-qBfKL7Q0) - by blondiebytes
* [Webinar: Blockchain Testing – How to Create Trust and Test its Effectiveness?](https://youtu.be/1OKCcfd2awE)
* [Blockchain Testing BrownBag session](https://youtu.be/llylmSbVsjw)
* [Testing Tools for Blockchains](https://youtu.be/1woVse_HhE8)

### Posts
* [The complete guide to blockchain testing](https://blog.logrocket.com/complete-guide-blockchain-testing/)
* [Blockchain Testing](https://blog.testproject.io/2022/02/15/blockchain-testing/)
* [Solutions for Testing Blockchain: Private Blockchains, Permutations, and Shifting Left](https://www.infoq.com/articles/testing-blockchain-solutions/)
* [Blockchain Testing by Qtek Systems](https://www.qteksystems.com/wp-content/uploads/2019/11/Block_Chain_Testing_Final.pdf)
* [Functional Testing for Blockchain Applications](https://us.nttdata.com/en/-/media/assets/white-paper/404734-blockchain-testing-white-paper.pdf)
* [Understanding Cybersecurity Through the Lens of Blockchain Applications](https://blog.qasource.com/understanding-cybersecurity-through-the-lens-of-blockchain-applications)
* [25 Most Commonly Used Blockchain Terms Explained](https://blog.qasource.com/25-most-commonly-used-blockchain-terms-explained)
* [How to Ensure QA for Smart Contracts in Decentralized Applications](https://blog.qasource.com/how-to-ensure-qa-for-smart-contracts-in-decentralized-applications)
* [Blockchain in Mobile Applications](https://blog.qasource.com/blockchain-in-mobile-applications)
* [How to Test Bitcoin Wallet Apps](https://dzone.com/articles/testing-tips-how-to-test-bitcoin-wallet-apps)
* [5 Popular Tools for Testing Blockchain Applications](https://www.cigniti.com/blog/5-popular-tools-for-testing-blockchain-applications/)
* [Testing Blockchain Applications](https://azevedorafaela.com/2020/12/29/testing-blockchain-applications/)
* [Testing Blockchain](https://qualitestgroup.com/insights/white-paper/testing-blockchain/)
* [Blockchain Testing in 2020: Ultimate Checklist & Tools](https://blog.qatestlab.com/2020/08/04/blockchain-testing-in-2020/)
* [Blockchain Testing Tools](https://testguild.com/blockchain-testing-tools/)
* [Blockchain Tests Workshop at The National Software Testing Conference](https://azevedorafaela.com/2021/10/15/blockchain-tests-workshop-at-the-national-software-testing-conference/)

#### Blockchain for Test Engineers (series)
* [Blockchain for Test Engineers: Roadmap](https://alexromanov.github.io/2022/04/24/blockchain-testing-mindmap/)
* [Blockchain for Test Engineers: Hashing](https://alexromanov.github.io/2022/05/01/bchain-testing-1-hashing/)
* [Blockchain for Test Engineers: Encryption](https://alexromanov.github.io/2022/05/08/bchain-testing-2-encryption/)
* [Blockchain for Test Engineers: Digital Signatures](https://alexromanov.github.io/2022/05/15/bchain-testing-3-signatures/)
* [Blockchain for Test Engineers: Distributed Systems](https://alexromanov.github.io/2022/05/22/bchain-test-4-distributed-systems/)
* [Blockchain for Test Engineers: P2P networks and Gossip protocol](https://alexromanov.github.io/2022/05/29/bchain-test-5-p2p-gossip-protocols/)
* [Blockchain for Test Engineers: What is blockchain?](https://alexromanov.github.io/2022/06/05/bchain-test-what-is-blockchain/)
* [Blockchain for Test Engineers: Merkle Trees](https://alexromanov.github.io/2022/06/19/bchain-test-7-merkle-tree/)

### Tools
* [MixBytes Tank](https://github.com/mixbytes/tank) - console tool which can set up a blockchain cluster in minutes in a cloud and bench it using various transaction loads. Supported blockchains are Haya and Polkadot.
* [Bitcoin-Simulator, capable of simulating any re-parametrization of Bitcoin](https://github.com/arthurgervais/Bitcoin-Simulator)
* [MADT - a distributed application modelling system](https://github.com/dltcspbu/madt)
* [quorum-acceptance-tests](https://github.com/ConsenSys/quorum-acceptance-tests)
* [polkadot-lab](https://github.com/w3f/polkadot-lab)

### Whitepapers
* [Blockchain Testing: Challenges, Techniques, and Research Directions](https://arxiv.org/pdf/2103.10074.pdf)

#### Blockchain Consensus
* [Blockchain Consensus Algorithms: A Survey](https://arxiv.org/pdf/2001.07091.pdf)
* [A BLOCKCHAIN SIMULATOR FOR EVALUATING CONSENSUS ALGORITHMS IN DIVERSE NETWORKING ENVIRONMENTS](https://digitalcommons.odu.edu/cgi/viewcontent.cgi?article=1050&context=vmasc_pubs)

#### Blockchain Performance
* [Performance Evaluation of Blockchain Systems: A Systematic Survey](https://ieeexplore.ieee.org/ielx7/6287639/8948470/09129732.pdf)
* [Towards Scaling Blockchain Systems via Sharding](https://arxiv.org/pdf/1804.00399.pdf)
* [Performance Analysis of the Raft Consensus Algorithm for Private Blockchains](https://arxiv.org/pdf/1808.01081.pdf)
* [Performance Modeling and Analysis of a Hyperledger-based System Using GSPN](https://arxiv.org/pdf/2002.03109.pdf)
* [Performance Analysis of Blockchain Systems with Wireless Mobile Miners](https://par.nsf.gov/servlets/purl/10203510)
* [Performance Benchmarking and Analysis of Blockchain Platforms](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=4385643)
* [Benchmarking Performance of Ethereum Blockchain on Resource Constrained Devices](https://conferences.computer.org/cpsiot/pdfs/CPS-IoTBench2022-3AaWaJDp8u8wWtVZuifZ3/703800a012/703800a012.pdf)
* [BBSF: Blockchain Benchmarking Standardized Framework](https://dl.acm.org/doi/fullHtml/10.1145/3595647.3595649)
* [Gromit: Benchmarking the Performance and Scalability of Blockchain Systems](https://arxiv.org/pdf/2208.11254.pdf)
* [Performance and Scalability Evaluation of a Permissioned Blockchain Based on the Hyperledger Fabric, Sawtooth and Iroha](https://doiserbia.nb.rs/img/doi/1820-0214/2022/1820-02142200002W.pdf)
* [Exploring Blockchain Performance with CPUHEAVY Microbenchmark on Smart Contracts](https://iacis.org/iis/2021/4_iis_2021_330-345.pdf)
* [Performance Analysis of Blockchain Platforms](https://digitalscholarship.unlv.edu/cgi/viewcontent.cgi?article=4370&context=thesesdissertations)
* [Testing at Scale of IoT Blockchain Applications](https://www.dre.vanderbilt.edu/~schmidt/PDF/blockchain-testing-book-chapter.pdf)

#### Blockchain Security
* [A Survey on Ethereum Systems Security: Vulnerabilities, Attacks and Defenses](https://arxiv.org/pdf/1908.04507.pdf)
* [Security Analysis Methods on Ethereum Smart Contract Vulnerabilities — A Survey](https://arxiv.org/pdf/1908.08605.pdf)
* [A Survey of Security Vulnerabilities in Ethereum Smart Contracts](https://arxiv.org/pdf/2105.06974.pdf)
* [Smart Contracts Vulnerabilities: A Call for Blockchain Software Engineering](https://dspace.stir.ac.uk/bitstream/1893/27135/1/smart-contracts-vulnerabilities-3.pdf)
* [A Survey of Tools for Analyzing Ethereum Smart Contracts](https://publik.tuwien.ac.at/files/publik_278277.pdf)
* [Securify: Practical Security Analysis of Smart Contracts](https://arxiv.org/pdf/1806.01143.pdf)

#### Blockchain Smart Contracts
* [Harvey: A Greybox Fuzzer for Smart Contracts](https://mariachris.github.io/Pubs/FSE-2020-Harvey.pdf)
* [CONFUZZIUS: A Data Dependency-Aware Hybrid Fuzzer for Smart Contracts](https://arxiv.org/pdf/2005.12156.pdf)
* [Manticore: A User-Friendly Symbolic Execution Framework for Binaries and Smart Contracts](https://arxiv.org/pdf/1907.03890.pdf)
* [Slither: A Static Analysis Framework For Smart Contracts](https://arxiv.org/pdf/1908.09878.pdf)
* [SmartCheck: Static Analysis of Ethereum Smart Contracts](https://s-tikhomirov.github.io/assets/papers/smartcheck.pdf)
* [Automated Test-Case Generation for Solidity Smart Contracts: the AGSolT Approach and its Evaluation](https://arxiv.org/pdf/2102.08864.pdf)
* [A Fuzz Testing Service for Assuring Smart Contracts](https://scholars.cityu.edu.hk/files/47679267/qrsc2019_mei_ashraf_jiang_chan.pdf)
* [Detecting Nondeterministic Payment Bugs in Ethereum Smart Contracts](https://dl.acm.org/doi/pdf/10.1145/3360615)
* [ETHPLOIT: From Fuzzing to Efficient Exploit Generation against Smart Contracts](https://siqima.me/publications/saner20b.pdf)

## [Cardano](https://cardano.org/)
* [Functional tests for Cardano node](https://github.com/input-output-hk/cardano-node-tests)
* [Testing Plutus Contracts with Contract Models](https://plutus-apps.readthedocs.io/en/latest/plutus/tutorials/contract-models.html)
* [How we test at Cardano](https://iohk.io/en/blog/posts/2017/08/30/how-we-test-cardano/)
* [tasty: Modern and extensible testing framework](https://hackage.haskell.org/package/tasty)

## [Bitcoin](https://github.com/bitcoin/bitcoin)
* [Bitcoin Tests](https://github.com/bitcoin/bitcoin/tree/master/test)
* [Testing Applications](https://developer.bitcoin.org/examples/testing.html)
* [bitcoinj](https://bitcoinj.org/testing)

## [Hyperledger](https://www.hyperledger.org/)
* [Caliper](https://github.com/hyperledger/caliper) - blockchain performance benchmark framework, which allows users to test different blockchain solutions with predefined use cases, and get a set of performance test results.
* [fabric-test](https://github.com/hyperledger/fabric-test)
* [indy-test-automation](https://github.com/hyperledger/indy-test-automation)

## [Ethereum](https://ethereum.org/en/)

### Tools
* [solidity-coverage](https://github.com/sc-forks/solidity-coverage) - code coverage for Solidity testing
* [hevm](https://github.com/dapphub/dapptools/tree/master/src/hevm) - an implementation of the Ethereum virtual machine (EVM) made specifically for symbolic execution, unit testing and debugging of smart contracts
* [Whiteblock Genesis](https://github.com/whiteblock/genesis) - allows users to provision multiple fully-functioning nodes over which they have complete control within a private test network
* [OpenZeppelin Test Environment](https://github.com/OpenZeppelin/openzeppelin-test-environment) - JS based framework for smart contract testing
* [OpenZeppelin Test Helpers](https://github.com/OpenZeppelin/openzeppelin-test-helpers) - Assertion library for Ethereum smart contract testing
* [Waffle](https://github.com/EthWorks/Waffle) - the most advanced framework for testing smart contracts.
* [Truffle](https://www.trufflesuite.com/docs/truffle/overview) - development environment, testing framework and asset pipeline for blockchains using the Ethereum Virtual Machine (EVM), aiming to make life as a developer easier.
* [Hardhat](https://hardhat.org/) - development environment to compile, deploy, test, and debug your Ethereum software.
* [Embark](https://framework.embarklabs.io/docs/contracts_testing.html) - fast, easy to use, and powerful developer environment to build and deploy decentralized applications, also known as “DApps”.
* [Hive is a system for running integration tests against Ethereum clients.](https://github.com/ethereum/hive/blob/master/docs/overview.md)
* [mythril](https://github.com/ConsenSys/mythril) - security analysis tool for EVM bytecode (Ethereum, Hedera, Quorum, Vechain, Roostock, Tron and other EVM-compatible blockchains)
* [slither](https://github.com/crytic/slither) - Solidity & Vyper static analysis framework written in Python3
* [echidna](https://github.com/crytic/echidna/) - Haskell program designed for fuzzing/property-based testing of Ethereum smart contracts
* [manticore](https://github.com/trailofbits/manticore) - symbolic execution tool for the analysis of smart contracts and binaries
* [eth-tester](https://github.com/ethereum/eth-tester) - tools for testing Ethereum applications
* [Populus](https://populus.readthedocs.io/en/latest/testing.html) - framework provides for testing your Solidity smart contracts
* [brownie](https://github.com/eth-brownie/brownie) - Python-based development and testing framework for smart contracts targeting the Ethereum Virtual Machine

### Smart Contract Testing

#### Posts
* [TESTING SMART CONTRACTS](https://ethereum.org/en/developers/docs/smart-contracts/testing/)
* An In-Depth Guide to Testing Ethereum Smart Contracts. Parts: [One](https://iamdefinitelyahuman.medium.com/an-in-depth-guide-to-testing-ethereum-smart-contracts-2e41b2770297), [Two](https://iamdefinitelyahuman.medium.com/an-in-depth-guide-to-testing-ethereum-smart-contracts-d403574a8c42), [Three](https://iamdefinitelyahuman.medium.com/an-in-depth-guide-to-testing-ethereum-smart-contracts-3e07b8c38755), [Four](https://iamdefinitelyahuman.medium.com/an-in-depth-guide-to-testing-ethereum-smart-contracts-fd699e3087e6), [Five](https://iamdefinitelyahuman.medium.com/an-in-depth-guide-to-testing-ethereum-smart-contracts-31534a48e177), [Six](https://iamdefinitelyahuman.medium.com/an-in-depth-guide-to-testing-ethereum-smart-contracts-2236902bf826), [Seven](https://iamdefinitelyahuman.medium.com/an-in-depth-guide-to-testing-ethereum-smart-contracts-ff061e79bb86)
* [How to Test Ethereum Smart Contracts](https://betterprogramming.pub/how-to-test-ethereum-smart-contracts-35abc8fa199d)
* [The many ways of testing Smart Contracts in Ethereum](https://www.innoq.com/en/blog/testing-ethereum/)
* [Ethereum Mainnet Testing with Python and Brownie](https://iamdefinitelyahuman.medium.com/ethereum-mainnet-testing-with-python-and-brownie-82a61dee0222)
* [Blockchain Tests with Truffle - Solidity](https://azevedorafaela.com/2021/03/19/blockchain-test-workshop-with-truffle/)
* [TESTING SMART CONTRACTS](https://ethereum.org/en/developers/docs/smart-contracts/testing/#unit-testing)
* [Tips for Unit Testing Ethereum Smart Contracts in Solidity](https://betterprogramming.pub/a-few-tips-for-unit-testing-ethereum-smart-contract-in-solidity-d804062068fb)
* [Smart Contract Code Coverage In Hardhat](https://medium.com/coinmonks/smart-contract-code-coverage-in-hardhat-d4a5ff6c9ba6)

#### Videos
* [Smart Contract Testing course](https://youtu.be/vLEB-YRukws?si=t2oyafQ5_jSQVvj_)

### Smart Contract Security

#### Posts
* [Getting Started with Smart Contract Fuzzing](https://www.immunebytes.com/blog/getting-started-with-smart-contract-fuzzing/)
* [smart-contract-vulnerabilities](https://github.com/kadenzipfel/smart-contract-vulnerabilities)
* [Solidity Security: Comprehensive list of known attack vectors and common anti-patterns](https://blog.sigmaprime.io/solidity-security.html)
* [Blockchain Attack Vectors: Main Vulnerabilities Against Blockchain Technology](https://www.apriorit.com/dev-blog/578-blockchain-attack-vectors)
* [Smart Contract Randomness or ReplicatedLogic Attack](https://blog.finxter.com/randomness-or-replicatedlogic-attack-on-smart-contracts/)
* [Ethereum Smart Contract Security Best Practices](https://consensys.github.io/smart-contract-best-practices/)
* [Damn Vulnerable DeFi](https://www.damnvulnerabledefi.xyz/)
* [Capture the Ether](https://capturetheether.com/)

#### Videos
* [Smart Contract Security and Auditing 101](https://www.youtube.com/watch?v=0aJfCug1zTM)
* [Smart Contract Fuzzing](https://youtu.be/LRyyNzrqgOc?si=a7td8lNkXwqGDKTB)
* [Smashing Ethereum Smart Contracts for Fun and Real Profit](https://github.com/b-mueller/smashing-smart-contracts?utm_source=pocket_mylist)
* [Kerala chapter Meet - Pen testing Blockchain Solutions (Ethereum Nodes & Smart Contracts)](https://youtu.be/ahZ_V6qdBjQ)
* [Fuzzing Ethereum Smart Contract using Echidna - Blockchain Security #1](https://www.youtube.com/watch?v=EA8_9x4D3Vk) - by Patrick Ventuzelo

## Web3 Testing

### Posts
* [E2E Tests for Web3 Applications - TestJS Summit 2022](https://azevedorafaela.com/2022/12/14/e2e-tests-for-web3-applications-testjs-summit-2022/)

### End-to-End Testing Tools
* [synpress](https://github.com/Synthetixio/synpress) - is E2E testing framework based on Cypress and Playwright with support for MetaMask
* [dAppeteer](https://github.com/ChainSafe/dappeteer) - E2E testing for dApps using Puppeteer + MetaMask
* [dappwright](https://www.npmjs.com/package/@tenkeylabs/dappwright) - E2E testing for dApps using Playwright + MetaMask & Coinbase Wallet