ParaQ:Telecon 09/13/2005 1PM EST: Difference between revisions

From ParaQ Wiki
Jump to navigationJump to search
Line 48: Line 48:
{| cellpadding="4"
{| cellpadding="4"
|-
|-
| style="background:#efefef" |
| style="background:#abcdef" |


{| cellpadding="2" cellspacing="4" style="backround:#efefef"
{| cellpadding="2" cellspacing="4" style="backround:#efefef"
|-
|-
! style="background:#efefef" | Step
! style="background:#abcdef" | Step
! style="background:#efefef" | Description
! style="background:#abcdef" | Description
! style="background:#efefef" | Purpose
! style="background:#abcdef" | Purpose
|-
|-



Revision as of 18:52, 14 September 2005

Agenda

Item People Description
1 KMor Multiview update
2 CM Report on testing solution for Qt. See #Qt Testing Requirements
3 CM Present straw man class architecture for ParaView Server API
4 BW,DR Present demo script. See #Demo Script
5 DR Present Microsoft Project schedule overview
6 BW Update on videocon equipment

Demo Script

Section Author: David Rogers

This set of steps details the operations that the user will perform during the demo of early versions of ParaQ.

Requirements

  1. Platform: Windows XP.


Step Description Purpose
1 Click on ParaQ Icon, which brings up application quickly. The interface is very simple, with a minimum of child windows included. There two toolbars present - 1)the macro toolbar, populated by several macros, which appear as icons; 2) the view management toolbar, which shows icons for the operations that can be performed on windows, including several quick layouts (side-by-side, 4 quadrants, one next to two stacked views) Shows loading of simplified UI state, user-editable macros (from a pre-defined location), and quick-layout buttons
2 File->Open, browse to ParaQ xml file, and open it. This loads a complete configuration, including linked views, positions of toolbars, and attributes (such as timestep, current variable, etc.) that are needed to define the current state. User will perform view manipulation operations (pan, zoom, etc.). Shows loading of previous state.
3 File->New, which clears state, creating a single geometry window Shows File->New operation
4 View->Hierarchy, which shows the application hierarchy editor, docked in the left side of the application. Shows how different windows are managed.
5 File->Open, browse to Exodus file. This creates an entry in the Hierarchy window, and shows a basic representation of the data in the current (only) window Shows File->Open default behavior
6 User selects data representation in the Hierarchy window by clicking on it, then clicks a macro button. Macro is applied to the data, and the window updates. Shows macro capability
7 User presses 'split screen' button in the view management toolbar. The second window is created, with a basic geometry window in it. There is no data in the window. This is now the selected window Shows how users can create their own window layouts.
8 User selects data representation in the Hierarchy window by clicking on it, then clicks a different macro button. Macro is applied to data, and the second window updates to show the view. Shows how users can create their own window layouts.
9 User clicks 'window' tab in the Hierarchy editor, bringing it to the front. User selects the two windows present (representing the two geometry views in the interface), then right clicks to show the context menu. There are at least two options - 'Link' and 'Unlink'. The 'Unlink' option is greyed out. User selects the 'Link' submenu, which shows several options, including 'Camera' and 'Timestep'. User selects 'Camera', and the windows are now linked. User demonstrates this by manipulating the camera directly in one of the windows. The other window updates accordingly. Shows linking capability, ease of editing.
10 User exits program, which closes gracefully (pops up a 'do you want to save changes' message, etc.). Ends demo without a 'bang!'

Qt Testing Requirements

  1. Test for code coverage.
  2. Test GUI's interaction with server manager.
  3. Test GUI itself (e.g. button click leads to correct action & results) that's insensitive to layout.
  4. Easy to create test cases.
  5. Community's ability to test and contribute to testing.
  6. Integration with vtk's and paraview's testing framework (meaning leverage testing abilities already existent such as image comparisons and such)
  7. Drive demos, using the same framework.


Possible Solutions:

  1. Squish from Frog Logic
    1. $10,000 for license for complete application
    2. $400 for license to just run tests
    3. Community contribution limited because of license cost
    4. Possible Difficulty integrating with VTK and Paraview testing framework
    5. Application to be tested started as child process and so dynamic analysis will be difficult
  2. KD Executor
    1. Similar in cost and limitation to Squish
  3. KUnitTest
    1. BSD license
    2. Tests must be written in C++
    3. Designed for unit testing not complete application testing
  4. QTestLib
    1. Dual license
    2. Tests must be written in C++
    3. Designed for unit testing not complete application testing
  5. QTester
    1. Written by LLNL
    2. Not finished
    3. Not open source yet
  6. Python Scripting
    1. PyQt licensing cost.
    2. Limitation in PyQt in that the leaf class of C++ constructed object can't be accessed.
    3. Must maintain own C++ wrapped classes and utilities

Recommendation:

Begin by linking ParaQ lib with testing main built using components of KUnitTest and/or QTestLib. This would allow us to meet our initial testing goals. Then develop more complete testing framework as project progress.