Bitcoin is, among many things, a software system with many participants running Bitcoin software and who all connect to each other over the internet forming a Bitcoin network. It's a live system yet the software that runs it is continuously under development. This is what the Bitcoin Core dev team does, and sometimes they allow other people to participate in development like an open source project. There are other developers who also develop other Bitcoin code which fulfills the same purposes. Then all of the various Bitcoin nodes run a version of the software.
Of course, any online software needs a safe place to run in development and be tested. For Bitcoin, this is called Testnet. Bitcoin's Testnet is an actual separate Bitcoin blockchain and all the nodes or miners which connect to or mine blocks for this blockchain. It's like if there was a backup copy of the Internet which had its own shadow websites and browsers which could browse them and the information on the shadow Internet was not the same as the real Internet.
To use Testnet as a consumer (i.e. to send or receive Bitcoin transactions) you need a wallet like with Bitcoin. But the wallet needs to support testnet. Assuming you don't want to download the testnet blockchain locally and use a heavy wallet, there are a few light wallets which support testnet.
- Copay.io has a multi-platform (including binaries for OS X) wallet which allows you to configure wallets for testnet. Just create a new (personal) wallet and in the advanced options enable the checkbox labeled Testnet. Then use it like you would a normal Bitcoin wallet, but with testnet addresses.
Note: Copay doesn't support signing messages (testnet or otherwise)
- Electrum is another light wallet which connects to servers instead of using a local copy of the blockchain. To use Electrum with Testnet just run it with the
--testnet
argument. E.g./Applications/Electrum.app/Contents/MacOS/Electrum --testnet
Note: You might find a working testnet Electrum server here: list Right now testnet.hsmiths.com:53012 using ssl is working.
Electrum does support signing messages. Unfortunately, currently all known testnet servers are down so you should try Copay unless you need message signing in which case you can sign messages with another piece of software using an exported copy of your Copay wallet (you could import into Electrum even).
- There was a website called TestnetWallet.com but it has been offline. It was basic, no support for message signing.
You could also try something like Bitcoin Signature Tool just to do the message signing.
- Mycelium is an Android Bitcoin wallet which has a Testnet version. This supports message signing. It's Android only and so, while convenient for transacting while outside, it's not as convenient as a desktop wallet for testing.
Once you have a testnet wallet, you need some coins. Obviously you don't want to waste real bitcoins on testing and they won't work anyways. So you need to either mine some testnet coins (in which case you didn't bother fussing with a light wallet) or get someone to send you some. You shouldn't have to actually buy testnet coins.
You can get free testnet coins from a testnet faucet. They often go down and run out of coins. This one works for now: https://testnet.manu.backend.hamburg/faucet
Just get a small amount of testnet coins (as in a fractional amount of a single testnet BTC) from a faucet and test with even smaller amounts and send some back to the faucet if you can.