# What's the most effective way to test Upgradable Contracts?

**URL:** <https://forum.openzeppelin.com/t/whats-the-most-effective-way-to-test-upgradable-contracts/4306>\
**Category:** Upgrades\
**Created:** [October 30, 2020, 3:05am UTC](https://forum.openzeppelin.com/t/whats-the-most-effective-way-to-test-upgradable-contracts/4306 "2020-10-30T03:05:59Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![abcoathup](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.openzeppelin.com/abcoathup/32/415_2.png) [@abcoathup](https://forum.openzeppelin.com/u/abcoathup)\
**Post date:** [October 30, 2020, 3:12am UTC](https://forum.openzeppelin.com/t/whats-the-most-effective-way-to-test-upgradable-contracts/4306/2 "2020-10-30T03:12:46Z")

</div>

Hi @zaryab2000,

Great question. Thanks for posting here. 🙏

I recommend creating unit tests (aim for 100% coverage) for your implementation contracts and then a selection of higher level tests to cover the use of the proxy. See the Learn guides for more details: [https://docs.openzeppelin.com/learn/upgrading-smart-contracts#testing](https://docs.openzeppelin.com/learn/upgrading-smart-contracts#testing)

I have an example of unit tests for the implementation contract and some higher level tests via the proxy in the step by step tutorials:

- [OpenZeppelin Upgrades: Step by Step Tutorial for Truffle](https://forum.openzeppelin.com/t/openzeppelin-upgrades-step-by-step-tutorial-for-truffle/3579)
- [OpenZeppelin Upgrades: Step by Step Tutorial for Buidler](https://forum.openzeppelin.com/t/openzeppelin-upgrades-step-by-step-tutorial-for-truffle/3580)

You can use Truffle or Hardhat (formerly Buidler), or OpenZeppelin Test Environment.  
If you are using web3 then I suggest looking at OpenZeppelin Test Helpers ([https://docs.openzeppelin.com/test-helpers/0.5/](https://docs.openzeppelin.com/test-helpers/0.5/)).

Please note we will be creating an Upgrades Plugin for Hardhat soon, until then you can use Buidler or Truffle.

---

_[View the full topic](https://forum.openzeppelin.com/t/whats-the-most-effective-way-to-test-upgradable-contracts/4306)._
