CrytpoCurrency network testing has various challenges. You need currency to be mined, to be added in the blockchain. You need to simulate mining complexity which is pretty high in real case. In the same way, getting multiple miners is also challenge.
When you need any functionality, first you will design and test this. Then after you will release to the end customer. In the crypto world, same method is used. However, cryptocurrency world deals with currency and mining to try out. There should be similar test environment for this. This document talks about this.
In simple terms, a Testnet is the network used to test all the functionality of the mainnet before it is launched for widescale use. Once the team is satisfied with the performance of testnet, all the changes are incorporated and the mainnet is rolled out and will be made available for the public to use.
The testnet is an alternative Bitcoin block chain, to be used for testing. Testnet coins are separate and distinct from actual bitcoins, and are never supposed to have any value. This allows application developers or bitcoin testers to experiment, without having to use real bitcoins or worrying about breaking the main bitcoin chain.
https://hackernoon.com/how-to-launch-or-not-launch-a-mainnet-testnet-f857a82b91ad
https://en.bitcoin.it/wiki/Testnet