2) Alethzero - I'd really like to see more detailed documentation for this, specifically understanding / decoding the output from transaction calls (visible when clicking on a transaction sent to a contract in the blockchain view). I'd also like help decoding the internal state of the contract (visible when clicking on the Accounts tab and then selecting a contract).
3) Mix - latest Mac OS X build doesn't currently agree with 1) and 2), e.g. internal functions returning arrays of structs, but when building with an earlier version of Mix, it was very useful to set up scenarios, send transactions into the contract, query the current contract state via public functions etc. But now it seems to be less usable, and is lacking good documentation.
4) JS/web3.js front end, eg. AngularJS + Web3 - this is useful for querying state via public / external transactions, but doesn't give any line-by-line debugging facilities (and there is no println-like functionality that can be inserted). I have raised events and listened for them previously, but this is a heavyweight approach just to understand whether the internals are working correctly.
6) https://www.npmjs.com/package/truffle or Embark - again, I haven't tried these, but like the idea of being able to unit-test contracts. But AFAIK, they still rely on black-box testing of external functions, so I'm not sure how to test internal functions.
I'd appreciate any other thoughts, particularly on how to test internal functions.