I do not think there are dedicated tools for that. On high level, you could use e.g. MyEtherWallet, interface the contract address with a generic ERC20 ABI and try it out.
On lower level you could try the following approach: An ERC20 implements the following functions
totalSupply()
balanceOf(address)
allowance(address,address)
transfer(address,uint256)
approve(address,uint256)
transferFrom(address,address,uint256)
You can use some tool to calculate the function identifier which is the first 4 bytes of the keccak hash of the function identifier as pasted above. These identifiers are thus:
18160ddd -> totalSupply()
70a08231 -> balanceOf(address)
dd62ed3e -> allowance(address,address)
a9059cbb -> transfer(address,uint256)
095ea7b3 -> approve(address,uint256)
23b872dd -> transferFrom(address,address,uint256)
You can now take some token creating transaction (e.g. this on here creating the Tend token) and check if the function identifiers are present in the bytecode (input data of the contract creating transaction). This is not guaranteed to really be an ERC20 (because the 4 bytes could pop up somewhere randomly) but it is probably a good way to be relatively sure by just looking at the bytecode (which nobody can hide).
Best Answer
I believe that the following token is the first ERC-20 compliant token. If you don't agree with that. Can you correct me?
https://etherscan.io/tx/0x9e7b5966b33b4393f250bfcf45eed7751d44981b6d8dec9422a0bd2a2c698306
https://etherscan.io/tokens?q=0x89d64bc7e46bdc49a89652ae9bb167418cbad62e