DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Related

  • The Hidden Cost of Flaky Tests in Test Automation
  • Selenium Test Automation Challenges: Common Pain Points and How to Solve Them
  • From Test Automation to Autonomous Quality: Designing AI Agents for Data Validation at Scale
  • End-to-End Test Automation With Playwright, GitHub Page, and Allure Reports

Trending

  • Dear Micromanager: Your Distrust Has a Job; It’s Just Not the One You’re Doing
  • You Learned AI. So Why Are You Still Not Getting Hired?
  • Context Is the New Schema
  • AWS Kiro: The Agentic IDE That Makes Specs the Unit of Work
  1. DZone
  2. Testing, Deployment, and Maintenance
  3. Testing, Tools, and Frameworks
  4. Remote Testing Mobile Devices and Embedded Platforms Using Squish

Remote Testing Mobile Devices and Embedded Platforms Using Squish

Squish provides a range of specialized drivers and APIs, which make it easy to automate the testing of GUI applications running on mobile and electronic devices.

By 
Sreekanth Yalavarthi user avatar
Sreekanth Yalavarthi
·
Apr. 24, 23 · Tutorial
Likes (3)
Comment
Save
Tweet
Share
6.0K Views

Join the DZone community and get the full member experience.

Join For Free

Automation testing tools rely on object identification based on object models or object properties such as name, type, and position. We have many automation tools for web and desktop applications. While testing mobile devices, hardware, and electronic equipment poses unique challenges, which can be sorted out with remote system access. Where the local and remote system is not geographically co-located, interactive script recording and debugging can become cumbersome and time-consuming. Existing remote desktop solutions bring problems of their own: interoperability of the controlled and controlling platform, compatibility of the test framework and remote control application, setup and configuration issues, and others. Accessing specific embedded or mobile devices may not be possible.

Squish is a cross-platform testing tool that supports many desktop, mobile, and embedded platforms. In addition, Squish allows automation of the testing of graphical user interfaces (GUI) for applications written in various programming languages, including Java, .NET, and Qt.

First, to perform remote testing using Squish, set up a remote connection between the device or computer running the Squish test suite and the target device or computer using various remote access tools like SSH, VNC, or RDP. 

When working with a remote Application Under Test (AUT), Squish allows you to stream the display of the remote device locally on the test machine in real time. 

AUT information will be added in  IDE at Edit > Server Settings > Manage AUTs > Attachable AUTs Or command line with squishserver --config addAttachableAUT <Identifier> [host:]port

The remote control is designed to streamline the test development of virtually any target. In addition, Squish provides a powerful and flexible API that allows the creation of automated test scripts in various programming languages, including Perl, Ruby, Python, JavaScript, and Tcl. Squish also provides a range of built-in test automation features, such as record and playback, object identification, and verification of GUI elements, which make it easy to create reliable and robust automated tests for applications.

When interactively recording tests, the tool can pick UI objects for inspection from the remote viewer, from within the remote viewer, use the Squish Spy tool to set up a verification point, preview the current AUT state during a debug session, and more.

Diagram for how the Squish tools work together.

Squish runs a small server, squishserver, that handles the communication between the AUT and the test script. First, Squishserver starts the instrumented AUT on the device, which creates the Squish hook. The hook is a small library that makes the AUT's live running objects accessible and allows communication with squishserver. With the hook in place, squishserver can query AUT objects regarding their state and execute commands on behalf of squishrunner. Then, Squishrunner directs the AUT to perform whatever actions the test script specifies. All the communication takes place using network sockets which means that everything can be done on a single machine, or the test script can be executed on one device, and AUT can be tested over the network on another device.

Conclusion

In addition to desktop computers and mobile devices, Squish also supports testing embedded platforms, such as embedded Linux and QNX-based systems. Squish provides a range of specialized drivers and APIs for these platforms, which make it easy to automate the testing of GUI applications running on mobile and electronic devices. Remote testing offers several benefits for software development teams, particularly those working on projects involving multiple devices, platforms, or geographically dispersed teams. In addition, it is an ideal choice for organizations looking to streamline their testing processes by automating complex hardware-dependent tests and improving the quality of their applications.

Squish (Froglogic) Test automation

Opinions expressed by DZone contributors are their own.

Related

  • The Hidden Cost of Flaky Tests in Test Automation
  • Selenium Test Automation Challenges: Common Pain Points and How to Solve Them
  • From Test Automation to Autonomous Quality: Designing AI Agents for Data Validation at Scale
  • End-to-End Test Automation With Playwright, GitHub Page, and Allure Reports

Partner Resources

×

Comments

The likes didn't load as expected. Please refresh the page and try again.

  • RSS
  • X
  • Facebook

ABOUT US

  • About DZone
  • Support and feedback
  • Community research

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 215
  • Nashville, TN 37211
  • [email protected]

Let's be friends:

  • RSS
  • X
  • Facebook