As announced today on www.froglogic.com, we are excited to make available Squish 5.1.
A lot of new features found its way into this release. This includes Multi-touch gesture support, an interactive “object not found” debugging wizard, new integrations for Bamboo, JIRA, TeamCity and the Robot Framework, full-blown Google Chrome support, added support for Qt 5.2, and Java 8, improved support for testing Qt and QML on QNX, Android and VxWorks, major improvements in the Python editor and more.
You can read the full press release and release notes at http://www.froglogic.com/news-events/index.php?id=squish-5.1-released.html.
We are excited to finally share this new version and look forward to your feedback!
Did you know Squish can visually validate your application in addition to verifying objects & properties?
While the most common method of validation testing is data or object related, Squish can also validate how an item appears visually.
Need to know the number of check boxes, rows or items associated with a particular parent object?
Perhaps each child object containing a specific flag holds valuable information.
You can tell Squish to find all the parent object’s children, and only the children of a given type.
Using Squish’s object.children() function, you can retrieve all child objects of a given parent. Further examining each child object by className, id or another attribute, can tell you more about each child object.
In the following example, a list of child objects, containing a specific className and with a maximum quantity retrieval of 1000 items, returns all matching child objects. The filtered list of child objects can be used as a key driving mechanism in other test cases.
A common question I hear from users is: Is it possible to capture data from my application, store it, and use it later in my test?
Quick Answer: Absolutely!
Using Squish’s object access functions, users can retrieve information about an object, it’s properties, values, etc.
Take an Inventory application for example. After entering a new item in inventory, a corresponding SKU is generated. Later in your test you may wish to confirm the generated SKU matches the SKU listed when searching for the inventory item by name.
var newInventoryItem = new Array("Part ABC", "Manufacturer XYZ", "Available");
var newSKU = generateNewInventoryEntry(newInventoryItem);
var retrievedSKU = getSKUByInventoryName("Part ABC");
test.compare(newSKU, retrievedSKU, "Validating generated SKU matches SKU search result by item name");
var inventoryFields = ["Part", "Manufacturer", "Status"];
for (var i = 0; i < inventoryItem.length; ++i)
type(waitForObject(":Invnt." + inventoryFields[i] + ":_.JTextField"), inventoryItem[i]);
var generatedSKU = object.properties(waitForObject(":itemSKU_TableItem"));
var properties = object.properties(waitForObject(":itemSKU_TableItem"));
A customer pointed out that the “captcha” mechanism protecting this blog against spammers worked so “good” that even legitimate users couldn’t post any comments.
Embarassing. Turned out that the plugin providing this feature was indeed install wrongly. It broke after a system upgrade. Never change a running system!
This posting serves a “comments are open again” notice as well as a testbed for trying out the feature.
Designing your test framework to incorporate keyword-driven testing can produce a test framework that minimized maintenance time as your application changes.
Keyword-driven testing utilizes action or descriptive words describing the functionality being tested.
By integrating Squish with Robot Framework users can produce higher-level keywords, which can then be used to drive a test framework regardless of technology by the defined keywords.
To learn more read Keyword-driven testing with Squish and Robot Framework
Did you know you can control the duration of a mouse click? Or create drag-and-drop mouse events?
Perhaps you have a pop-up menu, a menu which requires a longer click, or need to click and drag an object from one area to another.
Using a combination of mouse Interaction Functions, mousePress, mouseMove and mouseRelease can be individually scripted in place of the more common mouseClick function.
Creating a slow mouseClick event
If your script recorded:
Then modify the script to:
Read the following KB article to learn how to script the mouse to drag-and-drop: Using mousePress(), mouseMove(), mouseRelease()
Ever encounter a situation where waiting for the availability of just one object isn’t enough?
Perhaps multiple items in your application need to be in a particular state before your test can proceed?
The following article demonstrates how to refactor your script to determine if all necessary objects are ready for the next portion of your test before proceeding. And in the event the proper conditions are not met after a user-defined number of retries and delays are attempted, the script returns an error.
Thank you to those who were able to attend our webinar. Please find a summary of some of the questions (and answers) from the webinar below. Email additional questions to firstname.lastname@example.org
Learn how an industry leading precision farming technology company produced rapid measurable results implementing Squish GUI Tester for their Qt-embedded application automated test framework here.
- Improved Testing Coverage
- Improved Test Reliability
- Improved Application Quality