Difference between revisions of "2009 Winter Project Week Automated GUI Testing"
(New page: {| |thumb|320px|Return to [[2009_Winter_Project_Week|Project Week Main Page ]] |[[Image:scarmri_namic.jpg|thumb|320px|Image showing scar in the left atrium using MR...) |
|||
(3 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{| | {| | ||
|[[Image:NAMIC-SLC.jpg|thumb|320px|Return to [[2009_Winter_Project_Week|Project Week Main Page]] ]] | |[[Image:NAMIC-SLC.jpg|thumb|320px|Return to [[2009_Winter_Project_Week|Project Week Main Page]] ]] | ||
− | |[[Image: | + | |[[Image:squish_slicer3.png|thumb|320px|Image showing the end result of a Squish test with the clipbox of a volume in Slicer3]] |
− | |||
|} | |} | ||
Line 10: | Line 9: | ||
===Key Investigators=== | ===Key Investigators=== | ||
− | + | * Kitware: Sebastien Barre, Yumin Yuan | |
− | |||
− | * Kitware: | ||
− | |||
<div style="margin: 20px;"> | <div style="margin: 20px;"> | ||
Line 20: | Line 16: | ||
<h1>Objective</h1> | <h1>Objective</h1> | ||
− | + | An automated GUI testing framework in KWWidgets is definitely on high demand, and the reason is best described by Ron Kikinis: | |
− | + | "The automatic testing capability that kww will enable, appears to me to be more and more important, the more I think about it. As a matter of fact, automatic testing of entire sequences of mouse clicks and keyboard strokes will enable us to move to a different level robustness with slicer 3.0.". | |
</div> | </div> | ||
Line 28: | Line 24: | ||
<h1>Approach, Plan</h1> | <h1>Approach, Plan</h1> | ||
+ | Suggestions, discussions and specifications related to this topic are documented in this [http://www.kwwidgets.org/Wiki/KWWidgets/GUI_Testing KWWidgets wiki page]. | ||
+ | As described on the wiki, many solutions (freeware and commercial) have been investigated, and currently we think that Squish looks like to be a valid solution for simple tests (or, actually, our only solution). A detailed wiki page about [http://www.kwwidgets.org/Wiki/KWWidgets/GUI_Testing/Squish KWWidgets testing with Squish] has been created, and a work-plan is defined: | ||
− | + | * Create a CMake module to find Squish on the system (paths to Squish server and Squish runner). | |
− | + | * Create CMake macros that will start/stop the server and run a test by invoking the runner and parsing its output. | |
− | + | * Invoke the Squish module when configuring/building KWWidgets. | |
+ | * Create CMake macros that will add Squish tests for KWWidgets. | ||
+ | * Create new suites for KWWidgets examples. | ||
+ | * Create new suites to test every single KWWidgets core widget (in the WidgetsTour for example). | ||
+ | * Create new suites for Slicer3. | ||
+ | |||
</div> | </div> | ||
Line 38: | Line 41: | ||
<h1>Progress</h1> | <h1>Progress</h1> | ||
− | + | * Create a CMake module to find Squish on the system (paths to Squish server and Squish runner). --- Done by Brad Davis | |
+ | * Create CMake macros that will start/stop the server and run a test by invoking the runner and parsing its output. --- Done by Brad Davis | ||
+ | * Invoke the Squish module when configuring/building KWWidgets. --- Done | ||
+ | * Create CMake macros that will add Squish tests for KWWidgets. --- In Progress (Need to add validation methods for some tests) | ||
+ | * Create new suites for KWWidgets examples. --- In Progress (Some new Squish test suites are created for all the Cxx examples, but still need to add validation methods to these tests). | ||
+ | * Create new suites to test every single KWWidgets core widget (in the WidgetsTour for example). --- In progress. (Some widgets are not working with Squish currently (Squish bugs), for example, vtkKWComboBox and vtkKWMenuButton. Trying to work with Squish support team to resolve these issues.) | ||
+ | * Create new suites for Slicer3. --- In progress. (A couple simple tests are created, but the test scripts need to be manually massaged quite a bit to make them work.) | ||
</div> | </div> | ||
Line 47: | Line 56: | ||
===References=== | ===References=== | ||
− | * | + | *[http://www.kwwidgets.org/Wiki/KWWidgets/GUI_Testing KWWidgets GUI testing]. |
− | * | + | *[http://www.kwwidgets.org/Wiki/KWWidgets/GUI_Testing/Squish KWWidgets GUI testing with Squish]. |
− |
Latest revision as of 05:36, 18 December 2008
Home < 2009 Winter Project Week Automated GUI Testing
Key Investigators
- Kitware: Sebastien Barre, Yumin Yuan
Objective
An automated GUI testing framework in KWWidgets is definitely on high demand, and the reason is best described by Ron Kikinis: "The automatic testing capability that kww will enable, appears to me to be more and more important, the more I think about it. As a matter of fact, automatic testing of entire sequences of mouse clicks and keyboard strokes will enable us to move to a different level robustness with slicer 3.0.".
Approach, Plan
Suggestions, discussions and specifications related to this topic are documented in this KWWidgets wiki page. As described on the wiki, many solutions (freeware and commercial) have been investigated, and currently we think that Squish looks like to be a valid solution for simple tests (or, actually, our only solution). A detailed wiki page about KWWidgets testing with Squish has been created, and a work-plan is defined:
- Create a CMake module to find Squish on the system (paths to Squish server and Squish runner).
- Create CMake macros that will start/stop the server and run a test by invoking the runner and parsing its output.
- Invoke the Squish module when configuring/building KWWidgets.
- Create CMake macros that will add Squish tests for KWWidgets.
- Create new suites for KWWidgets examples.
- Create new suites to test every single KWWidgets core widget (in the WidgetsTour for example).
- Create new suites for Slicer3.
Progress
- Create a CMake module to find Squish on the system (paths to Squish server and Squish runner). --- Done by Brad Davis
- Create CMake macros that will start/stop the server and run a test by invoking the runner and parsing its output. --- Done by Brad Davis
- Invoke the Squish module when configuring/building KWWidgets. --- Done
- Create CMake macros that will add Squish tests for KWWidgets. --- In Progress (Need to add validation methods for some tests)
- Create new suites for KWWidgets examples. --- In Progress (Some new Squish test suites are created for all the Cxx examples, but still need to add validation methods to these tests).
- Create new suites to test every single KWWidgets core widget (in the WidgetsTour for example). --- In progress. (Some widgets are not working with Squish currently (Squish bugs), for example, vtkKWComboBox and vtkKWMenuButton. Trying to work with Squish support team to resolve these issues.)
- Create new suites for Slicer3. --- In progress. (A couple simple tests are created, but the test scripts need to be manually massaged quite a bit to make them work.)