title: Testing a Gui-heavy WPF application
body: <p>We (my colleagues) have a <strike>messy 12 y.o.</strike> mature app that is GUI-based, and the current plan is to add new dialogs &amp; other GUI in WPF, as well as replace some of the older dialogs in WPF as well. At the same time we wish to be able to test that Monster - GUI automation in a maintainable way. Some challenges:</p>
  
  <ol>
  <li>The application is massive.</li>
  <li>It constantly gains new features.</li>
  <li>It is being changed around (bug fixes, patches).</li>
  <li>It has a back end, and a layer in-between. The state of it can get out of whack if you beat it to death.</li>
  </ol>
  
  <p>What we want is: </p>
  
  <ul>
  <li>Some tool that can automate testing of WPF.</li>
  <li>auto-discovery of what the inputs and the outputs of the dialog are. An old test should still work if you add a label that does nothing. It should fail, however, if you remove a necessary text field. It would be very nice if the test suite was easy to maintain, if it ran and did not break most of the time.</li>
  <li>Every new dialog should be created with testability in mind.</li>
  </ul>
  
  <p>At this point I do not know exactly what I want, so I am marking this as a community wiki. If having to test a huge GUI-based app rings the bell (even if not in WPF), then please share your good, bad and ugly experiences here.</p>