This document describes the process for using StoryTestIQ (STIQ) for creation of acceptance tests. It is our hope that once you have experienced STIQ’s ease of use that it will become your de facto acceptance test framework and that you too will become a STIQ ‘evangelist’.
Who Should Read This?
If you are starting a new web development project on any platform including .NET, Java/J2EE, Python, PHP, PERL, or just plain old (D)HTML then STIQ will be an added value to your project. The STIQ acceptance test framework can be used to show modified and additional functionality within your web application. If used in conjunction with Test Driven Development (TDD) you may find this as a useful way to show your customer what the web application will look like at the beginning of any iteration. Once the customer is satisfied with the tests, you can develop against those tests and make them pass which should somewhat correlate with successfully completing the iteration goal.
STIQ's user interface is very simular to FitNesse's interface. The following functions are available and behave similarly in the Navigation, Suite and Test panes of the UI.
The UI can be described as containing five distinct sections, divided first horizontally; then vertically.
The upper horizontal section contains four vertical panes that are used for building the test directory structure, suites, test cases and finally for controlling test execution.
The panes are, from left to right, as follows:
|Navigation||A tree view of the physical directory structure and the virtual structure created by tag suites.|
|Suite||Typically contains a suite of tests, allowing easy navigation to the individual test. Displayed by the widget !suite.|
|Tests||Intended for the display (STIQ rendering) of a test. Test may be edited within this window, and other test file manipulations may be performed.|
|Controls||The test execution is controlled from this pane.|
The lower horizontal section contains one pane in which Application Under Test (AUT pane) is displayed as execution of the STIQ test progresses.
The Navigation, Suite, & Tests panes have a menu bar at their top. The Controls pane does not contain the menu bar; is labeled Execute Tests and contains the main controls for running test.
Physical vs Logical structure
Within the UI, each test page/folder/component of the logical structure is defined by a physical directory, and within that directory a contents.txt file and a properties.xml file in the physical file structure.
STIQ Test Properties
Within the folders created for each wiki page is a properties.xml file. This file is manipulated by the Properties function on the menu . The properties file controls things such as the STIQ Page Types, Actions, Navigation, and Security of each test page.
The STIQ Page Type check-boxes control the icon that is displayed within the Navigation pane (first pane).
The Actions check-boxes control the actions that are displayed in the menu bar for the test. Don't ask me how this work's it's magic, maybe the FitNesse people know. For example, typically the STIQ Test will not have the Test action checked!
STIQ uses widgets from the FitNesse tool and has extended these widgets to create some that are unique to STIQ.
Wikipedia defines Web widgets as a piece of embedded code on a website, containing content that is not static.
Widgets are easy to spot in the source code of a STIQ test page, they begin with an exclamation mark (!) and then the widget name. The widget is rendered in various ways, that depends upon its functional purpose.
Widgets Currently used in STIQ
- Displays a table of comments which are aggregated from the current and child pages.
- Displays a table of componets which are aggregated from the current and child pages.
- Displays a table-of-contents of the sub-tree.
- Displays a table-of-contents of the sub-tree with icon decorations.
- Define a variable.
- Includes another page (or component) into the current page, enabling reusability.
- Displays a random number value.
- Displays a table containing a list of test suites or test cases which are children of this suite page.
- Marks a test with a keyword or tag.
- Displays a table containing a list of test suites or test cases which have been ‘tagged’ with the name of the suite. |
Base Selenium Commands (Selenese)
Please refer to the following pages for more information:
Database Connection and SQL Execution
See SQL Commands for more information.