Since GUI tests mostly rely on text-based contents, they can be put under version control in systems like Git or SVN. In this blog, we cover how a Version Control System (VCS) works, advantages to using a VCS with your GUI testing, and demonstrate setting up Squish GUI tests under version control using the Eclipse IDE. Let’s get started.

How Does a Version Control System Work?

Version Control Systems work by establishing a repository, or database of changes, from which a user checks out a personal copy of the files, to which he, she or they authors changes. When changes are ready to be submitted to the repository, they are brought back through “commits.” The repository is then a history of all changes made by the committers, and serves as a snapshot of the project.

Why Put Your GUI Tests Under Version Control?

Adopting a VCS and integrating it into your test automation worfklow is advantageous and highly advised. Where a mature test automation framework comprises multiple files, including test scripts, shared/global scripts, data files, shared data files, verification point files and object repositories, it becomes important not only to visualize ongoing changes to your project, but safeguard them in a controlled manner — two selling points of a VCS.

How about a practical test development scenario? Let’s say the need arises for testing an application which exists as multiple editions. The various app editions are built from different branches of source code. Testing may become complicated where each different revision uses different test scripts, or even different sets of test data for various features of the editions are required. Best practice for controlling such an environment is to manage your test suites under a VCS, preferably together under the same system with the application sources. Here, the application under test (AUT) sources and test scripts and test data are managed together within the same repository.

When the AUT source code is branched, and several different revisions exist in parallel, the associated test scripts can also exist on each of the branches. Tests can be adjusted indiviudally to match any requirements of the AUT revisions. The point: with a VCS, it maintains, manages, and tracks potentially large sets of test scripts and their data together with the constant changes and revisions, typical in a development cycle, that occur to your AUT.

Developing GUI Tests Under Version Control Using Squish

The Squish plugin for the Eclipse IDE makes possible developing your Squish GUI tests from Eclipse. The Eclipse IDE itself offers plugins for common Version Control Systems, including Git and SVN. Test suites can be created and maintained while under revision control with a few steps:

Step 1: Install the Squish integration plugin for Eclipse IDE

  • Download the plugin.
  • In the Eclipse IDE, select Menu > Help > Install New Software.
  • In the Install New Software dialog, select ‘Add’ and ‘Local’.
  • Enter the path to the downloaded plugin .jar file.

Step 2: Install the Git integration for Eclipse

  • In the Eclipse IDE, select Menu > Help > Install New Software.
  • From the dropdown list, select ‘–All Available Sites–‘.
  • Search and check the ‘Git Integration for Eclipse’ plugin.

Step 3: Add a Git View to the Squish Perspective

  • Set ‘Squish Test Management’ Perspective: Window > Perspective
  • Add a ‘Git View’ to the Squish Perspective: Window > Show View > Other
Eclipse IDE, showing the Git integration for developing Squish GUI tests.

Finally, you can then use ‘Add Repository’ or ‘Checkout Repository’ to add the location where your test scripts are stored.

Upcoming: Test Center & Git Integration

Used together with Squish, Test Center takes your test automation progress a step further. Test Center is a platform for test result analysis and management. Test Center has several built-in features for intelligently aggregating your results as a project evolves, monitoring your test outcomes, and analyzing key trends. To fit into — and enhance — existing workflows, Test Center comes with several integrations with external test- and requirements-management tools, popular CI/CD systems, and issue tracking and reporting platforms.

Coming soon to Test Center is a Git integration, which will make possible a) setting up Git repositories containing your test suites and b) mapping specific lines in your verison-controlled test script files to uploaded test execution results. The Test Center and Git integration will allow users of the platform to spot and fix regressions much faster, and from a centralized location.

Recommendations for Further Reading

2 Comments

Are you considering integrating the git plugin into the Squish IDE?

    No, there are no plans for doing so. The feature from Eclipse which makes possible installing third party plugins into it is not contained with in the Squish-IDE. Beside the fact that the Squish-IDE configures some own, specialized views, it as well leaks of some views which in a regular Eclipse-IDE would be available. Most of these are features which may not interfere with and do not apply for editing or running squish tests. We felt that decision (to not include third party plugin features in the Squish-IDE) to get sure not running into any risk of maybe raising amount on support mails, which so could come up regarding not ‘really’ Squish related issues then. So we decide to having just components only contained within the Squish-IDE which really directly relay to the squish’s main goal: ‘test creation and maintenance’

Leave a Reply

Your email address will not be published. Required fields are marked *

Copy link
Powered by Social Snap