1. What?
1.1. Find the thinnest slice
1.1.1. UI
1.1.2. Sniping component
1.1.3. auction server communication
1.2. Sniper Joins the auction and loses
1.3. Programming by wishful thinking
1.3.1. Write a test of what we want the system to do
1.3.2. describe your intention as clear as you can
1.3.3. Fake outside transactions by stub
2. Writing the test
2.1. As End to End As Possible
2.2. Show any UI interactions
2.3. be clear about what is being checked
2.3.1. Hide all messy initialization code in Runner Classes
2.4. adopt naming standards
2.4.1. command for triggers of events
2.4.2. descriptives for assertions
2.5. end-end vs unit testing
2.5.1. no assertion on the state and behaviour of the objects
2.5.2. No peeking inside the target to see if effect has occured
2.5.3. Has to wait for a visual effect, waiting for the target to stabilize first
2.6. known risks
2.6.1. The auction server is fake
2.6.1.1. the documentation may not be correct
2.6.1.2. time scheduled to test against real server
2.6.2. The sooner discrepancy is found the better
3. Building the Skeleton
3.1. XMPP msg broker
3.1.1. Openfire
3.1.2. Smack
3.2. stub auction
3.3. GUI testing
3.4. Multi-threaded test harness
3.4.1. WindowLicker
3.5. Version control
3.6. automatic build/deploy/test
3.6.1. Ant script