Swing Extreme Testing: The Extreme approach to complete Java application testing