So does that mean I won't be able to send BTC because the network is not reliable? And I need to wait for days to hope that some magic happens.
Developers don't work like that. I mean then what's the point of having a test network, where you can not test your functionalities.
Is there something wrong with electrum, or bitcoin test network is not reliable at all?
What are my other options to test electrum functionalities? I don't want to use real BTC for testing purpose, they are too costly to lose if I make any silly mistake :p
I can only tell you things out of personal experiences i had a long time ago... Maybe recently the test network is more stable, i couldn't tell you, but a long time ago, i personally didn't think it was all that stable.
AFAIK, the test network is constantly getting used for all kinds of tests, protocol tests, asicboost, spam attacks, segwit, LN,... Combine this with a lower node count and fluctuating hashrate... Maybe i'm wrong, this is just my gut feeling after using it for my own education a longer time ago.
But as far as development goes, if you use outputs that have been in the UTXO set for a long time, coming from transactions that made it into blocks a long time ago, you should be able to use the test network for development purposes, especially if you run bitcoind -testnet, since you'd be using only your own node when developing. AFAIK, electrum connects to 8 nodes, and can potentially switch the main node each time you connect, so if one of the 8 nodes has more or less blocks, a completely different UTXO set, a different mempool,... Things might seems strange. You don't have this problem if you run your own node, since that would be the only place where you look for transactions, blocks, mempool entries, utxo,...