Do NOT deploy the contract to the mainnet until you deployed to testnet first, tested all functions, and are 100% confident that all works. Contract deployment is expensive on Ethereum and you do not want to waste gas fees on a contract with error.