Difference between revisions of "2009 Winter Project Week Automated GUI Testing"

From NAMIC Wiki
Jump to: navigation, search
(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:scarmri_namic.jpg|thumb|320px|Image showing scar in the left atrium using MRI]]
+
|[[Image:squish_slicer3.png|thumb|320px|Image showing the end result of a Squish test with the clipbox of a volume in Slicer3]]
|[[Image:scar_carto_namic.jpg|thumb|320px|Image of scar by MRI registered to MR Angiogram, and to the EP RF ablation site data.]]
 
 
|}
 
|}
  
Line 10: Line 9:
  
 
===Key Investigators===
 
===Key Investigators===
* Beth Israel Deaconess: Dana C. Peters
+
* Kitware: Sebastien Barre, Yumin Yuan
* Beth Israel Deaconess: Jason Taclas
 
* Kitware: Luis Ibanez, NAMIC: Steve Pieper, GE: Jim Miller (providing advice)
 
 
 
  
 
<div style="margin: 20px;">
 
<div style="margin: 20px;">
Line 20: Line 16:
  
 
<h1>Objective</h1>
 
<h1>Objective</h1>
We are developing methods for  registering peri-procedural electrophysiological data showing sites of RF energy application (called Carto data) in the left atrium, with post-procedural MRI data, which shows regions of scarred left atrium (see figure above), using an interative closest point algorithm (Z. Malchano et al).   The goal is to measure the distance between scar by MRI and ablation sites (Carto data) by  EP.
+
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:
  
Our approach for comparing the locations of scar to sites of RF ablation is summarized in the ISMRM 2008 reference below. The main challenge to this approach is to measure the distance between each scarred pixel, and each RF ablation site, and then the distance from each RF ablation site, to the nearest scarred pixel.   <foo>.
+
* 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.
Our plan for the project week is to first try to measure the closest distances between MRI scar and Carto data <bar>,and then to measure distances between Carto data and closest scar. We also wish to colorize the Carto surface, based on voltage dataWe also wish to streamline the MR angiography segmentation method.
+
* 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>
  
Software for the registration between electrophysiology Carto data and the MR angiogram has been implemented, using the ITK/VTK platform (see ISMRM 2008 abstract, Taclas et al, and figure above). This week we wrote code to quantitatively determine the distances between each ablation location, and the closest region of scar, and to determine the distances between each pixel of scar, and the nearest ablation point.   Therefore we accomplished our goal!
+
* 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===
*Peters DC, Wylie JV, Hauser TH, Kissinger KV, Botnar RM, Essebag V, Josephson ME, Manning WJ. Detection of pulmonary vein and left atrial scar after catheter ablation with three-dimensional navigator-gated delayed enhancement MR imaging: initial experience. Radiology 2007; 243:690-695.
+
*[http://www.kwwidgets.org/Wiki/KWWidgets/GUI_Testing KWWidgets GUI testing].
* Taclas JE, Wylie JV, Hauser TH, Manning WJ, Josephson ME, Peters, DC. Correlation and Visualization of Left Atrial Scar due to Pulmonary Vein Ablation with Recorded Ablation Sites. Proceedings of the 16th scientific meeting of the International Society for Magnetic Resonance in Medicine (2008), Toronto, CA, p. 1042.
+
*[http://www.kwwidgets.org/Wiki/KWWidgets/GUI_Testing/Squish KWWidgets GUI testing with Squish].
*Malchano ZJ, Neuzil P, Cury RC, Holmvang G, Weichet J, Schmidt EJ, Ruskin JN, Reddy VY. Integration of cardiac CT/MR imaging with three-dimensional electroanatomical mapping to guide catheter manipulation in the left atrium: implications for catheter ablation of atrial fibrillation. J Cardiovasc Electrophysiol 2006; 17:1221-1229.
 

Latest revision as of 05:36, 18 December 2008

Home < 2009 Winter Project Week Automated GUI Testing
Image showing the end result of a Squish test with the clipbox of a volume in Slicer3



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.)


References