Tests are written for all our smart contracts and we follow the TDD approach, along with common best practices for smart contract development (more precisely this one: https://github.com/transmissions11/solcurity).