Testing dApps functionalities consumes IOTX tokens, which can become very expensive if you develop on the IoTeX mainnet directly. The mainnet is used for real-value transactions, using tokens that have “value." Developing or testing directly on mainnet can be very costly as, not only you'll consume gas fees when running transactions, but any bugs or mistakes could potentially lead to serious monetary loss.
For this reason, as blockchain developers, you should use the IoTeX testnet for your development, where any dApp can be deployed to a production-like network where tokens don't have any real value. The IoTeX testnet is a distinct network from the mainnet, though equivalent in terms of functionalities, including the existence of an "IOTX" token along with XRC20 tokens. However, the testnet is often reset and is itself subject to bugs during the deployment of beta releases of the blockchain. So test token balances and smart comtracts can be wiped out at any time and, as a consequence, test-tokens do not have any real "value": you cannot trade testnet IOTX on exchanges.
When do I need Mainnet Tokens?
Mainnet IOTX is the native IoTeX blockchain token that is mined on mainnet by IoTeX Consensus Delegates. This is the token that you find on both centralized or decentralized exchanges which holds a real monetary value.
The IOTX token is used to pay fees in the IoTeX blockchain. This means that you must have some IOTX in your IoTeX wallet if you want to perform any action with your assets.