Home - essenius/FitNesseFitSharpUiAutomation GitHub Wiki

Welcome to the FitNesseFitSharpUiAutomation wiki!

Testing Thick Client Windows Applications via the User Interface

We start with a generic warning – test automation should not be primarily focused at the UI level. You should use test automation at the UI level to test the UI, and potentially to do some overall tests. But most of the functionality should be tested via API-based testing.

Windows comes with a user interface automation framework called the .Net Automation Framework. This allows automation of applications with UIs based on Windows Forms or Windows Presentation Foundation (WPF). This framework is part of .Net, and is therefore readily available. We can combine the use of the .Net Automation Framework with FitNesse. This puts the testers in the driver’s seat to define and maintain test cases, while only requiring a minimal level of development work, which we can standardize.

The Wiki of the Selenium fixture shows a table with the different levels of asbstraction that make sense to distinguish in creating maintainable tests. That is as applicable to thick client application testing as it is to web testing.

Technical steps contain atomic operations like:

  • Open application
  • Press a button
  • Click a control
  • Enter a text in a text box
  • Retrieve the value of a text box
  • Wait for a control

These operations are quite generic, and only need to be developed once. Those are good candidates to be implemented as FitNesse fixtures, isolating the .Net Automation Framework from the test workflows. That is what the UiAutomation fixture provides.

We assume that you have setup FitNesse, FitSharp and the fixtures as per the readme.

With that sorted, have a look at the first test!

Acceptance Testing Wiki