KWWidgets/GUI Testing/Squish: Difference between revisions

From KitwarePublic
Jump to navigationJump to search
Line 46: Line 46:
</pre>
</pre>


==Testing==
==Testing KWCallbacksExample==


In this section, we will exercise KWWidgets' KWCallbacksExample example.
In this section, we will exercise KWWidgets' KWCallbacksExample example.
Line 63: Line 63:
** Select the Application Under Test (AUT): pick the the <tt>./bin/KWCallbacksExample</tt> application found in your KWWidgets build tree. Again, even though we are using Squish for Tk, we are actually exercising a KWWidgets *binary application*, not a Tcl/Tk *script*. Hit "Finish".
** Select the Application Under Test (AUT): pick the the <tt>./bin/KWCallbacksExample</tt> application found in your KWWidgets build tree. Again, even though we are using Squish for Tk, we are actually exercising a KWWidgets *binary application*, not a Tcl/Tk *script*. Hit "Finish".
* Create a new Test Case
* Create a new Test Case
** Select "Create New Test Case" or right click on <tt>suite_kwcallbacksexample</tt> in the left tree and select "New Test Case...". Name it, say, <tt>Test1</tt>. This should create the <tt>test.tcl</tt> file in your test suite directory, where the testing script itself for this specific case will be saved.
** Select "Create New Test Case" or right-click on <tt>suite_kwcallbacksexample</tt> in the left tree and select "New Test Case...". Name it, say, <tt>Test1</tt>. This should create the <tt>tst_Test1</tt> case in the left tree and the <tt>test.tcl</tt> file in your test suite directory.
{| class="wikitable" style="margin: 1em auto 1em auto"
{| class="wikitable" style="margin: 1em auto 1em auto"
|-
|-
| [[Image:KWWSquishTkCreateNewTestSuite.png|thumb|left|200px|New Test Suite]] || [[Image:KWWSquishTkCreateNewTestCase.png|thumb|left|200px|New Test Case]]
| [[Image:KWWSquishTkCreateNewTestSuite.png|thumb|left|200px|New Test Suite]] || [[Image:KWWSquishTkCreateNewTestCase.png|thumb|left|200px|New Test Case]]
|}
* Record the Test Case
** Right-click on <tt>tst_Test1</tt> and select "Record...". Accept the defaults and click "Record". This should launch the <tt>KWCallbacksExample</tt>. Note the "Squish Control Bar" window: it should display "Recording test case 'tst_Test1'.
** Move the slider in the <tt>KWCallbacksExample</tt> window from 10.0 to a different value, say, 50.0. Note a new (and lengthy) entry in the "Squish Control Bar" window: <tt>"scrollTo KWCallbacksExample.vtkKWWindow0.vtkKWFrame3.[...].vtkKWMyWidget0.vtkKWScale0 50000"</tt>.
** Exit "Recording" mode by closing or exiting the <tt>KWCallbacksExample</tt> window, or hitting the "End Recording" button in the "Squish Control Bar" window.
{| class="wikitable" style="margin: 1em auto 1em auto"
|-
| [[Image:KWWSquishTkCreateRecordTestCase.png|thumb|left|200px|Record Test Case]] || [[Image:KWWSquishTkCreateTestCaseRecorded.png|thumb|left|200px|Test Case Recorded]]
|}
|}



Revision as of 18:51, 6 November 2008

Squish

  • Squish Home
  • Squish for Tk, only for Unix
  • about €2500
  • Win32/Qt/Java/Web/Tk, scripting in Tcl/Python/JavaScript/Perl, recorder, window inspector, breakpoints/verification

Prerequisites

  • Qt3. Squish for Tk will not work with Qt4. Make sure you install all Qt3 development packages. On a Ubuntu OS, this (most likely) involve: libqt3-headers, libqt3-mt, libqt3-mt-dev, qt3-apps-dev, qt3-assistant, qt3-designer, qt3-dev-tools, qt3-linguist, qt3-qtconfig, etc.
  • Tcl/Tk 8.4 or 8.5

Download

-rwxr--r-- 1 barre barre 6587889 2008-09-04 13:08 squish-3.4.1-eval-tk-src.tar.gz*
-rwxr--r-- 1 barre barre      19 2008-09-04 13:08 squish-3-license*

Installation

barre@tetsuo:~/build$ tar -xzf /home/barre/tmp/squish/squish-3.4.1-eval-tk-src.tar.gz 
  • Configure Squish
barre@tetsuo:~/build$ cd squish-3.4.1-eval-tk-src
barre@tetsuo:~/build/squish-3.4.1-eval-tk-src$ ./configure "--with-qtdir=/usr/share/qt3" "--with-tclconfig=/opt/tcltk8.5.2/lib/tclConfig.sh" "--with-tkconfig=/opt/tcltk8.5.2/lib/tkConfig.sh" 

Note that the configure script may not find your Qt3 distribution correctly: use --with-qtdir to point to the appropriate directory. Use --with-tclconfig and --with-tkconfig to point to your own Tcl/Tk distribution, if any (here /opt/tcltk8.5.2)

  • Enter your license key (found in squish-3-license)
Configuring Squish. For license information please read the LICENSE file.
By configuring and building Squish you are accepting the terms of this license.
Enter license key: ***-*****-*****-***
Checking for C++ compiler ......... g++
Checking for g++'s version ......... 4
[...]
Done with configuring. Full log in config.log. Now type './build'.
* Build
<pre>
barre@tetsuo:~/build/squish-3.4.1-eval-tk-src$ ./build

Testing KWCallbacksExample

In this section, we will exercise KWWidgets' KWCallbacksExample example.

  • If you are new to Squish you may want to read: Squish Concepts, Creating the First Test. The Squish for Tk documentation is located offline in your build directory at squish-3.4.1-eval-tk-src/doc/book/index.html, or online at http://www.froglogic.com/download/book/.
  • Build KWWidgets examples (make sure KWWidgets_BUILD_EXAMPLES is set to ON), make sure the ./bin/KWCallbacksExample example has been built and is working properly.
  • Start the Squish IDE
barre@tetsuo:~/build/squish-3.4.1-eval-tk-src$ ./bin/squish
  • Create a new Test Suite
    • Select "Create New Test Suite" at the Welcome page.
    • Enter a Suite Name (say kwcallbacksexample). Select where the test suite and its files shall be saved (say ~/tmp/kww_test/). Hit "Next".
    • Specify here which toolkit the application is using. KWWidgets uses Tcl/Tk under the hood, therefore select the Tk radiobutton. Hit "Next". NOTE: this page will *only* show up if Squish was built to support *several* toolkits; if only one toolkit is available (hopefully, Tk), this page will not be displayed and this single toolkit will be picked automatically.
    • Select Tcl as the scripting language (if it isn't available, Squish was not able to find or use your Tcl/Tk distribution at build time). Hit "Next".
    • Select the Application Under Test (AUT): pick the the ./bin/KWCallbacksExample application found in your KWWidgets build tree. Again, even though we are using Squish for Tk, we are actually exercising a KWWidgets *binary application*, not a Tcl/Tk *script*. Hit "Finish".
  • Create a new Test Case
    • Select "Create New Test Case" or right-click on suite_kwcallbacksexample in the left tree and select "New Test Case...". Name it, say, Test1. This should create the tst_Test1 case in the left tree and the test.tcl file in your test suite directory.
New Test Suite
New Test Case
  • Record the Test Case
    • Right-click on tst_Test1 and select "Record...". Accept the defaults and click "Record". This should launch the KWCallbacksExample. Note the "Squish Control Bar" window: it should display "Recording test case 'tst_Test1'.
    • Move the slider in the KWCallbacksExample window from 10.0 to a different value, say, 50.0. Note a new (and lengthy) entry in the "Squish Control Bar" window: "scrollTo KWCallbacksExample.vtkKWWindow0.vtkKWFrame3.[...].vtkKWMyWidget0.vtkKWScale0 50000".
    • Exit "Recording" mode by closing or exiting the KWCallbacksExample window, or hitting the "End Recording" button in the "Squish Control Bar" window.

Issues

  • Can't find Qt
Checking Qt version ......... 
Can't find Qt includes in /usr/include and /usr/src

=> Make sure you installed Qt3

  • New Test Suite: Scripting Language, No Tcl

If the Tcl option is not available in the Scripting Language page when creating a new Test Suite, then Squish was not build with proper Tcl support. Make sure you specified the path to your Tcl/Tk distribution and re-build.

Template:KWWidgets/Template/Footer