Squash TA (Test Automation)

Logo Squash TA

Squash TA is a toolbox for functional testing automation and is dedicated to the industrialization of automated tests execution. Squash TA natively interacts with various open source robots like Selenium. Squash TA is a management controller of automated tests of Web applications, webservices and batches.

Squash TA's features are based on developments which were started in 2009 by Henix team. Squash TA has been made to answer to automation needs of Third Party software testing lead by Henix. These developments have been released to the Squash Community and constitute the base of Squash TA.

What Squash TA may offer you:


The realization of robust automated tests
Squash TA can build automated tests less sensitive to the SUT (System Under Test) changes.


The industrialization of your test executions
Your tests are reproducible at will through the possibilities to control the context and the execution environment..


Universal : TA manages all your automated tests
Squash TA offers you to manage numerous types of automated tests : web applications, webservices, batchs. Moreover Squash TA may be deployed in agile environment and for ATDD methodology. 


Linkable with open source robots
Squash TA supports the main open source tools : Selenium I and II, Sahi, SoapUI...

To go further, 5 questions about Squash TA :

How does Squash TA work ?

Squash TA offers two families of features : it allows to create automated test scripts and to manage the execution of these tests as part of automated test campaigns. The following schema illustrates the operating principles of Squash TA :

Automated tests with Squash TA

squash-ta-fonctionnement-testAutomated tests with Squash TA

Compared to traditional automated testing, which simply interacts with the SUT using an automated test (click execution/control of GUI, call a web service...), Squash TA offers a more robust approach, complementing the interaction with the SUT with additional phases : the Setup and the Teardown.

The Setup phase allows you to add prior actions to the solicitation of the SUT, thus preparing the environment to conduct the test. For example, it is possible to inject a dataset in the SUT database or upload a file as an input to a batch. This ensures that the test will be conducted under controlled conditions and therefore reproducible conditions essential to industrialize the implementation of automated tests.

The Teardown phase allows to go beyond a simple load test for checking data on the SUT. For example, it enables to check the changes in the database made by the test, or to verify the contents of a batch generated file.

Between these phases, Squash TA manages a phase of "Run". This phase corresponds to the traditional approach of test automation. For this phase, Squash TA drives open source third party PLCs like Selenium, Sahi or SoapUI, and also adds functionalities to control a batch.

For each of these steps, Squash TA offers a number of checks. For example : 

Squash TA : automation examples

Squash TA has been designed with an extensible architecture : you can complete the tool with new automations or changes / set the existing features to suit your context.

squash-ta-fonctionnement-cpgIndustrialized execution of automated tests with Squash TA

In addition to a new approach of automated testing, Squash TA offers to industrialize the execution of automated tests. This industrialization of execution can be divided into several parts :

  • Running campaigns involving several automated tests and generating the consolidated reporting.
  • Driving campaigns guaranteeing the independence of test execution (if one test fails, other tests can still be performed).
  • Managing heterogeneous automated tests. Using Squash TA, within the same campaign, it is possible to run : testing a web application with Selenium, testing services with FitNesse, testing batches ...
  • Integrating the launching of automated tests in the process of continued integration

What is the value of Squash TA against a robot like Selenium ?

As mentioned above, Squash TA completes PLCs like Selenium, it does not replace them. These PLCs are powerful and do very well what they were created for : to interact with the SUT. Therefore, Squash TA is not intended to rewrite a PLC but integrates and drives open source market PLCs.

Architecture of Squash TA

Why would you use Squash TA ? Simply because these robots are limited to interactions with the application to be tested by simulating HCI shares (web applications) or by calling services (web services). Nevertheless, this is not enough to ensure that the automated testing is reproducible. Squash TA proposes to complement these tests with various features which, for example, manage datasets and make additional checks once tests reach their end. Examples of features are presented above.

Squash TA is compatible with the following PLCs :

  • Selenium 1 and 2 (web applications)
  • Sahi (web applications)
  • SoapUI (web services)
  • Squash-TA-Batch (batches automation, new PLC developed by the Squash Team to drive batches)

Moreover, Squash TA was designed with flexible and modular architecture. So you can develop your own connectors to integrate other PLCs. For example : FlexMonkey for flash tests automation, TestComplete for heavy clients testing, etc....

What is Squash TA ? A Web application ? A framework ? A batch ?

Squash TA is a Java based framework. This framework is integrated into two different packages : Squash TA Toolbox and Squash TA server.

Squash TA = a framework + 2 different packages (Squash TA Toolbox and Squash TA Server)

Squash TA Toolbox packages all the necessary tools for the creation and execution of automated test scripts. Besides the Squash TA framework, this package consists of open source tools like Eclipse, Jailer (creation of datasets), Selenium, Sahi, SoapUI, etc...

Squash TA Server offers to deploy Squash TA to establish a runtime server. This package can be used to connect Squash TA with Squash TM. In addition to the framework, it includes tools such as Maven and Jenkins, and the PLCs mentioned before.

Do Squash TA and Squash TM work together ?

squash-ta-fonctionnement-testYes. Although, Squash TA can be used independently of Squash TM. Both tools can be connected. Using these tools together, you can enjoy the following features :

  • Binding cases of manual testing with their automated versions in Squash TM. You can keep the traceability of a requirement and all the features offered by Squash TM can be applied to automated testing.
  • Adding automated tests and manual tests in a single test plan.
  • Launching the execution of automated tests from Squash TM.
  • Getting the automated tests results in the test plan of Squash TM. The results of your manual and automated tests are consolidated in Squash TM.

What are Squash TA functionalities ?

Here are some examples of features offered by Squash TA. All existing and future functionalities are described in the Squash TA Roadmap :

  • Automated test creation :
    • Simple writing thanks to a DSL (no programming language).
    • Project templates management.
  • SUT interaction :
    • For web applications : supports Sahi and Selenium.
    • Web services : SoapUI.
    • Distributed batches : Squash TA Batch.
  • Database operation management :
    • SQL query execution.
    • SQL script execution.
    • Insertion, check and deletion of data from a DBUnit dataset.
    • Data aging management : randomizing dates and dynamic substitution of dates while the execution is running.
  • Data files operation management :
    • FTP operations : deposit, download and deletion of files on FTP servers.
    • Data aging management : randomizing dates and dynamic substitution of dates while the execution is running.
    • Read/Check/Control of sequential files with fixed fields.
    • Read/Check/Control of CSV files.
    • Read/Check/Control of TLV files with variables fields.
  • Reporting :
    • Execution reports published in HTML format.
    • Execution report of the global test.
    • Detailed report in case of failure of a database check : line by line comparison of expected/obtained results.
    • Detailed report in case of a failure of a Sahi script.